• 虚拟机运行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


    hbase.unsafe.stream.capability.enforce
    false

    成功解决

    报错原因:HBase中与流功能相关的不安全模式的强制执行。设置为false表示禁用了对流功能的强制执行。默认是true 

     

  • 相关阅读:
    电子秤方案:做一个宠物勺方案设计
    Spring AOP如何基于AspectJ XML开发呢?
    数据库3、4、5章作业
    Golang 切片做参数
    Retrofit
    如何在Mac上启用蓝牙,这里提供几个方法
    【图解HTTP】|【09】Web的攻击技术
    IF:14+ “冒烟型”骨髓瘤的分子组成突显了导致多发性骨髓瘤的进化途径
    MySQL分库分表
    Spring Data中MongoDB文档中的唯一字段
  • 原文地址:https://www.cnblogs.com/gbrr/p/17882256.html