CentOS環境下HBase與Hadoop集成實踐指南
在開始集成前,需完成以下基礎準備工作:
wget
、tar
、vim
等常用工具;關閉防火墻(systemctl stop firewalld
)或開放必要端口(如Hadoop的9000、50070,HBase的16010);配置/etc/hosts
文件,將主機名與IP地址映射(如192.168.1.100 hadoop-master
)。yum install java-11-openjdk-devel
),并通過java -version
驗證安裝;設置JAVA_HOME
環境變量(在~/.bashrc
中添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
,執行source ~/.bashrc
生效)。Hadoop是HBase的數據存儲底座,需先完成Hadoop的部署:
/usr/local/
目錄:wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
ln -s /usr/local/hadoop-3.3.4 hadoop # 創建軟鏈接便于管理
/usr/local/hadoop/etc/hadoop
),修改以下文件:
namenode
為主機名):<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
mapred-site.xml.template
復制):設置MapReduce運行框架為YARN:<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
~/.bashrc
中添加Hadoop環境變量:export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
執行source ~/.bashrc
使變量生效。hdfs namenode -format
啟動HDFS(start-dfs.sh
)和YARN(start-yarn.sh
),通過jps
命令驗證進程(應看到NameNode
、DataNode
、ResourceManager
、NodeManager
)。HBase依賴Hadoop存儲數據,需正確關聯Hadoop集群:
/usr/local/
目錄:wget https://archive.apache.org/dist/hbase/2.4.13/hbase-2.4.13-bin.tar.gz
tar -xzvf hbase-2.4.13-bin.tar.gz -C /usr/local/
ln -s /usr/local/hbase-2.4.13 hbase # 創建軟鏈接
/usr/local/hbase/conf
),修改以下文件:
JAVA_HOME
注釋,指定JDK路徑(與Hadoop一致):export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
namenode
為Hadoop NameNode主機名):<configuration>
<!-- 指向HDFS的HBase根目錄 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value>
</property>
<!-- 啟用分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定ZooKeeper集群地址(單機部署用localhost) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>namenode</value>
</property>
<!-- ZooKeeper數據存儲目錄 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zookeeper</value>
</property>
</configuration>
localhost
,集群添加所有RegionServer主機名)。~/.bashrc
中添加HBase環境變量:export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
執行source ~/.bashrc
使變量生效。HBase與Hadoop的集成需通過以下配置實現無縫通信:
hbase.rootdir
必須設置為HDFS的URI(如hdfs://namenode:9000/hbase
),確保HBase數據存儲在HDFS中。hbase.cluster.distributed
設為true
,啟用HBase分布式模式(若為單機測試,可設為false
,但生產環境必須為true
)。hbase.zookeeper.quorum
需指向ZooKeeper集群地址(單機用localhost
),且hbase.zookeeper.property.dataDir
指定的目錄需存在(用于存儲ZooKeeper數據)。start-dfs.sh && start-yarn.sh
start-hbase.sh
jps
命令檢查進程(Hadoop主節點應有NameNode
、ResourceManager
;HBase主節點應有HMaster
;RegionServer節點應有HRegionServer
)。http://namenode:9870
(查看HDFS狀態);http://namenode:16010
(查看HBase集群狀態)。hbase shell
create 'test_table', 'cf' # 創建表
put 'test_table', 'row1', 'cf:name', 'John' # 插入數據
scan 'test_table' # 查詢數據
exit # 退出
hbase.rootdir
中的HDFS主機名是否正確,/etc/hosts
文件是否包含主機名映射,防火墻是否阻止端口(如9000、16010)。/hbase
)存在且有寫入權限(hdfs dfs -mkdir -p /hbase
,hdfs dfs -chmod -R 777 /hbase
)。