HBase与Hadoop在CentOS上的集成方法
在开始集成前,需完成以下基础准备工作:
java -version检查是否已安装,未安装则执行sudo yum install java-1.8.0-openjdk-devel。将Hadoop安装包解压至/usr/local/目录:
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
设置Hadoop环境变量(编辑/etc/profile):
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source /etc/profile使配置生效。
进入Hadoop配置目录(/usr/local/hadoop/etc/hadoop),修改以下文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
hdfs namenode -format
start-dfs.sh # 启动HDFS(NameNode、DataNode)
start-yarn.sh # 启动YARN(ResourceManager、NodeManager)
jps,应看到NameNode、DataNode、ResourceManager、NodeManager等进程。将HBase安装包解压至/usr/local/目录:
tar -xzvf hbase-2.4.10-bin.tar.gz -C /usr/local/
mv /usr/local/hbase-2.4.10 /usr/local/hbase
设置HBase环境变量(编辑/etc/profile):
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
执行source /etc/profile使配置生效。
进入HBase配置目录(/usr/local/hbase/conf),修改以下文件:
JAVA_HOME),禁用HBase自带ZooKeeper(若单独安装):export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HBASE_MANAGES_ZK=false
<configuration>
<!-- 指向HDFS的HBase根目录 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<!-- 启用分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定ZooKeeper集群地址(单机环境为localhost) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<!-- ZooKeeper数据存储目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zookeeper</value>
</property>
</configuration>
localhost)。执行以下命令启动HBase集群:
start-hbase.sh
验证HBase进程:执行jps,应看到HMaster(主节点)、HRegionServer(RegionServer节点)。
通过jps命令确认Hadoop和HBase的关键进程是否运行:
NameNode、DataNode、ResourceManager、NodeManager;HMaster、HRegionServer。http://<CentOS-IP>:9870(HDFS管理界面);http://<CentOS-IP>:16010(HBase管理界面)。通过HBase Shell验证数据读写功能:
hbase shell
# 创建表
create 'test_table', 'cf'
# 插入数据
put 'test_table', 'row1', 'cf:col1', 'value1'
# 查询数据
scan 'test_table'
# 退出
exit
若操作成功,说明HBase与Hadoop已成功集成。
/usr/local/hadoop/logs和/usr/local/hbase/logs目录下的日志文件定位问题。