HBase HA完全分布式环境搭建

本文详细介绍HBase集群的部署架构、系统参数设置、解压安装、环境变量配置及启动流程。涵盖Master与RegionServer节点规划、核心配置文件hbase-site.xml的详细参数设置。

一 集群部署架构介绍

Master节点一主一备,跟HadoopNameNode 保持一致,即HBase

Master也把主从节点放在NameNode主从同一台机器

RegionServer放在每一个对应DataNode上,比如我由三个DataNode,那么每一台DataNode对应的Server也会放一个RegionServer

节点规划信息:


二 企业级系统参数设置

查看Linux系统最大进程数和最大文件打开数



可根据具体情况调整,包括以下内核参数:

net.ipv4.ip_forward=0

net.ipv4.conf.default.rp_filter=1

net.ipv4.conf.default.accept_source_route=0

kernel.core_users_pid=1

net.ipv4.tcp_syncookies=1

net.bridge.bridge-nf-call-ip6tables=0

net.bridge.bridge-nf-call-iptables=0

net.bridge.bridge-nf-call-arptables=0

kernel.mggmnb=65536

kernel.mggmax=65536

kernel.shmmax=68719476736

kernel.shmall=268435456

net.ipv4.tcp_max_syn_backlog=65000

net.core.netdev_max_backlog=32768

net.core.somaxconn=32768

fs.file-max=65000

net.core.wmem_default=8388608

net.core.rmem_default=8388608

net.core.rmem_max=16777216

net.core.wmem_max=16777216

net.ipv4.tcp_timestamps=1

net.ipv4.tcp_synack_retries=2

net.ipv4.tcp_syn_retries=2

net.ipv4.tcp_mem=94500000 915000000 927000000

net.ipv4.tcp_max_orphans=3276800

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_keepalive_time=1200

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_fin_timeout=10

net.ipv4.tcp_keepalive_intvl=15

net.ipv4.tcp_keepalive_probes=3

net.ipv4.ip_local_port_range=1024 65535

net.ipv4.conf.eml.send_redirects=0

net.ipv4.conf.lo.send_redirects=0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.all.send_redirects=0

net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.conf.eml.accept_source_route=0

net.ipv4.conf.lo.accept_source_route=0

net.ipv4.conf.default.accept_source_route=0

net.ipv4.conf.all.accept_source_route=0

net.ipv4.icmp_ignore_bogus_error_responses=1

kernel.core_pattern=/tmp/core

vm.overcommit_memory=1

 

三 解压

tar-zxf ./hbase-1.0.0-cdh5.5.0.tar.gz -C /opt/app/

 

四 配置HBase的hbase-env.sh里的相关参数

exportJAVA_HOME=/opt/app/java

exportHADOOP_HOME=/opt/app/hadoop

exportHBASE_HEAPSIZE=1024

exportHBASE_OPTS="-XX:+UseConcMarkSweepGC"

exportHBASE_MASTER_OPTS="${HBASE_MASTER_OPTS} -Xmx512m"

exportHBASE_REGIONSERVER_OPTS="${HBASE_REGIONSER

VER_OPTS}-Xmx1024m"

exportHBASE_LOG_DIR=${HBASE_HOME}/logs

exportHBASE_PID_DIR=${HBASE_HOME}/pids

#不使用HBase自己的zookeeper

exportHBASE_MANAGES_ZK=false

 

五 配置hbase-site.xml

HMasterhadoop-all-01 hadoop-all-02

HRegionServerhadoop-all-01 hadoop-all-02 hadoop-all-03

