Spark客户端使用实践
本章节提供从零开始使用Spark,提交Spark应用程序,包括Spark Core及Spark SQL。其中,Spark Core为Spark的内核模块,主要负责任务的执行,用于编写Spark应用程序;Spark SQL为执行SQL的模块。
场景说明
假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下要求:
- 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
- 周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。
log1.txt:周六网民停留日志
LiuYang,female,20 YuanJing,male,10 GuoYijun,male,5 CaiXuyu,female,50 Liyuan,male,20 FangBo,female,50 LiuYang,female,20 YuanJing,male,10 GuoYijun,male,50 CaiXuyu,female,50 FangBo,female,60
log2.txt:周日网民停留日志
LiuYang,female,20 YuanJing,male,10 CaiXuyu,female,50 FangBo,female,50 GuoYijun,male,5 CaiXuyu,female,50 Liyuan,male,20 CaiXuyu,female,50 FangBo,female,50 LiuYang,female,20 YuanJing,male,10 FangBo,female,50 GuoYijun,male,50 CaiXuyu,female,50 FangBo,female,60
前提条件
- 在Manager界面创建用户并开通其HDFS、YARN、Kafka和Hive权限。
- 根据所用的开发语言安装并配置IntelliJ IDEA及JDK等工具。
- 已完成Spark2x客户端的安装及客户端网络连接的配置。
- 对于Spark SQL程序,需要先在客户端启动Spark SQL或Beeline以输入SQL语句。
操作步骤
- 获取样例工程并将其导入IDEA,导入样例工程依赖jar包。通过IDEA配置并生成jar包。
- 准备样例工程所需数据。
- 将生成的jar包上传至Spark2x运行环境下(Spark2x客户端),如“/opt/female”。
- 进入客户端目录,执行以下命令加载环境变量并登录。如果安装了Spark2x多实例或者同时安装了Spark和Spark2x,在使用客户端连接具体实例时,请执行以下命令加载具体实例的环境变量。
source bigdata_env
source Spark2x/component_env
kinit <用于认证的业务用户>
- 在bin目录下调用以下脚本提交Spark应用程序。
spark-submit --classcom.huaweixxx.bigdata.spark.examples.FemaleInfoCollection--master yarn-client/opt/female/FemaleInfoCollection.jar <inputPath>
- (可选)在bin目录下调用spark-sql或spark-beeline脚本后便可直接输入SQL语句执行查询等操作。
如创建一个表,插入一条数据再对表进行查询。
spark-sql> CREATE TABLE TEST(NAME STRING, AGE INT); Time taken: 0.348 seconds spark-sql>INSERT INTO TEST VALUES('Jack', 20); Time taken: 1.13 seconds spark-sql> SELECT * FROM TEST; Jack 20 Time taken: 0.18 seconds, Fetched 1 row(s)
- 查看Spark应用运行结果。
- 通过指定文件查看运行结果数据。
- 通过Web页面查看运行情况。
- 登录Manager主页面。在服务中选择Spark2x。
- 通过查看Spark日志获取应用运行情况。
通过查看Spark日志介绍了解应用运行情况,并根据日志信息调整应用程序。