更新时间:2022-12-14 GMT+08:00
快速入门
本章节提供从零开始使用Spark2x提交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包。
- 准备样例工程所需数据。
将场景说明中的原日志文件放置在HDFS系统中。
- 本地新建两个文本文件,分别将log1.txt及log2.txt中的内容复制保存到input_data1.txt和input_data2.txt。
- 在HDFS上建立一个文件夹“/tmp/input”,并上传input_data1.txt、input_data2.txt到此目录。
- 将生成的jar包上传至Spark2x运行环境下(Spark2x客户端),如“/opt/female”。
- 进入客户端目录,执行以下命令加载环境变量并登录。
source bigdata_env
source Spark2x/component_env
kinit <用于认证的业务用户>
- 在bin目录下调用以下脚本提交Spark应用程序。
spark-submit --class com.xxx.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日志获取应用运行情况。
通过查看Spark2x日志介绍了解应用运行情况,并根据日志信息调整应用程序。
父主题: 基本操作