当前位置: 首页 > news >正文

HBase 与 Hadoop 安装与上手使用全指导

引言

在大数据领域,HBase 作为一款高可靠性、高性能、面向列、可伸缩的分布式 NoSQL 数据库,是 Hadoop 生态系统中的重要一员。它构建在 HDFS(Hadoop Distributed File System)之上,为海量结构化数据的实时读写提供了强大支持。对于初学者而言,如何从零开始搭建 HBase 和 Hadoop 环境并快速上手使用,是进入大数据世界的关键一步。本文将提供一份从环境准备、安装配置到基础操作的全流程指导,帮助你快速搭建并运行起自己的 HBase 集群。

1. 环境准备

在开始安装之前,请确保你的系统满足以下基本要求:

  • 操作系统:推荐使用 Linux 发行版(如 Ubuntu 20.04/22.04, CentOS 7/8)。本文将以 Ubuntu 22.04 为例。
  • Java 环境:Hadoop 和 HBase 均基于 Java 开发,需要安装 JDK 8 或 JDK 11。
  • SSH 免密登录:如果你计划搭建多节点集群,需要配置主节点到所有从节点的 SSH 免密登录。
  • 系统资源:建议至少 4GB 内存和 20GB 可用磁盘空间用于学习和测试。

1.1 安装 Java

首先,更新系统包列表并安装 OpenJDK 11:

sudoaptupdatesudoaptinstallopenjdk-11-jdk-y

安装完成后,验证 Java 版本:

java-version

输出应类似于:

openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1) OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1, mixed mode, sharing)

设置JAVA_HOME环境变量。找到 Java 的安装路径:

sudoupdate-alternatives--configjava

记下路径(例如/usr/lib/jvm/java-11-openjdk-amd64),然后编辑~/.bashrc文件:

echo'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64'>>~/.bashrcecho'export PATH=$JAVA_HOME/bin:$PATH'>>~/.bashrcsource~/.bashrc

验证JAVA_HOME

echo$JAVA_HOME

2. Hadoop 安装与配置(单机模式)

我们将首先以单机模式安装 Hadoop,这是运行 HBase 的基础。单机模式适合学习和测试。

2.1 下载与解压

访问 Apache Hadoop 官网 下载稳定版本(例如 3.3.6)。使用 wget 下载并解压:

cd/optsudowgethttps://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gzsudotar-xzvfhadoop-3.3.6.tar.gzsudomvhadoop-3.3.6 hadoopsudochown-R$USER:$USER/opt/hadoop

2.2 配置环境变量

编辑~/.bashrc,添加 Hadoop 环境变量:

echo'export HADOOP_HOME=/opt/hadoop'>>~/.bashrcecho'export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH'>>~/.bashrcsource~/.bashrc

2.3 配置 Hadoop

进入 Hadoop 配置目录:

cd$HADOOP_HOME/etc/hadoop
  1. 配置hadoop-env.sh
    设置JAVA_HOME

    echo"export JAVA_HOME=$JAVA_HOME">>hadoop-env.sh
  2. 配置core-site.xml
    定义 HDFS 的默认文件系统 URI 和临时目录。

    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/opt/hadoop/tmp</value></property></configuration>
  3. 配置hdfs-site.xml
    配置 HDFS 的副本数(单机模式设为 1)。

    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file://${hadoop.tmp.dir}/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file://${hadoop.tmp.dir}/dfs/data</value></property></configuration>
  4. 配置mapred-site.xml
    指定 MapReduce 框架为 YARN。

    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
  5. 配置yarn-site.xml

    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>

2.4 格式化 NameNode 并启动

首次运行前,需要格式化 HDFS 的 NameNode:

hdfs namenode-format

启动 HDFS 和 YARN 服务:

start-dfs.sh start-yarn.sh

使用jps命令检查进程是否正常启动:

jps

应看到NameNode,DataNode,SecondaryNameNode,ResourceManager,NodeManager等进程。

访问 Web UI 验证:

  • HDFS NameNode:http://localhost:9870
  • YARN ResourceManager:http://localhost:8088

3. HBase 安装与配置(单机模式)

HBase 可以运行在单机模式(使用本地文件系统)或分布式模式(使用 HDFS)。我们先从单机模式开始。

3.1 下载与解压

访问 Apache HBase 官网 下载稳定版本(例如 2.5.8)。下载并解压:

