CarbonData学习笔记二

标签: Carbondata 分类: Java 创建时间:2019-11-07 08:17:31 更新时间:2025-01-17 10:39:22

今天继续瞎折腾CarbonData。我的java程序还是报无法连接spark服务器的错误。

尝试方式:
(1) 首先查看hosts文件里面,是否有192.168….网段的IP,有的话取消掉
(2) 编辑/ect/profile文件,添加环境变量:SPARK_MASTER_HOST,值为主节点的ip
(3) 在主节点上,使用start-master.sh启动主节点
(4) 在从节点上,使用:start-slave.sh spark://master-ip:7077 启动从节点。

参考文章:
1.配置Spark standalone集群启动:https://blog.csdn.net/hotdust/article/details/61473824
2.查看spark任务日志的几种方式:https://blog.csdn.net/qq_35022142/article/details/79931842
3.Spark常用三种运行模式:https://blog.csdn.net/Realoyou/article/details/80398424
4.ERROR SparkContext:无法指定请求的地址: bind: Service ‘sparkDriver’ failed after 16 retries!:https://blog.csdn.net/aweiy0515/article/details/83377996
5.spark远程调试代码报错 StandaloneAppClient$ClientEndpoint: Failed to connect to master 192.168.126.128:7077:https://blog.csdn.net/cyssxt/article/details/73477754

题外话:carbondata启动脚本:

1
./bin/spark-shell --num-executors 4 --executor-cores 2 --driver-memory 2g --total-executor-cores 16 --executor-memory 2g --master spark://192.168.1.33:7077 --jars ./carbonlib/apache-carbondata-1.6.0-SNAPSHOT-bin-spark2.1.0-hadoop2.7.2.jar

在33上,使用这个命令,是可以连接到master节点上的。

参考文章:
1.在IDEA中编写Spark的WordCount程序:https://www.cnblogs.com/biehongli/p/8462625.html

再次想起来了研究这个,我突然想到了,链接spark只是输入了地址,哪里输入了密码呢?难道不用密码就可以链接远程服务器吗?那岂不是所以人都可以链接了。而我在windows上,只是设置了HADOOP_HOME\bin和HADOOP_USER_NAME这两个变量,有点搞不明白了。因为在这篇 文章 中,提示了要在slave和slave2中添加ssh实现免密登录的要求。

参考文章:
1.Java 连接HDFS,读取文件:https://my.oschina.net/u/2462382/blog/600880
2.windows下IDEA远程连接Hadoop:http://www.xxxxxxing.xyz/2018/05/10/windows%E4%B8%8BIDEA%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5Hadoop/
3.Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群:https://www.cnblogs.com/zhangyinhua/p/7678704.html
4.使用Hadoop JAVA API 远程连接HDFS:https://zhengbao.wang/%E4%BD%BF%E7%94%A8Hadoop-JAVA-API-%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5HDFS/
5.Java连接hdfs指定用户名:https://blog.csdn.net/xjdAlan/article/details/49802937
6.实战 windows7 下 eclipse 远程调试 linux hadoop:https://cloud.tencent.com/developer/article/1043544

hadoop的安装
1.hadoop的安装与配置方法详解:https://blog.csdn.net/hujutaoseu/article/details/56830977

windows下免密登录linux
1.windows配置ssh免密登录linux:https://blog.csdn.net/zf424zf/article/details/59056251

虽然我尝试了添加了ssh公钥到远程服务器上,但是因为我本地使用的是中文的用户名,所以还是无法使用ssh远程登录服务器,有点悲惨。

后来我换了一个用户,使用Administrator用户创建了ssh密钥并上传到服务器,最后,还是链接失败了。

