CDH内存调拨过度警告分析
CDH HUE配置自定义MySql数据库
1.“配置” tab
2.选择"类别" —> “数据库”
3.Hue数据库用户名(user) -> root,
Hue数据库密码(password) -> root用户的密码,
Hue数据库名称 -> hue
参考链接
Hbase(HDFS的faladata03角色DataNode也出现过)
hbase:faladata02角色RegionServer意外退出
报错
:该角色在之前的 5 分钟 中遇到 1 次意外退出。这包括由于 OutOfMemory 错误而导致的 1 退出。 临界阈值:任意。
原因
是hbase启动的原始内存太小了,然后我们修改 "HBase RegionServer 的 Java 配置选项"参数
参数:
-Xmx256m -Xms256m -XX:MaxNewSize=128m -XX:NewSize=128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:ReservedCodeCacheSize=256m
注:
在添加后HBase依旧不稳定的情况下,将 -Xmx256m -Xms256m 改为 -Xmx512m -Xms512m 后HBase运行状态无任何隐患告警,正常运行。
faladata01的RegionServer角色启动失败,端口60020被占用
现象
EsgynDB所在的集群,HBase有4台RegionServer,因某种原因有一个RegionServer下线。从CDH Manager中手动启动此RegionServer无法启动,报错信息如下:
Region server exiting
java.lang.RuntimeException: Failed construction of Regionserver: class org.apache.hadoop.hbase.regionserver.HRegionServer
at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2704)
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:64)
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)
at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2719)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2702)
... 5 more
Caused by: java.io.IOException: Problem binding to /0.0.0.0:60020 : Address already in use. To switch ports use the 'hbase.regionserver.port' configuration property.
at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:932)
at org.apache.hadoop.hbase.regionserver.HRegionServer.createRpcServices(HRegionServer.java:664)
at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:541)
... 10 more
Caused by: java.net.BindException: Address already in use
解决
根据报错信息,发现是60020端口被占用了,通过命令"netstat -tapn | grep 60020"检查被占用的端口
[root@faladata01 ~]# netstat -tapn | grep 60020
tcp 0 0 192.168.7.57:60020 192.168.7.57:3306 ESTABLISHED 961/java
tcp 0 0 ::ffff:192.168.7.57:3306 ::ffff:192.168.7.57:60020 ESTABLISHED 8140/mysqld
我们发现有一条,此java进程正占用着60020端口,导致RegionServer无法启动。
手动杀掉此进程号,问题解决。
kill -9 961
HDFS节点角色DataNode
HDFS:faladata02角色DataNode意外退出
报错
DataXceiver error processing WRITE_BLOCK operation src: /192.168.7.58:52434 dst: /192.168.7.58:50010
faladata02:50010:DataXceiver error processing WRITE_BLOCK operation src: /192.168.7.58:52434 dst: /192.168.7.58:50010
java.io.IOException: Not ready to serve the block pool, BP-1650803385-192.168.7.58-1555501962641.
原因:
文件操作超租期,实际上就是data stream操作过程中文件被删掉了。
解决方法
1.修改数据传输线程个数:HDFS to 实例 to DataNode to 配置 to search "dfs.datanode.max.transfer.threads"
2. 4096 to 8192
3. 修改hdfs-site.xml (针对2.x版本, 1.x版本属性名应该是: dfs.datanode.max.xcievers):
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
</property>
在cdh中查看服务组件的版本号
选择主机->所有主机->选择一个主机-> 组件,如下图:
CDH报错cloudera-scm-server dead but pid file exists
cd /opt
find ./ -name cloudera-scm-server.pid
rm -f cloudera-scm-server.pid
Linux服务器jps报process information unavailable
cd /tmp
rm -rf *
hdfs权限问题
Permission denied: user=hdfs, access=WRITE, inode="/origin_data/gmall/log/topic_start/2019-02-10/logstart-.1549728042159.lzo":root:supergroup:drwxr-xr-x
hadoop中的hdfs-site.xml如下(将这里面的value改为false,写到hdfs-site.xml中即可.
然后,重启namenode):
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
hive 执行报错
Current usage: 232.2 MB of 1 GB physical memory used; 2.7 GB of 2.1 GB virtual memory used. Killing container.
hadoop 中的 yarn-site.xml添加,后重启nodemanager(sbin/stop/start-yarn.sh)
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
</property>
flume报错
Failed loading positionFile:java.io.EOFException: End of input at line 1 column 1
在进行flume监控文件时,产生的taildir_position.json文件错误
猜测原因:
之前启动时,发生了错误。这时候已经生成了taildir_position.json文件,这时候在修改好一切配置文件再启动时,它会读取该文件,用来找到,之前操作的位置,但里边啥也没有?就发生了错误
解决方法:
1.删掉该文件,重新启动flume
2.在配置文件中指定其他未存在的文件 a1.sources.r1.positionFile = /opt/module/flume/taildir_position.json1
CDH集群-无法找到主机的NTP 服务,或该服务未响应时钟偏差请求
场景
CDH集群启动成功,但是有某些主机提示“无法找到主机的NTP 服务,或该服务未响应时钟偏差请求”
问题思路
- NTP服务没有正常启动
- CDH后台程序存在异常
解决脚本
- 先关闭CDH的服务,在界面进行关闭集群服务
- 每台主机开启NTP服务
systemctl restart ntpd
service ntpd restart
- 每台主机重启cloudera-scm-agent
- 等待5分钟,到CDH控制台查看结果,该异常已经解决