目录
(11)启动 hdfs 告警:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform
(1)下载 hbase-2.5.8-hadoop3-bin.tar.gz
(1)首先使用 hbase shell 创建一个 emp 表,含有一个列组 a。
(2)然后利用 gohbase 客户端向 hbase 插入一条测试数据
jdk版本选择:https://hbase.apache.org/book.html#java
jdk华为源下载:https://repo.huaweicloud.com/java/jdk/8u172-b11/
- cd /usr/local
- wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz
- tar zxf jdk-8u172-linux-x64.tar.gz
- # vim /etc/profile
-
- export JAVA_HOME=/usr/local/jdk1.8.0_172
- export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
- export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
-
- # source /etc/profile
#参考
https://blog.csdn.net/codedz/article/details/124044974
https://www.cnblogs.com/aerfazhe/p/15545946.html
https://www.cnblogs.com/aerfazhe/p/15545946.html
- useradd hadoop
- #passwd hadoop
-
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- chmod 0600 ~/.ssh/authorized_keys
- cd /usr/local
- wget https://dlcdn.apache.org/hadoop/core/stable/hadoop-3.4.0.tar.gz
- tar zxf hadoop-3.4.0.tar.gz
- # vim /etc/profile
-
- export HADOOP_HOME=/usr/local/hadoop-3.4.0
- export HADOOP_MAPRED_HOME=$HADOOP_HOME
- export HADOOP_COMMON_HOME=$HADOOP_HOME
- export HADOOP_HDFS_HOME=$HADOOP_HOME
- export YARN_HOME=$HADOOP_HOME
- export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
- export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
- export HADOOP_INSTALL=$HADOOP_HOME
-
- # source /etc/profile
- cd /usr/local/hadoop-3.4.0/etc/hadoop/
-
- vim hadoop-env.sh
- export JAVA_HOME=/usr/local/jdk1.8.0_71
-
- vim core-site.xml
-
-
fs.default.name -
hdfs://localhost:9000 -
-
- vim hdfs-site.xml
-
-
dfs.replication -
1 -
-
-
dfs.name.dir -
file:///home/hadoop/hadoopinfra/hdfs/namenode -
-
-
dfs.data.dir -
file:///home/hadoop/hadoopinfra/hdfs/datanode -
-
- vim yarn-site.xml
-
-
yarn.nodemanager.aux-services -
mapreduce_shuffle -
-
- vim mapred-site.xml
-
-
mapreduce.framework.name -
yarn -
- chown -R hadoop:hadoop hadoop-3.4.0
- su hadoop
hdfs namenode -format
- ./sbin/start-dfs.sh
-
- # 查看进程
- jps
71681 NameNode
71834 DataNode72068 SecondaryNameNod
- ./sbin/start-yarn.sh
-
- # 查看进程
- jps
71681 NameNode
71834 DataNode72068 SecondaryNameNode
72289 ResourceManager
72396 NodeManager
- http://localhost:9870
- http://localhost:8088
不改也不影响,添加如下环境变量即可
- # vim /etc/profile
- export JAVA_LIBRARY_PATH=/usr/local/hbase-2.5.8-hadoop3/lib/native
- # source /etc/profile
# 参考
https://blog.csdn.net/weixin_45678985/article/details/120497297
- cd /usr/local
- wget https://dlcdn.apache.org/hbase/2.5.8/hbase-2.5.8-hadoop3-bin.tar.gz
- tar zxf hbase-2.5.8-hadoop3-bin.tar.gz
- export HBASE_HOME=/usr/local/hbase-2.5.8-hadoop3
- export PATH=$PATH:$HBASE_HOME/bin
- cd /usr/local/hbase-2.5.8-hadoop3/conf
-
- vim hbase-env.sh
- export JAVA_HOME=/usr/local/jdk1.8.0_172
-
- vim hbase-site.xml
-
hbase.cluster.distributed -
true -
hbase.rootdir -
hdfs://localhost:9000/hbase -
hbase.zookeeper.property.dataDir -
/home/zookeeper
- mkdir -p /home/zookeeper
- chown -R hadoop:hadoop /home/zookeeper
- chown -R hadoop:hadoop hbase-2.5.8-hadoop3
- su hadoop
- ./bin/start-hbase.sh
-
- # 查看进程
- jps
71681 NameNode
71834 DataNode72068 SecondaryNameNode
72289 ResourceManager
72396 NodeManager
74089 HQuorumPeer
74186 HMaster
74271 HRegionServer
http://localhost:16010
- ./bin/hbase shell
- > list
- ./bin/stop-hbase.sh
- # kill -9 ${HRegionServer-PID} ${HMaster-PID} ${HQuorumPeer-PID}
关闭 hbase,修改配置文件,然后重启
- vim conf/hbase-env.sh
- export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true
# 参考
https://hadoopdoc.com/hbase/hbase-install
https://cn.linux-console.net/?p=21626
https://blog.csdn.net/qq_45811072/article/details/121693142
- ./bin/hbase shell
-
- # 创建表
- > create 'emp', 'a'
-
- # 查看表列表
- > list
-
- # 查看表结构
- > describe 'emp'
put 'emp','2','a:age','20'
向 emp 表插入一条数据,rowkey='2',column_family='a',column='age',value='20'
- package main
-
- import (
- "context"
- "github.com/tsuna/gohbase"
- "github.com/tsuna/gohbase/hrpc"
- "log"
- )
-
- func main() {
- client := gohbase.NewClient("xxx.xxx.xxx.xxx:2181")
-
- // Values maps a ColumnFamily -> Qualifiers -> Values.
- values := map[string]map[string][]byte{"a": map[string][]byte{"age": []byte{20}}}
- putRequest, err := hrpc.NewPutStr(context.Background(), "emp", "2", values)
- if err != nil {
- log.Fatalln("hrpc.NewPutStr error:", err)
- return
- }
-
- rsp, err := client.Put(putRequest)
- if err != nil {
- log.Fatalln("client.Put error:", err)
- return
- }
-
- rsp.String()
- }
time="2024-06-04T10:51:31+08:00" level=info msg="added new region client" client="RegionClient{Addr: localhost:16020}"
time="2024-06-04T10:51:33+08:00" level=error msg="error occured, closing region client" client="RegionClient{Addr: localhost:16020}" err="failed to dial RegionServer: dial tcp [::1]:16020: connectex: No connection could be made because the target machine actively refused it."
time="2024-06-04T10:51:33+08:00" level=info msg="removed region client" client="RegionClient{Addr: localhost:16020}"
具体连接哪个 regionserver 是由 zk 返回的,默认返回的 regionserver 是主机名,由于没有配置主机名,返回的 regionserver 地址是一个本机地址 localhost:16020,导致外部无法连接。并且通过 netstat -nltp 查看端口监听状态可知,16020 监听在 127.0.0.1 网卡上。这两项都导致了在外部无法连接 16020 端口。
在服务器端:
- # 修改主机名为 node01
- hostnamectl set-hostname node01
-
- # 添加主机名到主机对外ip的映射
- ip addr
- vim /etc/hosts
- xxx.xxx.xxx.xxx node01
-
- # 修改 regionservers 配置文件
- vim conf/regionservers
- node01
在客户端,同样将 hbase 主机名绑定到 hbase 主机IP。
xxx.xxx.xxx.xxx node01
参考
https://www.cnblogs.com/shanheyongmu/p/15657255.html
https://segmentfault.com/a/1190000019857725