查看日志,在服务器上定位到SPARK_HOME\log中所在位置,然后查看链接时产生的日志信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2019-11-12 12:54:24 ERROR TransportRequestHandler:171 - Error while invoking RpcHandler#receive() on RPC id 5653338189454866035
java.io.StreamCorruptedException: invalid stream header: 01000D31
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:866)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:358)
at org.apache.spark.serializer.JavaDeserializationStream$$anon$1.<init>(JavaSerializer.scala:63)
at org.apache.spark.serializer.JavaDeserializationStream.<init>(JavaSerializer.scala:63)
at org.apache.spark.serializer.JavaSerializerInstance.deserializeStream(JavaSerializer.scala:122)
at org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:107)
at org.apache.spark.rpc.netty.NettyRpcEnv$$anonfun$deserialize$1$$anonfun$apply$1.apply(NettyRpcEnv.scala:259)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at org.apache.spark.rpc.netty.NettyRpcEnv.deserialize(NettyRpcEnv.scala:308)
at org.apache.spark.rpc.netty.NettyRpcEnv$$anonfun$deserialize$1.apply(NettyRpcEnv.scala:258)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at org.apache.spark.rpc.netty.NettyRpcEnv.deserialize(NettyRpcEnv.scala:257)
at org.apache.spark.rpc.netty.NettyRpcHandler.internalReceive(NettyRpcEnv.scala:577)
at org.apache.spark.rpc.netty.NettyRpcHandler.receive(NettyRpcEnv.scala:562)
at org.apache.spark.network.server.TransportRequestHandler.processRpcRequest(TransportRequestHandler.java:159)
at org.apache.spark.network.server.TransportRequestHandler.handle(TransportRequestHandler.java:107)
at org.apache.spark.network.server.TransportChannelHandler.channelRead0(TransportChannelHandler.java:119)
at org.apache.spark.network.server.TransportChannelHandler.channelRead0(TransportChannelHandler.java:51)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
at org.apache.spark.network.util.TransportFrameDecoder.channelRead(TransportFrameDecoder.java:85)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:652)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:575)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:489)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:451)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:748)
2019-11-12 12:54:44 INFO Master:54 - 192.168.1.222:55424 got disassociated, removing it.

参考文章:
1.win10下将spark的程序提交给远程集群中运行:https://www.cnblogs.com/ksWorld/p/7193177.html
2.【问题解决】python任务提交到spark集群报错,提交本机没问题:requirement failed: Can only call getServletHandlers on a runni:https://blog.csdn.net/nazhidao/article/details/79979417
3.解决在编程方式下无法访问 Spark Master 问题:https://toutiao.io/posts/ijq61/preview
4.spark连接问题:https://blog.csdn.net/wangshuminjava/article/details/80012806
5.Spark 2.1.0与CarbonData 1.0.0集群模式部署及使用入门指南:https://www.iteblog.com/archives/2078.html
6.spark相关错误和解决方法:https://my.oschina.net/gywbest/blog/781255
7.Apache Spark Example Project Setup:https://www.journaldev.com/20342/apache-spark-example-word-count-program-java
8.火星壳无法连接到远程主人:http://www.uwenku.com/question/p-hdysxtso-bbz.html (这篇文章翻译有问题,火星壳->spark)

查看端口是否启动:
netstat -anp|grep 80

当我以单机形式启动集群的时候

1
2
3
4
5
## master节点
./sbin/start-master.sh -h 192.168.213.128
## slave节点
./sbin/start-slave.sh spark://192.168.213.128:7077

出现了master节点没有启动的错误,查看日志:

使用ifconfig查看,出现了ip和我的预期不一致的问题。

我其实指定的是33的ip地址。那就尝试着把linux的ip改一下吧。编辑conf/spark-env.sh,将其中的 export SPARK_MASTER_PORT=7077,改为7088,然后重启spark。使用上面的命令,在master服务器和slave服务器上,都能正常启动spark,但是java程序还是不能链接33。

这条路又失败了。

参考文章:
1.单机运行Spark Shell遇到的一个低级错误:https://blog.csdn.net/chengyuqiang/article/details/69665878
2.linux下使用命令修改IP地址:https://blog.csdn.net/qq_20480611/article/details/46809015
3.Cannot assign requested address: Service ‘sparkMaster’ failed after 16 retries (starting from 7077)!:https://blog.csdn.net/chenxb1986/article/details/84286586
4.centOS 7下无法启动网络(service network start)错误解决办法(应该是最全的了。。。):https://blog.csdn.net/weiyongle1996/article/details/75128239
5.Linux网络–手动配置IP:https://blog.csdn.net/happy_dw/article/details/52133155

6.spark submit “Service ‘Driver’ could not bind on port” error:https://stackoverflow.com/questions/38429333/spark-submit-service-driver-could-not-bind-on-port-error
7.Spark2.1.0单机模式无法启动master的问题:https://www.cnblogs.com/xyliao/p/6502747.html

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。