<configuration>

    <!-- 指定缓存文件存储的路径 -->

    <property>

        <name>hbase.tmp.dir</name>

       <value>/opt/app/hbase/data</value>

    </property>

    <!-- 设置HRegionServers共享目录 -->

    <property>

        <name>hbase.rootdir</name>

       <value>hdfs://hdfs-cluster/hbase</value>

    </property>

    <!-- 设置HMaster的rpc端口 -->

    <property>

       <name>hbase.master.port</name>

        <value>16000</value>

    </property>

    <!-- 设置HMaster的http端口 -->

    <property>

       <name>hbase.master.info.port</name>

        <value>16010</value>

    </property>

    <!-- 开启分布式模式 -->

    <property>

       <name>hbase.cluster.distributed</name>

        <value>true</value>

    </property>

    <property>

       <name>hbase.zookeeper.quorum</name>

       <value>hadoop-all-01,hadoop-all-02,hadoop-all-03</value>

    </property>

    <!-- 指定ZooKeeper集群端口 -->

    <property>

        <name>hbase.zookeeper.property.clientPort</name>

        <value>2181</value>

    </property>

    <!--指定Zookeeper数据目录,需要与ZooKeeper集群上配置相一致 -->

    <property>

       <name>hbase.zookeeper.property.dataDir</name>

       <value>/opt/app/zookeeper-3.4.5/data</value>

    </property>

    <!-- hbase客户端rpc扫描一次获取的行数,默认是2147483647, -->

    <property>

       <name>hbase.client.scanner.caching</name>

        <value>2000</value>

    </property>

    <!-- HRegion分裂前最大的文件大小(默认1.25G)-->

    <property>

       <name>hbase.hregion.max.filesize</name>

        <value>10737418240</value>

    </property>

    <!-- HRegionServer中最大的region数量 -->

    <property>

       <name>hbase.regionserver.reginoSplitLimit</name>

        <value>2000</value>

    </property>

    <!-- StoreFile开始合并的阀值 -->

    <property>

        <name>hbase.hstore.compactionThreshold</name>

        <value>6</value>

    </property>

    <!-- 当某一个region的storefile个数达到该值则block写入,等待compact-->

    <property>

       <name>hbase.hstore.blockingStoreFiles</name>

        <value>14</value>

    </property>

    <!--当MemStore占用内存大小超过hbase.hregion.memstore.flush.size

    MemStore刷新缓存的大小的4倍,开始中block该HRegion的请求,进行flush

    释放内存,后台会有服务线程在周期内hbase.server.thread.wakefrequency

    定时检查-->

    <property>

       <name>hbase.hregion.memstore.block.multiplier</name>

        <value>4</value>

    </property>

    <!-- service工作的sleep间隔 -->

    <property>

       <name>hbase.server.thread.wakefrequency</name>

        <value>500</value>

    </property>

    <!--ZK并发连接的限制-->

    <property>

        <name>hbase.zookeeper.property.maxClientCnxns</name>

        <value>300</value>

    </property>

    <!--RegionServer进程block进行flush触发条件:该节点上所有region的memstore之和达到upperLimit*heapsize-->

    <property>

       <name>hbase.regionserver.global.memstore.size</name>

        <value>0.4</value>

    </property>

    <!--RegionServer进程触发flush的一个条件:该节点上所有region的memstore之和达到lowerLimit*heapsize-->

    <property>

       <name>hbase.regionserver.global.memstore.size.lower.limit</name>

        <value>0.3</value>

    </property>

    <property>

        <name>hfile.block.cache.size</name>

        <value>0.4</value>

    </property>

    <!--HRegionserver处理IO请求的线程数-->

    <property>

       <name>hbase.regionserver.handler.count</name>

        <value>100</value>

    </property>

    <!-- 客户端最大重试次数 -->

    <property>

       <name>hbase.client.retries.number</name>

        <value>5</value>

    </property>

    <!-- 客户端重试的休眠时间 -->

    <property>

       <name>hbase.client.pause</name>

        <value>100</value>

    </property>

</configuration>

六 配置regionservers

vimregionservers,把HRegionServer对应的host添加进去

hadoop-all-01

hadoop-all-02

hadoop-all-03

 

七 配置backup-masters文件

hadoop-all-02

八 创建必要的目录

mkdir-p /opt/app/hbase/data logs pids

九 把已经配置好的hbase分发到其他节点

删除hbase的slf4j-log4j12-1.7.5.jar,解决hbase和hadoop的LSF4J包冲突

mvslf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bak

删除/opt/app/hbase-1.0.0-cdh5.5.0/docs

scp-r hbase-1.0.0-cdh5.5.0/ hadoop@hadoop-all-02:/opt/app/

scp-r hbase-1.0.0-cdh5.5.0/ hadoop@hadoop-all-03:/opt/app/

然后每一个节点给该文件创建软连接指向/opt/app/hbase

ln-s /opt/app/hbase-1.0.0-cdh5.5.0 /opt/app/hbase

十 每一个节点添加环境变量

vim~/.bashrc

