Learning的报错问题收录
此文记录的是作者在学习过程中遇到的问题及解决方法,会不断更新,有些问题还未得到解决,仅供参考。如果其中问题各位有解决思路或者出现过类似情况欢迎在评论中分享,也算帮作者一把,若是出现其他问题的也可在评论留言,共同讨论,感谢各位。
虚拟化技术
rabbitmq无法启动的问题
目前只针对第一次安装出现无法启动的问题
原因在于/etc/hosts文件里的主机名与IP映射有误,你可能更改了controller的IP,hosts文件没改,所以才会出现这种情况
KVM虚拟机迁移遇到的CPU错误问题
kvm宿主机上的虚拟机,迁移到另外一台宿主机,启动时报错:
[root@localhost ~]# virsh start web02
error: Failed to start domain web02
error: the CPU is incompatible with host CPU: Host CPU does not provide required features: pcid, tsc-deadline, erms, invpcid, md-clear, spec-ctrl, ssbd
原因:两台宿主机的CPU类型不一致
解决方法:将xml文件中的CPU类型改为与当前宿主机一致即可。
这里需要注意一点,创建虚拟机的磁盘文件千万不可删除!!!
1. 查看当前宿主机的CPU类型
[root@localhost ~]# virsh capabilities
<capabilities>
<host>
<uuid>ee384d56-7915-dcaf-6fda-02f82f8f66eb</uuid>
<cpu>
<arch>x86_64</arch>
<model>Opteron_G2</model> #主要看这个值
<vendor>AMD</vendor>
<microcode version='140542211'/>
2. 修改xml文件的CPU类型,最好是自己创建一个新的虚拟机,然后查看新机的xml配置文件进行参数的替换
[root@localhost ~]# virsh dumpxml web02
......
<cpu mode='custom' match='exact' check='partial'>
<model fallback='allow'>Broadwell-noTSX-IBRS</model> #很明显与上面值不同
[root@localhost ~]# vi web02.xml
<cpu mode='custom' match='exact' check='partial'>
<model fallback='allow'>Opteron_G2</model> #修改成与宿主机参数一致即可
3.导出虚拟机配置,让修改后的xml文件备份,然后删除虚拟机,先关机,如果有快照先删除快照
[root@localhost ~]# virsh dumpxml web02 > web02_bak.xml
[root@localhost ~]# virsh shutdown web02
[root@localhost ~]# virsh undefine web02
4. 重新导入xml文件并启动虚拟机
[root@localhost ~]# virsh define web02_bak.xml
[root@localhost ~]# virsh start web02
云上大数据
部署sqoop组件时遇到的问题
关于部署sqoop组件,切换hadoop用户时,终端[root@master ~]变成-bash-$4.2的问题有待研究......
查看大数据平台状态时刷新flume组件日志时遇到的问题
初步查询资料是namenode在启动时会自动开启安全组,导致flume无法创建日志,如果要刷新,则关闭namenode安全组,命令如下:
1,查看安全组状态
hdfs dfsadmin -safemode get
2,关闭安全组
hdfs dfsadmin -safemode leave
3,开启安全组
hdfs dfsadmin -safemode enter
4,等待,直到安全模式结束
hdfs dfsadmin -safemode wait
block块受损的问题
在统计单词任务时,报错:
Error: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-1409083382-192.168.88.10-1678867336231:blk_1073742249_1425 file=/input/data.txt
然后查看受损块:
hdfs fsck / -list-corruptfileblocks
结果:
.....(这部分省略)
blk_1073742249 /input/data.txt
blk_1073742257 /tmp/hadoop-yarn/staging/history/done_intermediate/hadoop/job_1681871047944_0001.summary
The filesystem under path '/' has 116 CORRUPT files
上面显示有116条受损块,'CORRUPT'表示块受损的文件
删除受损块
hadoop fsck /path -delete #path是路径,输入受损块路径就行,应该是那个id,即blk_1073742249
删除所有受损块
hadoop fsck / -delete
如果要查看具体的受损详情:
hadoop fsck /你的path #将报错中file后面的路径粘贴过来即可
运行上面后会显示受损块文件的相关信息
HBase的web界面出现未启动负载均衡器的问题
在用网页查看hbase时出现:
The Load Balancer is not enabled which will eventually cause performance degradation in HBase as Regions will not be distributed across all RegionServers.
问题描述:
在用web查看hbase的时候报这个错误。
翻译一下:没有启用负载均衡器,这将最终导致HBASE中的性能下降,因为区域不会分布在所有RegionServers上。
解决方案:打开负载均衡器
1,首先启动hbase的shell的界面
hbase shell
2,shell终端输入
balance_switch true
命令:
balancer_enabled #查看自动均衡是否开启
balance_switch true #开启
balance_switch false #关闭
3,可能出现无法启动的问题
hbase(main):001:0> balance_switch true
ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
比如上面这种错,原因在于安全模式处于开启状态,hdfs dfsadmin -safemode leave关闭,再执行,还有一种情况是没有权限,一般是hbase目录的所有者才有权限,所以检查权限设置
关于安装mysqld包出现依赖关系
1,安装第三个包mysql-community-client-5.7.18-1.el7.x86_64.rpm时出现依赖关系,之后两个都会报这个错
解决办法:在后面每条安装命令后加上这个参数--nodeps --force,直接忽略依赖关系,强制安装
2,进入mysql时报错:
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
解决办法:yum install libncurses* -y
3,还有方法是换源,去https://mirrors.aliyun.com阿里云镜像站找到虚拟机对应的版本源
关于Browse Directory界面提示问题
hadoop集群部署成功,使用命令行可以看到集群上的文件。
但是在50070页面中的hdfs浏览工具
提示Path does not exist on HDFS or WebHDFS is disabled please check your path or enable WebHDFS
如果确定你输入的目录是正确存在的,请检查是否开启了 webHDFS
默认情况下,webHDFS是不开启的,需要在hdfs-site.xml中添加 dfs.webhdfs.enabled并设置为true
Hive对表操作查看网页出现的问题
http://192.168.88.10:50070的Web界面查看Hive创建的表时,出现:
Operation category READ is not supported in state standby
分析:这是由于,master节点处于standby状态,前面验证HA高可用时,slave1设置为了active状态
解决:在slave1上执行下列命令关闭namenode模拟挂掉状态,这时master节点会顶替上去,然后再次开启namenode
hadoop-daemon.sh stop namenode
hadoop-daemon.sh start namenode
查看双方节点状态,master为active,slave1为standby状态即可:
hdfs haadmin -getServiceState master
hdfs haadmin -getServiceState slave1