更新时间:2024-08-03 GMT+08:00

Spark常用命令介绍

Spark命令详细的使用方法参考官方网站的描述:http://spark.apache.org/docs/latest/quick-start.html

常用命令

Shell命令执行方法:

  1. 进入Spark客户端目录。
  2. 初始化环境变量。

    source /opt/client/bigdata_env

  3. 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户。如果当前集群未启用Kerberos认证,则无需执行此命令。当前用户为准备Spark应用开发用户时增加的开发用户。

    kinit MRS集群用户

    例如:

    • 开发用户为“机机”用户时请执行:kinit -kt user.keytab sparkuser
    • 开发用户为“人机”用户时请执行:kinit sparkuser

  4. 执行Spark shell命令。

Spark常用的命令如下所示:

  • spark-shell

    提供了一个简单的调试工具,支持Scala语言。

    在shell控制台执行: spark-shell 即可进入Scala交互式界面,从HDFS中获取数据,再操作RDD进行计算,输出并打印结果。

    示例:一行代码可以实现统计一个文件中所有单词出现的频次。

    scala> sc.textFile("hdfs://hacluster/tmp/wordcount_data.txt").flatMap(line=> line.split(" ")).map(w => (w,1)).reduceByKey(_+_).collect()

  • spark-submit

    用于提交Spark应用到MRS集群中运行,并返回运行结果。需要指定class、master、jar包以及入参。

    示例:执行jar包中的GroupByTest例子,入参为4个,指定集群运行模式是yarn-client。

    spark-submit --class org.apache.spark.examples.GroupByTest --master yarn --deploy-mode client ${SPARK_HOME}/examples/jars/spark-examples_2.11-2.3.2-mrs-2.0.jar 6 3000 3000 3

  • spark-sql

    启动一个Spark应用,执行Spark SQL。可以指定local(--master local)或是集群模式(--master yarn)。

    启动示例:

    spark-sql --master yarn

    SQL示例:

    • SELECT key FROM src GROUP BY key;
    • EXPLAIN EXTENDED SHOW TABLES;
  • spark-beeline

    调用Spark的JDBCServer执行Spark SQL,可以实现对海量数据高效的计算和统计分析。JDBCServer包含一个长时运行的Spark任务,在spark-beeline中执行的语句都会交给该任务执行。

    启动示例:

    cd $SPARK_HOME/bin

    spark-beeline

    SQL示例:

    1. CREATE TABLE info(id int, name string, company string);
    2. INSERT INTO TABLE info values(001,'jack','huawei');
    3. SELECT * FROM info;
  • beeline

    调用Spark的JDBCServer执行Spark SQL,可以实现对海量数据高效的计算和统计分析。JDBCServer包含一个长时运行的Spark任务,在beeline中执行的语句都会交给该任务执行。

    开启Kerberos认证的安全集群启动示例:

    cd $SPARK_HOME/bin

    ./beeline -u 'jdbc:hive2://ha-cluster/default;user.principal=spark/hadoop.COM;saslQop=auth-conf;auth=KERBEROS;principal=spark/hadoop.COM;'

    spark/hadoop.COM字符串在本集群上使用klist -kt /opt/Bigdata/MRS_XXX/1_20_SparkResource/etc/spark.keytay命令展示后的principal字符串获取,可粘贴到beeline命令中直接使用。

    未开启Kerberos认证的普通集群启动示例:

    cd $SPARK_HOME/bin

    beeline

    SQL示例:

    1. CREATE TABLE info(id int, name string, company string);
    2. INSERT INTO TABLE info values(001,'jack','huawei');
    3. SELECT * FROM info;

    推荐使用 spark-beeline,因为spark-beeline是在beeline的基础上面做的封装,用户可直接运行spark-beeline。

  • run-example

    用来运行或者调试Spark开源社区中自带的样例代码。

    示例:执行SparkPi

    run-example --master yarn --deploy-mode client SparkPi 100