大数据运维(Mapreduce,Docker,Maven)

6 篇文章 0 订阅
2 篇文章 0 订阅

目录

Mapreduce        

        End of File Exception

        Retrying connect to server

         JvmPauseMonitor

         java.net.ConnectException: 拒绝连接

        sockettimeout:60000ms

Docker

        IPv4 forwarding is disabled. Networking will not work  

        driver failed programming external connectivity on endpoint

        rmi命令 images找不到

Maven

        Could not download Node.js: Could not download https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.gz

Linux

        -bash:xxx command not found

  


End of File Exception

在使用输入输出流时,尤其是在HDFS上面是以分块存储的,在对于块操作时,往往会因为最后一个块不足指定大小而IO流越界,这时候最佳方法就是在程序中做异常处理 ,try catch。

Retrying connect to server

 在日志中发现这个问题,首先要解决的就是找出现这个错误的之前的第一个错误,首先需要说明的就是很多问题都会导致出现这个错误,比如说当你的CPU高负荷时,当你的内存溢出,当你的系统出现死锁,或者网络带宽拥挤等等,但是一般出现这个问题都是CPU高负荷,这时候有两种做法,第一就是减少线程,进程数,第二就是增加CPU处理器。

vi /etc/security/limits.d/90-nproc.conf

*          soft    nproc    1024

root      soft    nproc    unlimited

会发现root用户在线程数是不受限制,只需改为1024即可。

如果你是在Mapreduce程序中,可以设置namenode和datanode的线程数。

在hdfs-site.xml中配置,以下是默认和优化配置,但是如果出现的上述情况,请把默认配置调小。

dfs.datanode.max.xcieveRegionServer
datanode可以同时处理的数据传输连接数,指定在 datanode 内外传输数据使用的最大线程数。
默认4096,推荐值8192

dfs.namenode.handler.count
namenode中用于处理RPC调用的线程数。默认为10,建议值:参数的自然对数*20
python -c ‘import math ; print int(math.log(N) * 20)’

dfs.namenode.service.handler.count
用于处理 datanode 上报数据块和心跳的线程数量,与dfs.namenode.handler.count 算法一致

datanode 处理 RPC 调用的线程数
dfs.datanode.handler.count
datanode中用于RPC调用的线程数,默认为3。可适当增加这个值提升datanode RPC服务的并发度,
线程数的提高将增加datanode内存需求,不宜过度调整这个数值。产线设置的为10

dfs.datanode.max.xcieveRegionServer
最大传输线程数,指定在datanode内外传输数据使用的最大线程数

读写数据时的缓存大小
io.file.buffer.size
设定在读写数据时的缓存大小,应该为硬件分页大小的2倍

  JvmPauseMonitor

经查资料后总结出有2个方法:  

        方法一 设置达到70%时清理GC

        方法二 增加超时时长

        方法三 增加JVM堆内存

方法一设置了,但是没有用,方法二完全就是规避问题不推荐。

方法三是比较推荐的,但是前提是你的内存足够大,否则在hadoop-env.sh中增加堆内存,很容易使得你的机器因为高并发而内存溢出,或者宕机。

所以上述三种方法都不能解决我出现的这个问题,这个还有待考虑,不过可以试试方法一。

 java.net.ConnectException: 拒绝连接

        出现这个问题其实就是网络带宽问题,我们在集群模式下,所有的RPC协议都是通过网络传输来进行的,当在高并发模式下,网络带宽拥挤就会出现这种情况,解决方法就是

        减少内存,减少高并发量

        在yarn-site.xml中将

yarn.nodemanager.resource.memory-mb 默认为8GB,我们将它调小即可。

sockettimeout:60000ms

出现这个问题首先可以是因为线程进程数不足,许多进程或者线程还没轮到处理就已经过了60000ms,其次可以是因为网络拥挤问题,我是将线程和进程数改变后发现在大数据文件处理上面有好转,但是效果并不明显,最好的做法就是增加磁盘挂载数和增加datanode数量,如何增加磁盘挂在数,前前往我的博客:Hadoop集群Yarn集群各种常见错误(扩容教程附带)_互联网底层人员的博客-CSDN博客_hadoopyarn集群

 -bash:xxx command not found

通常是因为我们在环境变量设置时没有在PATH前面加$符号,使得你当前配置的环境变量覆盖了原有的环境变量,而$符号是在原有的基础上增加

正确写法应该是:

 当然出现这种情况,只需要将原来的环境变量重新修改即可

export PATH="/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin"

IPv4 forwarding is disabled. Networking will not work  

vim /etc/sysctl.conf

#配置转发
net.ipv4.ip_forward=1

#重启服务,让配置生效
systemctl restart network

#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功

sysctl net.ipv4.ip_forward

maven启动了Springboot项目,且显示8080端口已经占用,但是无法打开服务器

firewall-cmd --state
1
停止firewall

systemctl stop firewalld.service
1
禁止firewall开机启动

systemctl disable firewalld.service

这个问题一开始我还解决不了,一直很困惑,直到发现防火墙没有关闭我真是晕了

driver failed programming external connectivity on endpoint

重启docker容器即可

systemctl restart docker

Could not download Node.js: Could not download https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.gz

有些网站打不开,可以自行前往下载,然后通过终端连接器上传到指定目录下

rmi命令 images找不到

前往docker文件夹,/var/lib/docker/image/overlay2/imagedb/content/sha256

根据imagesid来删除镜像文件

这些都是我之前遇到的一些问题,整理起来不容易,一下子就花了好些时间,后续再补充。

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值