虚拟机运行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)的情况

在我的输出中发现了三个可能的绑定:

  1. 位于 /opt/module/hbase/lib/phoenix-client-hbase-2.1-5.1.2.jar 的 Phoenix 的 SLF4J 绑定。
  2. 位于 /opt/module/hbase/lib/phoenix-client-hbase-2.3-5.1.3.jar 的 Phoenix 的 SLF4J 绑定。
  3. 位于 /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 

 

posted @ 2023-12-07 20:56  喝着农药吐泡泡o  阅读(237)  评论(0编辑  收藏  举报