免费注册
帮助文档(华北一、二)

  • 2.1 Spark-submit

    最通用的spark任务提交方式,通过spark-submit可以提交spark任务。spark-submit具体使用可以通过spark-submit --help查看。

    示例

    ● Example:spark-submit提交示例程序中计算pi的任务

     

    spark-submit  --master yarn --deploy-mode client --num-executors 2 --

    executor-cores 1 --executor-memory 1G 

    $SPARK_HOME/examples/src/main/python/pi.py 100

    更多关于提交任务的操作请参考:

    https://spark.apache.org/docs/1.6.0/submitting-applications.html

    在集群外部机器提交任务

    ● 配置环境请参考第1节。

    ● hdfs只能使用本地用户名(whoami显示的这个名字)来当做hdfs的用户名,所以需要在hdfs上面加入本地用户名对目标文件的权限。Spark客户端提交的任务会默认使用 /user/[username]这个目录。所以需要在hdfs上面建立相应的用户根目录。

    测试命令:

     
    [hadoop@10-10-116-236 bin]$ pwd 
    /root/testsparkclient/spark/bin 
    [hadoop@10-10-116-236 bin]$ ./spark-submit --class 
    org.apache.spark.examples.SparkPi --master yarn --deploy-mode 
    cluster  ../lib/spark-examples*.jar 10

    查看运行结果:

    屏幕打印final status: SUCCEEDED 代表执行成功。

    这个例子的输出结果是使用标准输出打印的:System.out.println("Pi is roughly " + 4.0 * count / n)

    所以只有client模式会打印到屏幕上,yarn模式需要去log中查看:

    hdfs://Ucluster/var/log/Hadoop-yarn/apps/hadoop/logs/applicationid。

    2.2 Spark-shell

    spark-shell是Spark提供的可通过scala语言快速实现任务执行的方式。

    示例

    ● 启动spark-shell客户端

     spark-shell

    ● 构造一个HiveContext

     scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc);

    ● 创建表格src

     

    scala> sqlContext.sql("CREATE TABLE IF NOT EXISTS src (key INT,value 

    STRING)")

    ● 从本地文件加载数据

     
    scala> sqlContext.sql("LOAD DATA LOCAL INPATH 
    '/home/hadoop/spark/examples/src/main/resources/kv1.txt' INTO TABLE src")

    ● 表格操作,显示表src数据

     
    scala> sqlContext.sql("FROM src SELECT key, 
    value").collect().foreach(println);

    2.3 Spark-sql

    spark-sql是Spark提供的一种用SQL的方式处理结构化数据的组件,它提供了一个叫做DataFrames的可编程抽象数据模型,并且可被视为一个分布式的SQL查询引擎,它支持大部分常用的Hive SQL。

    示例

    ● 启动spark-sql客户端

     spark-sql

    ● 执行sql查询

     spark-sql> select * from src;

    2.4 Spark-Hive

    使用Spark Hive的时候需要在SPARK_HOME/conf下面配置hive-site.xml。通过spark-shell操作Hive table。

    我们可以通过spark-shell --help查看spark-shell的相关用法。

    For-example:

    spark-shell --master yarn --deploy-mode client --num-executors 3

    我们采用yarn client模式启动spark-shell,并且设置executor的个数为3

    spark-shell启动后我们即可进行相关的操作:

    ● 构造一个HiveContext

    ● 创建表格src

    ● 加载数据

    ● 表格操作

    通过spark-sql操作Hive table

    我们可以通过spark-sql --help查看spark-sql的相关用法。

    For-example:

    spark-sql --master yarn --deploy-mode client --num-executors 3

    我们采用yarn client模式启动spark-sql,并且设置executor的个数为3

    spark-sql启动之后我们就可以使用Hive的表格进行相关操作。

    2.5 Spark-ThriftServer

    通过Thrift JDBC/ODBC server的方式操作hive表

    示例

    ● 启动spark-thriftserver Master1节点上hadoop用户下执行

     
    /home/hadoop/spark/sbin/start-thriftserver.sh --hiveconf 
    hive.server2.thrift.port=10000 --hiveconf 
    hive.server2.thrift.bind.host=`hostname`  --supervise

    ● beeline的方式连接thrift接口

     beeline> !connect jdbc:hive2://uhadoop-******-master1:10000/default;

    注解:此处用户名密码传空即可

    执行sql

     
    0: jdbc:hive2://uhadoop-*****-master1:10000/> show tables; 
    0: jdbc:hive2://uhadoop-*****-master1:10000/> select * from src;

文档是否已解决您的问题?

  已解决   未解决

如您有其它疑问,您也可以与我们技术专家联系探讨。

联系技术专家