SparkSQL读取json文件简单实现(二)

继上一篇文章中简单介绍了如何在本地调试SparkSQL,详细地址,接下来我们测试如何将该功能在集群上实现,毕竟我们生产生活中数据量是很大,需要借助集群来进行相关的功能

编译

首先,我们需要将代码中设置的测试参数注释掉,这里推荐在本地测试的时候设置AppName以及Master ,而如果是想要在集群上运行,我们将对应的地方注释

//在测试或者生产中 AppName以及Master我们是通过脚本进行指定的(推荐)
//sparkConf.setAppName("SQLContextApp").setMaster("local[*]")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)

接下来我们进入项目所在的路径

cd /home/hadoop/Documents/IdeaProjects/XXXProject

然后输入

mvn clean package -DskipTests

这个过程可能会下载一些Jar包,耐心等待即可

这里写图片描述
OK,没什么问题
可以看到其中有一句

Building jar: /home/hadoop/Documents/IdeaProjects/XXXProject/target/sql-1.0.jar

那么编译的jar包就在这个路径,那么我们接下来要做的就是将这个jar包传到服务器进行测试,因为我这里是在本机搭建的服务器,所以就直接使用本机进行测试,如果你连接的是远程的服务器,你可以使用scp 命令进行上传
比如我现在要传到服务器根目录的/lib 目录下
首先我们在home 目录创建这个文件夹mkdir lib
然后进入jar 包所在目录上传scp sql-1.0.jar hadoop@slave02:/home/hadoop/lib

提交运行

这里使用spark-submit 提交运行具体的参数命令:

spark-submit \
--class path.to.your.main.class \
--master local[2] \
/home/hadoop/lib/sql-1.0.jar \
/usr/local/spark/examples/src/main/resources/people.json

这里我运行出了问题
这里写图片描述
查看日志,发现无法连接到主机,应该是集群的问题,我想起来我这台电脑之前配置的集群是一个子节点,不是主节点,于是通过ssh 登录到远程服务器,并将本地的jar包上传到服务器的/data/driverLib 目录下
然后在服务器上重新运行,又出现了以下错误:
这里写图片描述
这时候仔细看输出应该是读取的输入路径不正确,原来指定的参数默认在服务器上是到**HDFS** 文件系统中读取文件,OK,简单,我直接把文件上传到HDFS 上应该就可以了

hadoop fs -put /usr/local/spark-2.2.1/examples/src/main/resources/people.json hdfs://your/hdfs/path

这里涉及到HDFS 相关命令的使用
所有的问题应该都解决了,好,开始运行
这里写图片描述

完美 输出!!!!!

参考:
https://spark.apache.org/docs/2.0.0/submitting-applications.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值