#HBASE_HOME

exportHBASE_HOME=/opt/app/hbase

exportPATH=$PATH:$HBASE_HOME/bin

保存之后,source~/.bashrc

十一 启动HBASE集群

首先确保所有ZK NNDN RM NM已经启动

start-hbase.sh所有的HMaster和HRegionServer都会启动

然后访问WEB-UI:

http://hadoop-all-01:16010


 

http://hadoop-all-02:16010


<think>好的,用户正在寻找Hadoop完全分布式模式下的实战项目或案例教程。首先,我需要整理已有的参考资料,看看有没有相关的内容。根据提供的引用,用户已经了解伪分布式模式的配置和一些基础操作,比如使用xsync脚本分发配置[^2][^5],启动NameNode[^3],以及设置JAVA_HOME[^4]。现在用户希望转向完全分布式环境,需要实际项目案例来应用这些知识。 接下来,我需要考虑用户可能的实际需求。完全分布式模式涉及多台机器,所以案例应该涵盖集群管理、数据分布、任务调度等。常见的Hadoop实战项目包括日志分析、推荐系统、数据清洗等。同时,用户可能需要具体的步骤指导和教程链接,因此需要推荐一些经典案例,比如WordCount的扩展、网站流量分析等。 还要注意用户提到的引用中有关于分发脚本xsync和配置的内容[^5],所以在案例中应该强调集群配置和自动化脚本的使用。此外,引用[1]提到伪分布式适合学习和开发,用户现在需要过渡到完全分布式,所以案例应帮助用户理解如何扩展应用到多节点环境。 可能需要推荐的案例包括使用MapReduce处理大数据集、HDFS的存储优化、YARN的资源管理等。此外,结合生态系统的其他工具如Hive、HBase、Spark的案例也会有用,但需确保以Hadoop为核心。 还要检查是否有遗漏点,比如用户可能需要从伪分布式迁移到完全分布式的步骤,或者常见问题解决方法。因此,在推荐案例时,应选择那些详细讲解集群设置、问题排查和性能优化的教程。 最后,需要确保推荐的资源是中文的,并且容易获取,比如GitHub项目、博客教程或在线课程。可能需要提及具体的书籍或网站,如《Hadoop权威指南》或黑马程序员的相关课程,帮助用户深入实践。</think>### Hadoop完全分布式实战项目及案例教程推荐 #### 一、基础实战案例 1. **多节点WordCount扩展版** - 在经典WordCount基础上增加数据分片策略优化 - 实现跨节点数据倾斜处理(如Combiner优化) - 包含集群性能对比实验(3节点 vs 5节点) - 参考教程:[《Hadoop完全分布式词频统计进阶》](示例链接) 2. **网站日志分析系统** - 使用Flume进行多节点日志采集 - HDFS存储日志数据(TB级模拟) - 开发MapReduce清洗模块 - 生成用户行为热力图报表 - 案例代码:[GitHub示例仓库](示例链接) #### 二、企业级项目 3. **电商用户画像构建** - 分布式ETL流程设计 - 用户行为特征提取(MapReduce + Hive) - 基于YARN的资源调度优化 - 包含NameNode HA配置实战[^3] 4. **气象数据分析平台** - 多数据源聚合(气象站数据 + 卫星数据) - 分布式温度预测模型 - 使用ZooKeeper实现集群协调 - 项目地址:[气象大数据GitHub项目](示例链接) #### 三、配套工具链实践 5. **自动化部署系统** - 增强版xsync脚本开发(支持动态节点检测)[^2] - Ansible集成部署方案 - 集群监控看板搭建(Ganglia + Grafana) 6. **跨集群数据同步** - DistCp工具深度使用 - 带宽限制策略配置 - 断点续传机制实现 #### 四、推荐学习资源 1. **《Hadoop权威指南(第4版)》** - 第4章 完全分布式集群搭建详解 - 第7章 YARN资源管理实战 2. **实验楼《Hadoop完全分布式项目实战》** - 包含5个渐进式实验项目 - 提供在线集群环境 3. **腾讯云大学Hadoop课程** - 企业级安全方案配置 - Kerberos认证集成实战 4. **GitHub trending项目** - hadoop-log-analysis(星标2.3k) - distributed-recommend-system(星标1.8k)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫言静好、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值