cd/optsudowgethttps://dlcdn.apache.org/hbase/2.5.8/hbase-2.5.8-bin.tar.gzsudotar-xzvfhbase-2.5.8-bin.tar.gzsudomvhbase-2.5.8 hbasesudochown-R$USER:$USER/opt/hbase

3.2 配置环境变量

编辑~/.bashrc,添加 HBase 环境变量:

echo'export HBASE_HOME=/opt/hbase'>>~/.bashrcecho'export PATH=$HBASE_HOME/bin:$PATH'>>~/.bashrcsource~/.bashrc

3.3 配置 HBase

进入 HBase 配置目录:

cd$HBASE_HOME/conf
  1. 配置hbase-env.sh
    设置JAVA_HOME并指定 HBase 使用内置的 Zookeeper。

    echo"export JAVA_HOME=$JAVA_HOME">>hbase-env.shecho"export HBASE_MANAGES_ZK=true">>hbase-env.sh
  2. 配置hbase-site.xml
    这是 HBase 的核心配置文件。对于单机模式,我们指定数据存储目录和 Zookeeper 数据目录。

    <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hbase.rootdir</name><value>file:///opt/hbase/data</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/opt/hbase/zookeeper</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property></configuration>

    注意hbase.unsafe.stream.capability.enforce=false这个配置在某些 Linux 发行版上是必须的,用于避免启动时的兼容性问题。

3.4 启动 HBase 并验证

启动 HBase 服务:

start-hbase.sh

使用jps命令检查,应看到HMasterHRegionServer进程。

访问 HBase Web UI:http://localhost:16010

4. HBase Shell 基础操作

HBase Shell 是一个基于 JRuby 的交互式命令行工具,是操作 HBase 最直接的方式。

4.1 进入 HBase Shell

hbase shell

成功进入后,提示符会变为hbase(main):001:0>

4.2 基本命令

  1. 查看帮助与状态

    helpstatus
  2. 创建表
    语法:create ‘表名’, ‘列族1’, ‘列族2’, ...

    create'student','info','score'

    此命令创建了一个名为student的表,包含两个列族:infoscore

  3. 列出所有表

    list
  4. 查看表结构

    describe'student'
  5. 插入数据
    语法:put ‘表名’, ‘行键’, ‘列族:列限定符’, ‘值’

    put'student','1001','info:name','Tom'put'student','1001','info:age','20'put'student','1001','score:math','95'put'student','1002','info:name','Jerry'put'student','1002','score:english','88'
  6. 查询数据

    • 获取单行数据
      get'student','1001'
    • 扫描全表
      scan'student'
    • 扫描指定列族
      scan'student',{COLUMNS=>['info']}
  7. 删除数据

    • 删除一个单元格
      delete'student','1001','info:age'
    • 删除整行
      deleteall'student','1001'
  8. 禁用与删除表
    删除表前必须先禁用(disable)它。

    disable'student'drop'student'
  9. 退出 Shell

    exit

5. HBase 与 Hadoop 集成(伪分布式模式)

要让 HBase 使用 HDFS 作为底层存储,只需修改hbase-site.xml中的hbase.rootdir

5.1 修改 HBase 配置

停止 HBase 服务:

stop-hbase.sh

编辑$HBASE_HOME/conf/hbase-site.xml,将hbase.rootdir指向 HDFS:

<property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property>

5.2 启动服务并验证

确保 Hadoop 的 HDFS 和 YARN 正在运行(start-dfs.shstart-yarn.sh)。

启动 HBase:

start-hbase.sh

现在,HBase 的数据将存储在 HDFS 的/hbase目录下。你可以通过 HDFS 命令查看:

hdfs dfs-ls/hbase

6. 常见问题与故障排除

  • Java 版本问题:确保使用 JDK 8 或 11,更高版本可能不兼容。
  • 端口冲突:检查9000,9870,16010,2181等端口是否被占用。
  • HBase 启动失败:检查$HBASE_HOME/logs/下的日志文件,特别是hbase-*-master-*.loghbase-*-regionserver-*.log
  • HDFS 权限问题:如果 HBase 无法写入 HDFS,尝试在 HDFS 上创建/hbase目录并赋予权限:hdfs dfs -mkdir /hbase && hdfs dfs -chmod 777 /hbase
  • Web UI 无法访问:检查防火墙设置,确保相关端口已开放。

7. 下一步学习建议

