ubuntu安装hbase、hadoop出现的问题及应对

部署真的hbase好累啊,留一份记录,等再崩溃了可以参考,也希望可以为像我一样崩溃的同学提供一份帮助

hadoop的安装参考问题4,我基本相当于重装了hadoop,在保留ssh等前置的条件下

首先按照教程,安装zookeeperhbase

这里java版本使用8,使用apt下载openjdk

hbase-2.5.6,hadoop-3.3.6,zookeeper-3.8.3

注意hbase和zookeeper使用bin的

zookeeper下载地址 到2023年11月9日为止,最新的LTS是3.8.3

hbase下载地址 到2023年11月9日为止,最新的LTS是2.5.6

问题1

Error: JAVA_HOME is not set

解法:在hbase/conf/hbase-env.sh里添加. /etc/profile

即使用. /etc/profile的JAVA_HOME

~/.bashrc

在这个文件夹里写

export JAVA_HOME=你的JAVA地址

也是方法,但如果未来要修改JAVA地址,就很麻烦了

问题2

无法进入16010

且jps无Hmaster

解法

问题3

成功进入node1:16010,但显示

Failed to become active master due to:Call From node1/192.168.189.128 to node1:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: ConnectionRefused - HADOOP2 - Apache Software Foundation (since 2sec ago)

然后发现​telnet node1 8020​

显示telnet: Unable to connect to remote host: Connection refused​

解法:更改$HADOOP_HOME/etc/hadoop/core-site.xml里的fs.defaultFS

问题4

​hadoop出问题了

可以参考这个重新配置

注意这里的静态用户名设置为自己的,如我是设置为root

$HADOOP_HOME/etc/hadoop/hadoop-env.sh里填上一条类似于问题一的方案

$HADOOP_HOME/etc/hadoop/workers这个文件也要检查

执行时的问题

在hbase的shell里执行代码就报错

ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
        at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:3173)
        at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1163)
        at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
        at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102)
        at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82)

解法:这里的最后一个方法

最终结果

region server正常

新的问题1

yarn出不来

解法:使用jdk8,使用node1作为yarn的节点

新的问题2

master一直在启动

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
        at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:3181)
        at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2307)
        at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:694)
        at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
        at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102)
        at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82)

到zookeeper里使用bin/zkCli.sh deleteall /hbas

然后hdfs namenode -format

新的问题3

Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>

这里要等于$HADOOP_HOME那里的地址就行

新的问题4

[main] mapreduce.Job: dError: org/apache/hadoop/yarn/util/Clock
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        at java.lang.Class.getMethod0(Class.java:3018)
        at java.lang.Class.getMethod(Class.java:1784)
        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:670)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:652)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.yarn.util.Clock
        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 7 more

还在解决