hadoop及spark集群搭建后续

问题1:查看 jps,里面只有HQuorumPeer,没有 HRegionServer
查看logs,master rejected startup because clock is out of sync
原因:几台机器时间对不上

解决方法:将有问题机器的时间校正

date -s xx:xx:xx

然后重启regionserver 

hbase-daemon.sh --config /usr/local/hbase/hbase-conf start regionserver  

问题2:Spark webUI打不开
原因1:spark ui的默认端口是4040,然后被占用了就会顺序取+1的端口,当开了多个spark程序之后,当端口号加到了4045,在chrome浏览器里面就打不开了。会返回一个UNSAFE PORT的错误信息,
其实这是浏览器禁用了你访问这个端口,程序其实是正常运行的。因此建议手工指定spark.ui.port=4046在spark-defaults.conf配置文件中,
如果4046被占用了,就从4046开始往后+1,跳过4045这个端口,避免看不到spark ui界面的困扰。

原因2:sparksubmit进程没有运行,当sparksubmit停在运行时,4040端口也就关闭了

问题3:hadoop找不到外接磁盘阵列
原因:利用df命令检查linux服务器的文件系统的磁盘空间占用情况

系统显示文件系统/dev/sdb3已经挂到系统上了 ,在/home目录下

修改worker的配置文件vim hdfs-site.xml

<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop-2.7.3/tmp/dfs/data,file:/mnt/dfs/data</value>
</property>
然后再关闭datanode

    bin/hadoop-daemon.sh stop datanode

启动datanode

    hadoop-daemon.sh start datanode
最后在master节点上更新节点

    hdfs dfsadmin -refreshNodes

    yarn rmadmin -refreshNodes

利用hadoop dfsadmin -report查看集群状况,检查节点容量是否更新

问题4:python3操作hbase报错
anaconda3/lib/python3.5/site-packages/hbase/Hbase.py    except IOError, io:SyntaxError:invalid syntax
问题原因:python3与hbase语法不兼容

解决办法:首先要下载python3的Hbase文件,替换Hbase文件/anaconda3/lib/python3.5/site-packages/hbase/Hbase.py和ttypes.py
下载地址为:https://github.com/626626cdllp/infrastructure/tree/master/hbase

问题5:Hadoop YARN中内存报错
# 错误代码
java.lang.IllegalStateException: Spark context stopped while waiting for backend
    at org.apache.spark.scheduler.TaskSchedulerImpl.waitBackendReady(TaskSchedulerImpl.scala:614)
    at org.apache.spark.scheduler.TaskSchedulerImpl.postStartHook(TaskSchedulerImpl.scala:169)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:567)
    at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313)
问题原因:Java 8 与 Hadoop 2.9.1 的YARN存在某些不兼容造成内存溢出,导致程序的异常终止 

解决办法:修改Hadoop下的yarn-site.xml配置文件,增加以下属性:

<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
然后重启YARN,然后再以--master yarn 模式运行Spark即可。

总结:

yarn.nodemanager.pmem-check-enabled 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。 yarn.nodemanager.vmem-check-enabled 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。

在YARN的默认配置中,有以下参数 yarn.nodemanager.vmem-pmem-ratio 即任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1;yarn.nodemanager.resource.memory-mb即该节点上YARN可使用的物理内存总量,默认是8192(MB);然而我的YARN所在服务器内存实际只有4G,由于没有修改可用物理内存总量参数值,所以在执行action的时候,导致内存被撑爆,从而使spark任务被Kill 掉。
--------------------- 
作者:山木枝 
来源:CSDN 
原文:https://blog.csdn.net/intersting/article/details/83930424 
版权声明:本文为博主原创文章,转载请附上博文链接!
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值