虚拟机运行Hadoop | 各种问题解决的心路历程
ps:完成大数据技术实验报告的过程,出项各种稀奇古怪的问题。(知道这叫什么吗?经济基础决定上层建筑,我当时配置可能留下了一堆隐患,总之如果有同样的问题,希望可以帮到你)
一、虚拟机网络连接不通的各种情况(已解决)
我这里遇到的是,三台虚拟机,两台piing百度不同
原因:改了下内存,重启就又未知的网络名称
解决办法一
vim /etc/sysconfig/network-scripts/ifcfg-ens33
解决办法二
route -n
发现没有配网关地址
解决方法三✅
查看是否启用vmnet8
解决办法四✅
重启
二、HBase网页无法打开(已解决)
解决方法一、于是,我手动更改了内存(2gb-4gb)✅
运行完之后电脑记得重启一下
再接着打开hbase网页就可以正常显示了,所以就是内存的原因
三、HMaster自动关闭(已解决)
原因:启动hmaster后,jps中有hmaster进程,但不一会就自动关闭了
可能的原因:
解决办法一 是否同步虚拟机的时间
无问题
解决办法二 是否关闭所有防火墙
关闭了,但无法解决问题
解决办法三 hbase中的hbase-site.xml文件中的属性值(hbase.rootdir)主机端口是否一致
一致,无问题。
解决办法四 查看是否缺少配置✅ | 学会看日志!!!
当我启动所有jps后,出现如下,发现缺少hmaster
HMaster: HBase的主节点,负责管理RegionServers和处理客户端请求。
因而,我认为应该是没有hmaster的原因
启动后,发现异常
这可能是由于HMaster启动失败或者无法成功地被识别。
一种可能的原因是启动HBase Master的权限问题,它可能在启动时无法正常执行或者无法被JVM正确地识别。
使用日志进行查看
cat /opt/module/hbase/logs/hbase-hadoop-master-hadoop100.out
看起来是SLF4J发现了多个绑定(multiple bindings)的情况
在我的输出中发现了三个可能的绑定:
- 位于
/opt/module/hbase/lib/phoenix-client-hbase-2.1-5.1.2.jar
的 Phoenix 的 SLF4J 绑定。 - 位于
/opt/module/hbase/lib/phoenix-client-hbase-2.3-5.1.3.jar
的 Phoenix 的 SLF4J 绑定。 - 位于
/opt/module/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar
的 SLF4J 绑定。
在这种情况下,应将不需要的 SLF4J 实现从类路径中删除,或者通过适当的配置来确保只有一个实现被使用。
删除后,shell可以正常运行了
四、无法连接到 RegionServer(未解决)
我真的要疯了,,,,这破玩意多走一步都得让人扶。。。。(当然也怪自己,呵呵呵)
经验告诉我,我们需要看日志
报错
2023-12-07 21:02:25,268 INFO [master/hadoop100:16000] zookeeper.ZooKeeper: Sess ion: 0x100000135c60001 closed
2023-12-07 21:02:25,268 INFO [main-EventThread] zookeeper.ClientCnxn: EventThre ad shut down for session: 0x100000135c60001
2023-12-07 21:02:25,268 INFO [master/hadoop100:16000] regionserver.HRegionServe r: Exiting; stopping=hadoop100,16000,1701953393292; zookeeper connection closed.
2023-12-07 21:02:25,268 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: HMaster Aborted
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMaster CommandLine.java:244)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandL ine.java:140)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLi ne.java:149)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3071)
五、无法启动zookeeper(已解决)
报错
[root@hadoop100 zookeeper-3.5.7]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
这个错误信息通常表示ZooKeeper服务没有成功启动
1、确认端口是否被占用
netstat -tuln | grep 2181
输出表明端口2181处于监听状态,这通常是ZooKeeper服务器正在运行并准备接受连接的迹象。
telnet localhost 2181
使用telnet
命令测试是否能够成功连接ZooKeeper服务器
成功连接到ZooKeeper的2181端口,这是个好迹象。然而,连接很快被对方主机关闭,这可能表明ZooKeeper服务在接受连接后立即关闭了连接。
2、查看日志
根据上述情况,我们检查以下ZooKeeper的日志
指示在尝试连接到ZooKeeper集群中的节点3时发生了问题
检查目标节点是否运行✅
确保192.168.40.102 主机上的 ZooKeeper 服务正在运行,并监听指定的端口3888
[root@hadoop102 ~]# ps aux | grep zookeeper
root 8897 0.0 0.0 112824 976 pts/0 S+ 14:08 0:00 grep --color=auto zookeeper
没有正在运行的 ZooKeeper 进程
我们启动它
cd /path/to/zookeeper
./bin/zkServer.sh start
3、确保配置文件正确
无问题
4、尝试以交互方式启动ZooKeeper(未执行,理论上可行)
5、检查版本及兼容性(排除)
六、HBase无法创建表(已解决)
报错
hbase(main):002:0> create 'Student','S_No','S_Name','S_Sex','S_Age'
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2937)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2143)
at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:689)
at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:393)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)
For usage try 'help "create"'
Took 8.6399 seconds
status检查集群状态(正常)
再次插入依然报错
Master is initializing表名master正在初始化,或者有一些正在进行的操作导致 Master 尚未完全初始化。
仍然无法解决问题
安全模式✅
添加这句话到hbase-site.xml
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
成功解决
报错原因:HBase中与流功能相关的不安全模式的强制执行。设置为false表示禁用了对流功能的强制执行。默认是true
本文作者:TranquilTimber
本文链接:https://www.cnblogs.com/gbrr/p/17882256.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步