Spark 分析Json数据存入Mysql 遇到的坑

Spark 分析Json数据存入Mysql 遇到的坑

折腾了两天,终算是弄好了,入的坑不计其数,但是也要数一数。

坑(一)
之前搭建好了spark,就是简单的wordcount一下,成功了也就没在意。
这几天重新拾起来,一上来就记得 –master spark://master:55555
这个55555端口其实是我的hdfs的端口,结果给记成spark群集的了,哇,很难受,一直卡住
说什么master不通,查了半天,忽然想起怎么不加 –master这个配置反而执行成功了,
查了一下不加 –master默认 –master local,呀,紧跟着后边 –master spark://master:7077
(默认端口为7077)

~~~~~~~~~
恍然大悟,很难受,这样一来,通了。。。。。


坑(二)

17/04/30 13:37:29 INFO scheduler.TaskSchedulerImpl: Adding task set 0.0 with 2 tasks
17/04/30 13:37:44 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
17/04/30 13:37:59 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

查了一下,大体意思就是内存不足,资源不足。。。这个好办,改了一下配置文件,不知道起没起作用,估计是没起作用,

在spark目录中的spark_env.sh中添加了export SPARK_EXECUTOR_MEMORY=512M
其实主要不在这里,不加的话默认为1G。
就是启动命令上我们 –executor-memory 1G 或者–executor-memory 512M 都没问题,
–executor-memory 2G就有问题了。
这样资源不足的问题也解决了。


坑(三)
提交作业后,总是执行一半卡住,估计连一半也没执行,看了后台的works 输出日志,

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

这错误挺明显的,就是数据库连接失败了。
开始思考,是不是提交作业到群集每个slave上都需要一个 mysql.jdbc包呢,试了一下,
–jars /home/examples/mysql.jar 这个配置一开始就有,我只是在master上存在mysql.jdbc包,
于是把mysql.jdbc包放到slave的相同的位置。结果还是不行。。。
还是一样的错误。。。
。。。。。。。。。。。
一宿过去了。。。。。。。。。。
爬起来,继续干,灵光一现,,,,,,,,

"jdbc:mysql://localhost:3306/"+mysql_database+"?user="+mysql_user+"&password="+mysql_password

scala中连接数据库我是这样写的,localhost的,有没有,发现问题了吧。。。。
目前只是猜测,,,,,
我猜,slave向master连接数据库时出现了问题。。。。
slave上并没有mysql,,,
我们需要把数据都存入master上,
试着把localhost改成master,,,,哇哦。。。
成功了呢。。。。。
开心不
开心。


到上边已经算是结束了。
过程中还有一坑,,,就是一开始自己写了个wordcount结果存入mysql的小实验,

val conf = new SparkConf().setAppName("RDDToMysql").setMaster("local")

配置这样写的。。。。。
我特么怎么说不管 –master spark 还是 –master local都成功。。。问题在这里呀。我该
写成空配置

val conf = new SparkConf()

还有,,,,要处理json,,,sc.textFile肯定是不太好的,因为他都是一行一行的读取的,
如果你的json数据不是规则的一行一个数据,那就完蛋了。
最好的方式就是读取批量小文件 ,我们规定一个txt文件只有一条json数据。。
直接读取整个文件
sc.wholeTextFiles()完美

赶紧分析点有趣的数据,,,哈哈

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值