centos

CentOS HBase与Hadoop集成实践

小樊
55
2025-10-01 01:43:59
栏目: 智能运维

CentOS环境下HBase与Hadoop集成实践指南

一、前置准备

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

  1. 系统环境配置:确保CentOS系统已更新至最新版本,安装了wgettarvim等常用工具;关闭防火墙(systemctl stop firewalld)或开放必要端口(如Hadoop的9000、50070,HBase的16010);配置/etc/hosts文件,将主机名与IP地址映射(如192.168.1.100 hadoop-master)。
  2. JDK安装:Hadoop与HBase均依赖JDK 8或11,建议使用OpenJDK(yum install java-11-openjdk-devel),并通过java -version验证安装;设置JAVA_HOME环境变量(在~/.bashrc中添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk,执行source ~/.bashrc生效)。

二、Hadoop集群安装与配置

Hadoop是HBase的数据存储底座,需先完成Hadoop的部署:

  1. 下载与解压:从Apache官网下载Hadoop稳定版(如3.3.4),解压至/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  # 创建软链接便于管理
    
  2. 配置核心文件:进入Hadoop配置目录(/usr/local/hadoop/etc/hadoop),修改以下文件:
    • core-site.xml:设置HDFS的默认文件系统URI(需替换namenode为主机名):
      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://namenode:9000</value>
          </property>
      </configuration>
      
    • hdfs-site.xml:配置HDFS副本数(测试环境设为1,生产环境建议≥3):
      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
      </configuration>
      
    • yarn-site.xml:指定YARN的shuffle服务(支持MapReduce shuffle):
      <configuration>
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
          </property>
      </configuration>
      
    • mapred-site.xml(若未自动生成,从mapred-site.xml.template复制):设置MapReduce运行框架为YARN:
      <configuration>
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
      </configuration>
      
  3. 环境变量设置:在~/.bashrc中添加Hadoop环境变量:
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    执行source ~/.bashrc使变量生效。
  4. 格式化HDFS与启动集群:首次启动前需格式化HDFS(删除原有数据,仅执行一次):
    hdfs namenode -format
    
    启动HDFS(start-dfs.sh)和YARN(start-yarn.sh),通过jps命令验证进程(应看到NameNodeDataNodeResourceManagerNodeManager)。

三、HBase安装与配置

HBase依赖Hadoop存储数据,需正确关联Hadoop集群:

  1. 下载与解压:从Apache官网下载HBase稳定版(如2.4.13),解压至/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  # 创建软链接
    
  2. 配置核心文件:进入HBase配置目录(/usr/local/hbase/conf),修改以下文件:
    • hbase-env.sh:取消JAVA_HOME注释,指定JDK路径(与Hadoop一致):
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
      
    • hbase-site.xml:关键配置项如下(需替换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>
      
    • regionservers:指定RegionServer节点(单机部署添加localhost,集群添加所有RegionServer主机名)。
  3. 环境变量设置:在~/.bashrc中添加HBase环境变量:
    export HBASE_HOME=/usr/local/hbase
    export PATH=$PATH:$HBASE_HOME/bin
    
    执行source ~/.bashrc使变量生效。

四、集成配置关键点

HBase与Hadoop的集成需通过以下配置实现无缝通信:

  1. HBase指向HDFShbase.rootdir必须设置为HDFS的URI(如hdfs://namenode:9000/hbase),确保HBase数据存储在HDFS中。
  2. 分布式模式启用hbase.cluster.distributed设为true,启用HBase分布式模式(若为单机测试,可设为false,但生产环境必须为true)。
  3. ZooKeeper协同:HBase通过ZooKeeper管理集群状态,hbase.zookeeper.quorum需指向ZooKeeper集群地址(单机用localhost),且hbase.zookeeper.property.dataDir指定的目录需存在(用于存储ZooKeeper数据)。
  4. Hadoop服务可用性:确保HDFS的NameNode和DataNode已启动,YARN的ResourceManager和NodeManager正常运行,HBase才能连接HDFS。

五、启动与验证集成

  1. 启动服务
    • 启动Hadoop集群(若未启动):
      start-dfs.sh && start-yarn.sh
      
    • 启动HBase集群:
      start-hbase.sh
      
  2. 验证进程:使用jps命令检查进程(Hadoop主节点应有NameNodeResourceManager;HBase主节点应有HMaster;RegionServer节点应有HRegionServer)。
  3. 访问Web UI
    • Hadoop NameNode Web UI:http://namenode:9870(查看HDFS状态);
    • HBase Web UI:http://namenode:16010(查看HBase集群状态)。
  4. Shell操作验证
    • 进入HBase Shell:
      hbase shell
      
    • 执行基本命令:
      create 'test_table', 'cf'  # 创建表
      put 'test_table', 'row1', 'cf:name', 'John'  # 插入数据
      scan 'test_table'  # 查询数据
      exit  # 退出
      
    若命令执行成功,说明HBase与Hadoop集成正常。

六、常见问题排查

  1. 连接超时:检查hbase.rootdir中的HDFS主机名是否正确,/etc/hosts文件是否包含主机名映射,防火墙是否阻止端口(如9000、16010)。
  2. 权限问题:确保HDFS目录(如/hbase)存在且有写入权限(hdfs dfs -mkdir -p /hbasehdfs dfs -chmod -R 777 /hbase)。
  3. 版本兼容:HBase与Hadoop版本需兼容(如HBase 2.4.x兼容Hadoop 3.3.x),避免因版本冲突导致启动失败(参考官方兼容性矩阵)。

0
看了该问题的人还看了