成功安装并运行 HBase 后,你可以进一步探索:

  1. 深入 HBase 架构:理解 Region、RegionServer、HMaster、ZooKeeper 的角色。
  2. 学习高级 Shell 命令:过滤器(Filter)、计数器(Increment)、协处理器(Coprocessor)。
  3. 使用 Java API 编程:学习如何使用HBaseAdminTable接口进行增删改查。
  4. 搭建完全分布式集群:将 HBase 和 Hadoop 部署在多台机器上,体验真正的分布式能力。
  5. 集成其他生态工具:学习如何与 Apache Phoenix(SQL on HBase)、Apache Spark 进行集成。

总结

本文详细介绍了在 Linux 系统上从零开始安装和配置 Hadoop(单机模式)与 HBase(单机及伪分布式模式)的完整步骤,并演示了通过 HBase Shell 进行基础数据操作。遵循本指南,你应该能够顺利搭建起自己的大数据学习环境。记住,实践是学习的最佳途径,多动手操作,多查看日志,你将对 HBase 和 Hadoop 有更深刻的理解。

http://www.jsqmd.com/news/945564/

相关文章:

  • 2026年最新AI论文平台全攻略(含保姆级操作教程)
  • 51单片机RS485全双工通信仿真套件(Keil5源码+Proteus DSN+多场景例程)
  • 设计师正在消失?不,是“AI增强型设计师”正在诞生:基于172家企业的岗位能力图谱重构,含5级认证路径与真实项目交付SOP(绝密内参·首度解禁)
  • STC15单片机双串口通信实战:手把手教你配置串口2(附完整代码)
  • WSL 2内存占用太高?手把手教你用.wslconfig文件精细调优,告别卡顿
  • 设计走查表与设计还原度优化:像素级精准的工程实践
  • 仅限内部技术委员会解密:头部知识IP已用的AI播客灰度发布模型(含Latency<800ms实测数据)
  • 工业应用需高强度耐磨合金?揭秘高品质Inconel 718生产厂家的实力 - 品牌2026
  • 2026最新!8款论文降AI率工具实测合集,建议收藏(含免费版)
  • 库存告急怎么办?拥有大库存量的Inconel 718厂商推荐清单 - 品牌2026
  • [智能体-240]:LangChain实现MCP工具调用的代码示例(MCP client端)
  • 【权威认证】工信部信创工作组推荐方案:AI工具与智能勋章融合的6层可信架构标准
  • 3分钟掌握秒传脚本:如何实现永久有效的百度网盘文件分享
  • 用Python复现AB3DMOT:200+FPS的3D目标跟踪,从KITTI点云数据开始
  • 2026年 速冻蔬菜基地/5000亩蔬菜基地供应商推荐榜单:绿色生态种植与冷链保鲜实力典范 - 品牌企业推荐师(官方)
  • 保姆级教程:在Ubuntu 20.04上为AirSim ROS节点添加自定义角速度控制接口
  • 千寻智能Spirit v1.6反超英伟达Cosmos 3,3个月融资近50亿背后有何秘诀?
  • 2026年近期广东有实力的精密热流道供应商综合分析与推荐 - 2026年企业资讯
  • OpenClaw从入门到应用——CLI:Dashboard
  • WzComparerR2深度解析:冒险岛游戏资源提取与分析的终极实战指南
  • 2026青少年防控镜片评测:星乐视4.0三效压轴/渐进多焦点镜片/眼轴控制镜片/碳晶A5膜镜片/离焦镜片/耐磨镜片/选择指南 - 优质品牌商家
  • DeepXDE深度解析:5步掌握物理信息神经网络的核心技术
  • Memos数据库文件(.db)的另类玩法:不靠官方导出,用几行Python代码喂饱你的Obsidian Thino插件
  • 2026年隧道陶钢复合板厂家推荐榜:重庆装饰陶钢板/铝陶钢复合板/隧道用钢石板/铝钙板品牌深度解析 - 品牌企业推荐师(官方)
  • 实测才敢推!2026年靠谱AI论文工具榜单,免费款也能高效产初稿
  • 绕过微软账户限制:离线方式管理Windows预览体验计划
  • 大语言模型开发的工作岗位都有哪些?
  • 把开发环境装进U盘:用WTG打造一个即插即用的Python/数据分析移动工作站
  • 南京信息工程大学LaTeX论文模板终极指南:5步解决本科生毕业论文排版难题
  • Jina Reader:当AI拥有互联网之眼,你的LLM将看到怎样的世界?