Spark常用命令介绍
Spark命令详细的使用方法参考官方网站的描述:http://spark.apache.org/docs/latest/quick-start.html。
常用命令
Shell命令执行方法:
- 进入Spark客户端目录。
- 初始化环境变量。
source /opt/client/bigdata_env
- 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户。如果当前集群未启用Kerberos认证,则无需执行此命令。当前用户为准备Spark应用开发用户时增加的开发用户。
kinit MRS集群用户
例如:
- 开发用户为“机机”用户时请执行:kinit -kt user.keytab sparkuser
- 开发用户为“人机”用户时请执行:kinit sparkuser
- 执行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示例:
- CREATE TABLE info(id int, name string, company string);
- INSERT INTO TABLE info values(001,'jack','huawei');
- 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示例:
- CREATE TABLE info(id int, name string, company string);
- INSERT INTO TABLE info values(001,'jack','huawei');
- SELECT * FROM info;
推荐使用 spark-beeline,因为spark-beeline是在beeline的基础上面做的封装,用户可直接运行spark-beeline。
- run-example
用来运行或者调试Spark开源社区中自带的样例代码。
示例:执行SparkPi
run-example --master yarn --deploy-mode client SparkPi 100