温馨提示×

HBase与Hadoop在CentOS上的集成方法

小樊
54
2025-10-15 14:17:27
栏目: 智能运维

HBase与Hadoop在CentOS上的集成方法

1. 环境准备

在开始集成前,需完成以下基础准备工作:

  • 安装Java环境:HBase与Hadoop均依赖Java,需先安装JDK(推荐1.8版本)。通过java -version检查是否已安装,未安装则执行sudo yum install java-1.8.0-openjdk-devel
  • 下载安装包:从Apache官网下载Hadoop(如3.3.4)和HBase(如2.4.10)的稳定版本安装包。

2. 安装与配置Hadoop

2.1 解压与目录设置

将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使配置生效。

2.2 核心配置文件修改

进入Hadoop配置目录(/usr/local/hadoop/etc/hadoop),修改以下文件:

  • core-site.xml:配置HDFS的默认文件系统地址(指向NameNode):
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    
  • hdfs-site.xml:设置HDFS副本数(单机环境设为1):
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    
  • mapred-site.xml(若不存在则复制模板):指定MapReduce运行框架为YARN:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  • yarn-site.xml:配置YARN的shuffle服务(支持MapReduce shuffle):
    <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>
    

2.3 启动Hadoop集群

  • 格式化HDFS(首次启动需执行,清除旧数据):
    hdfs namenode -format
    
  • 启动HDFS和YARN
    start-dfs.sh  # 启动HDFS(NameNode、DataNode)
    start-yarn.sh # 启动YARN(ResourceManager、NodeManager)
    
  • 验证进程:执行jps,应看到NameNodeDataNodeResourceManagerNodeManager等进程。

3. 安装与配置HBase

3.1 解压与目录设置

将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使配置生效。

3.2 核心配置文件修改

进入HBase配置目录(/usr/local/hbase/conf),修改以下文件:

  • hbase-env.sh:配置Java环境(取消注释并设置JAVA_HOME),禁用HBase自带ZooKeeper(若单独安装):
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export HBASE_MANAGES_ZK=false
    
  • hbase-site.xml:配置HBase与Hadoop的集成参数:
    <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>
    
  • regionservers:添加HBase RegionServer节点(单机环境添加localhost)。

3.3 启动HBase

执行以下命令启动HBase集群:

start-hbase.sh

验证HBase进程:执行jps,应看到HMaster(主节点)、HRegionServer(RegionServer节点)。

4. 验证集成

4.1 检查进程状态

通过jps命令确认Hadoop和HBase的关键进程是否运行:

  • Hadoop:NameNodeDataNodeResourceManagerNodeManager
  • HBase:HMasterHRegionServer

4.2 访问Web UI

  • Hadoop:打开浏览器访问http://<CentOS-IP>:9870(HDFS管理界面);
  • HBase:打开浏览器访问http://<CentOS-IP>:16010(HBase管理界面)。

4.3 执行HBase操作

通过HBase Shell验证数据读写功能:

hbase shell
# 创建表
create 'test_table', 'cf'
# 插入数据
put 'test_table', 'row1', 'cf:col1', 'value1'
# 查询数据
scan 'test_table'
# 退出
exit

若操作成功,说明HBase与Hadoop已成功集成。

注意事项

  • 版本兼容性:HBase与Hadoop版本需匹配(如HBase 2.4.x兼容Hadoop 3.3.x),避免因版本冲突导致启动失败;
  • 防火墙设置:若为远程访问,需开放Hadoop(9000、50070等)和HBase(16010、16000等)的端口;
  • 日志排查:若启动失败,可通过/usr/local/hadoop/logs/usr/local/hbase/logs目录下的日志文件定位问题。

0