HBase 2.4.6完全分布式集群搭建避坑指南(附自研分发脚本)

HBase完全分布式集群环境搭建过程总结 一、前言 暑期实验室实习学姐告知学习HBase,便利用复习之余的时间搭建HBase环境,先前不了解搞了个单机版的,学姐说实验室开发不用单机2333[尴尬],于是又开始创建虚拟机开始完全分布式集群环境的搭建。搭建主要是各种百度,也遇到了一些bug,也来来回回删增了很多虚拟机[哭泣],在这里主要是进行一个简单的总结,要是能帮上大家就很开心啦~\(≧▽≦)/~ 二、准备 Ubuntu16... 阅读详情

HBase 2.4.6 分布式集群实战:从零到一的部署心法与自研工具集

如果你已经成功搭建了Hadoop和ZooKeeper集群,正准备将HBase纳入你的大数据技术栈,那么恭喜你,你已经走过了最复杂的部分。然而,从“能跑”到“跑得稳”,HBase的完全分布式部署依然布满了新手容易踩入的“暗坑”。端口冲突、配置项理解偏差、环境变量污染、启停脚本不统一……这些问题任何一个都可能导致数小时的排查。本文不是一份简单的操作清单,而是一份融合了实战经验的“避坑指南”。我们将围绕HBase 2.4.6与Hadoop 3.1.3的组合,深入那些官方文档语焉不详的细节,并提供一套经过实战检验的自研脚本,帮助你构建一个健壮、易维护的生产级HBase集群。

1. 部署前的深度环境审视与规划

在动手修改任何一个配置文件之前,花时间进行环境审视和规划是避免后续混乱的关键。很多部署失败,根源在于环境的不一致和理解的偏差。

1.1 基础环境一致性校验

一个稳定的分布式系统,其基石是节点间环境的高度一致性。这不仅仅是软件版本,更包括系统配置、目录结构和权限。

首先,确保所有节点(假设为node1, node2, node3)已满足以下最低一致性要求:

  • 用户与权限:建议使用统一的非root用户(如hadoop)进行部署和运行。确保该用户在所有节点上存在,且对HBase、Hadoop、ZooKeeper的安装目录具有完全的读写执行权限。
  • 主机名与网络:/etc/hosts文件中的主机名映射必须在所有节点上完全一致。避免在配置中混用IP和主机名,统一使用主机名。使用ping和ssh命令双向测试节点间的网络连通性和无密码登录。
  • 时间同步:分布式集群对时间同步极其敏感。务必配置NTP服务,确保所有节点间的时间差在毫秒级以内。可以使用ntpdate命令手动同步,或搭建chrony/NTP服务。
  • JDK版本:HBase 2.4.6官方推荐使用JDK 8。请在所有节点上检查并统一JDK版本。使用java -version确认,并确保JAVA_HOME环境变量指向正确的路径。

注意:环境变量是另一个常见的“坑”。避免在多个地方(如/etc/profile, ~/.bashrc, ~/.bash_profile)重复定义JAVA_HOME, HADOOP_HOME, HBASE_HOME,这可能导致脚本执行时引用错误的路径。建议采用集中化管理。

1.2 Hadoop与ZooKeeper状态确认

HBase严重依赖底层的HDFS和协调服务ZooKeeper。在安装HBase前,请务必确认它们已处于健康状态。

Hadoop HDFS健康检查:

# 在主节点执行,查看HDFS状态
hdfs dfsadmin -report
# 检查NameNode和DataNode进程
jps | grep -E 'NameNode|DataNode|SecondaryNameNode'
# 尝试在HDFS上创建测试目录,验证读写权限
hdfs dfs -mkdir -p /test_hbase
hdfs dfs -ls /

ZooKeeper集群健康检查:

# 连接到任意ZooKeeper节点,使用四字命令检查状态
echo stat | nc node1 2181
# 或使用客户端工具
zkCli.sh -server node1:2181,node2:2181,node3:2181
# 进入后执行 `ls /`,查看是否能正常响应

如果上述任何一步检查失败,请先解决Hadoop或ZooKeeper的问题,切勿带着隐患继续部署HBase。

2. HBase核心配置的“避坑”详解

解压HBase安装包后,进入conf目录,你会看到一系列配置文件。其中,hbase-env.sh和hbase-site.xml是灵魂所在,配置错误轻则服务无法启动,重则数据丢失。

2.1 hbase-env.sh:环境定调

这个文件主要设置HBase运行所需的Shell环境变量。用文本编辑器打开,找到并修改或添加以下关键行:

# 指定JDK安装路径,必须与所有节点上的实际路径一致
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

# 关键决策:是否使用HBase内置的ZooKeeper。
# 在生产环境中,强烈建议使用独立的外部ZooKeeper集群,以获得更好的稳定性和可维护性。
export HBASE_MANAGES_ZK=false

# 设置HBase日志目录,避免日志散落在各处。确保该目录存在且有写入权限。
export HBASE_LOG_DIR=/var/log/hbase

# (可选但推荐)配置GC参数,对于大数据量场景尤为重要,可以优化JVM垃圾回收行为,减少STW时间。
export HBASE_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=100"

将HBASE_MANAGES_ZK设置为false,意味着你需要自己管理一个独立的ZooKeeper集群,这正是我们之前检查过的。这是生产环境的最佳实践。

2.2 hbase-site.xml:核心参数博弈

这是HBase最重要的配置文件,采用XML格式。所有配置项都包裹在<configuration>标签内。下面我们逐条分析那些容易出错的参数。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- 1. HBase根目录在HDFS上的位置 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://node1:8020/hbase</value>
  </property>

第一个大坑:端口一致性。 hdfs://node1:8020中的端口8020,必须与Hadoop core-site.xml中fs.defaultFS配置的端口完全一致。Hadoop 3.x默认可能是9820或9000,请务必核对。你可以通过hdfs getconf -confKey fs.defaultFS命令快速确认。

  <!-- 2. 集群运行模式:必须为true -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <!-- 3. ZooKeeper集群地址 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node1,node2,node3</value>
  </property>
  <!-- ZooKeeper数据目录,指向你独立ZooKeeper配置的dataDir -->
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/data/zookeeper/data</value>
  </property>

第二个大坑:ZooKeeper列表。 hbase.zookeeper.quorum只需列出ZooKeeper服务器节点,用逗号分隔。它默认使用2181端口。确保这个列表与你的ZooKeeper集群实际部署节点一致。

  <!-- 4. 解决Hadoop 3.x与HBase的兼容性问题(关键!) -->
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>

这是HBase 2.x与Hadoop 3.x搭配时最常见的启动失败原因之一。 HMaster进程启动后立即退出,日志中常出现与StreamCapabilities相关的错误。将此参数设为false可以绕过此兼容性检查,是社区推荐的解决方案。

  <!-- 5. RegionServer处理RPC请求的线程数,根据CPU核心数调整 -->
  <property>
    <name>hbase.regionserver.handler.count</name>
    <value>30</value>
  </property>

  <!-- 6. 设置WAL(Write-Ahead-Log)提供者为文件系统 -->
  <property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
  </property>

  <!-- 7. Master Web UI端口 -->
  <property>
    <name>hbase.master.info.port</name>
    <value>16010</value>
  </property>
</configuration>

2.3 配置文件软链接:优雅的依赖管理

HBase需要读取HDFS的配置(如core-site.xml, hdfs-site.xml)来与Hadoop通信。一种笨办法是复制这些文件到HBase的conf目录。但更优雅、不易出错的做法是创建软链接(Symbolic Link)。这样,当Hadoop配置更新时,HBase能自动感知。

在主节点上执行:

# 进入HBase配置目录
cd /opt/hbase-2.4.6/conf/
# 创建指向Hadoop配置文件的软链接
ln -s /opt/hadoop-3.1.3/etc/hadoop/core-site.xml .
ln -s /opt/hadoop-3.1.3/etc/hadoop/hdfs-site.xml .

使用ls -l查看,你应该能看到这两个文件是链接文件。这个操作只需要在主节点做一次,因为我们接下来会用分发脚本将整个HBase目录同步到其他节点。

3. 自研高效运维工具:分发与启停脚本

手动在每台机器上操作既低效又易错。编写Shell脚本自动化这些过程,是运维工程师的基本素养。这里分享两个我自研并在多个生产环境中使用的脚本。

3.1 集群同步脚本:xsync

这个脚本基于rsync和ssh,用于将文件或目录高效、安全地同步到集群中的所有节点。它比简单的scp更智能,支持增量同步。

创建脚本/home/hadoop/bin/xsync(确保/home/hadoop/bin在PATH环境变量中):

#!/bin/bash
# 自研集群文件同步脚本 xsync
# 参数:需要同步的文件或目录路径

# 判断参数个数
if [ $# -lt 1 ]; then
    echo "Usage: xsync <file_or_dir> [<file_or_dir> ...]"
    exit 1
fi

# 预先定义集群节点列表,根据你的实际情况修改
HOST_LIST=("node1" "node2" "node3")
# 或者从某个配置文件中读取,更具灵活性
# HOST_LIST=$(cat /path/to/cluster_hosts)

# 获取当前用户,用于ssh连接
CURRENT_USER=$(whoami)

# 遍历所有需要同步的文件/目录
for file_path in "$@"; do
    # 检查本地文件是否存在
    if [ -e "$file_path" ]; then
        # 获取文件的绝对路径
        ABS_PATH=$(readlink -f "$file_path")
        # 获取文件所在目录和文件名
        PARENT_DIR=$(dirname "$ABS_PATH")
        FILE_NAME=$(basename "$ABS_PATH")

        # 遍历集群中的每一个从节点进行同步
        for target_host in "${HOST_LIST[@]}"; do
            # 跳过当前主机(如果是主节点也在列表中)
            if [ "$target_host" != "$(hostname)" ]; then
                echo "========== Syncing to $target_host =========="
                # 使用rsync进行同步,-avz表示归档、 verbose、压缩
                # --delete 选项谨慎使用,它会删除目标端多余的文件
                rsync -avz -e ssh "$ABS_PATH" "$CURRENT_USER@$target_host:$PARENT_DIR/"
                if [ $? -eq 0 ]; then
                    echo "Successfully synced $FILE_NAME to $target_host"
                else
                    echo "Failed to sync $FILE_NAME to $target_host" >&2
                fi
            fi
        done
        echo "========== All sync tasks for $FILE_NAME completed =========="
    else
        echo "Error: File or directory '$file_path' does not exist locally." >&2
    fi
done

给脚本添加执行权限:chmod +x /home/hadoop/bin/xsync

使用示例:

# 同步单个配置文件
xsync /opt/hbase-2.4.6/conf/hbase-site.xml
# 同步整个HBase安装目录(首次部署后)
xsync /opt/hbase-2.4.6/
# 同步环境变量脚本
xsync /etc/profile.d/my_env.sh

3.2 集群启停脚本:myhbase

HBase自带的start-hbase.sh和stop-hbase.sh只能在单台机器上运行,并且默认只在当前机器启动Master。我们需要一个能统一管理整个集群启停的脚本。

创建脚本/home/hadoop/bin/myhbase:

#!/bin/bash
# 自研HBase集群统一启停脚本 myhbase
# 参数:start | stop | status

# 集群节点定义
# Regionserver节点
REGIONSERVER_HOSTS=("node1" "node2" "node3")
# HMaster节点(通常与某个Regionserver节点重合,也可单独部署)
MASTER_HOSTS=("node1") # 可以配置多个以实现高可用(HBase HA)
# 备用Master节点(用于HA)
BACKUP_MASTER_HOSTS=("node2")

# HBase安装目录
HBASE_HOME=/opt/hbase-2.4.6

# 检查参数
if [ $# -ne 1 ]; then
    echo "Usage: myhbase {start|stop|status}"
    exit 1
fi

case $1 in
"start")
    echo "========== Starting HBase Cluster =========="
    
    # 第一步:在所有Regionserver节点上启动Regionserver进程
    for host in "${REGIONSERVER_HOSTS[@]}"; do
        echo "Starting HRegionServer on $host ..."
        ssh $host "$HBASE_HOME/bin/hbase-daemon.sh start regionserver"
        sleep 2 # 稍作等待,避免瞬间启动所有进程对ZK造成压力
    done
    
    # 第二步:在备用Master节点上启动Backup Master(如果配置了HA)
    for host in "${BACKUP_MASTER_HOSTS[@]}"; do
        echo "Starting HMaster (Backup) on $host ..."
        ssh $host "$HBASE_HOME/bin/hbase-daemon.sh start master --backup"
        sleep 3
    done
    
    # 第三步:在主Master节点上启动Active Master
    for host in "${MASTER_HOSTS[@]}"; do
        echo "Starting HMaster (Active) on $host ..."
        ssh $host "$HBASE_HOME/bin/hbase-daemon.sh start master"
    done
    
    echo "========== HBase Cluster Start Command Issued =========="
    echo "Note: It may take 30-60 seconds for services to fully initialize."
    ;;
    
"stop")
    echo "========== Stopping HBase Cluster =========="
    # 停止顺序:先停Regionserver,再停Master,避免数据写入问题
    for host in "${REGIONSERVER_HOSTS[@]}"; do
        echo "Stopping HRegionServer on $host ..."
        ssh $host "$HBASE_HOME/bin/hbase-daemon.sh stop regionserver"
    done
    sleep 5 # 等待Regionserver完成关闭前的清理工作
    
    for host in "${MASTER_HOSTS[@]}"; do
        echo "Stopping HMaster on $host ..."
        ssh $host "$HBASE_HOME/bin/hbase-daemon.sh stop master"
    done
    
    for host in "${BACKUP_MASTER_HOSTS[@]}"; do
        echo "Stopping Backup HMaster on $host ..."
        ssh $host "$HBASE_HOME/bin/hbase-daemon.sh stop master"
    done
    echo "========== HBase Cluster Stopped =========="
    ;;
    
"status")
    echo "========== HBase Cluster Status =========="
    for host in "${REGIONSERVER_HOSTS[@]}"; do
        echo "--- Status on $host ---"
        ssh $host "jps | grep -E 'HMaster|HRegionServer' || echo 'No HBase process found.'"
    done
    # 检查HBase Master Web UI是否可访问
    MASTER_UI_NODE=${MASTER_HOSTS[0]}
    echo "Checking Master Web UI (http://$MASTER_UI_NODE:16010) ..."
    if curl -s --connect-timeout 5 "http://$MASTER_UI_NODE:16010" > /dev/null; then
        echo "Master Web UI is accessible."
    else
        echo "Warning: Cannot connect to Master Web UI."
    fi
    ;;
    
*)
    echo "Invalid argument: $1"
    echo "Usage: myhbase {start|stop|status}"
    exit 1
    ;;
esac

同样,赋予执行权限:chmod +x /home/hadoop/bin/myhbase。

这个脚本的优势在于:

  1. 流程可控:明确了启动和停止的顺序,更符合服务依赖。
  2. 状态检查:提供了status命令,快速查看各节点进程状态。
  3. 高可用预留:脚本结构已经考虑了多Master(HA)的部署方式,只需稍加修改即可启用。
  4. 日志清晰:每一步都有明确的输出,便于排查问题。

4. 集群启动、验证与故障排查

完成所有配置和脚本准备后,终于到了激动人心的启动时刻。

4.1 启动流程与验证

  1. 确保依赖服务已启动:再次确认HDFS和ZooKeeper集群运行正常。

  2. 分发配置:在主节点完成所有配置后,使用我们的xsync脚本将整个/opt/hbase-2.4.6/目录同步到所有其他节点。

    xsync /opt/hbase-2.4.6/
    
  3. 启动HBase集群:使用自研的myhbase脚本启动。

    myhbase start
    
  4. 验证服务状态:

    # 使用脚本查看进程状态
    myhbase status
    
    # 在主节点上,应该能看到HMaster和HRegionServer进程
    jps | grep -E 'HMaster|HRegionServer'
    
    # 在从节点上,应该能看到HRegionServer进程
    # 可以通过ssh快速查看
    ssh node2 "jps | grep HRegionServer"
    
  5. 访问Web UI:在浏览器中打开http://node1:16010。这是HBase Master的Web界面,是监控集群健康状态的绝佳工具。你应该能看到:

    • 集群概览:显示集群版本、负载、平均负载等。
    • Region Servers:列出所有在线的RegionServer及其状态、请求数、存储使用情况。
    • Tables:显示已有的表(初始为空)。
  6. 使用HBase Shell进行基本测试:

    # 进入HBase Shell
    hbase shell
    
    # 创建一个测试表
    create 'test_table', 'cf1', 'cf2'
    
    # 列出所有表
    list
    
    # 插入一行数据
    put 'test_table', 'row1', 'cf1:name', 'Alice'
    put 'test_table', 'row1', 'cf2:age', '25'
    
    # 扫描表数据
    scan 'test_table'
    
    # 获取特定行
    get 'test_table', 'row1'
    
    # 退出Shell
    exit
    

4.2 常见故障与排查思路

即使按照指南操作,也可能遇到问题。以下是几个典型故障及排查方法:

问题一:HMaster进程启动后立刻退出。

  • 排查:这是最常见的问题。首先查看HMaster的日志,日志文件位于$HBASE_HOME/logs/目录下,通常命名为hbase-<user>-master-<hostname>.log。
  • 重点查看日志尾部:搜索ERROR和FATAL关键词。很可能是:
    • 端口冲突:检查16000(Master RPC端口)和16010(Web UI端口)是否被占用。netstat -tlnp | grep :16000。
    • ZooKeeper连接失败:检查hbase-site.xml中hbase.zookeeper.quorum配置是否正确,以及网络防火墙是否放行了2181端口。
    • HDFS路径权限问题:HBase用户没有在HDFS上/hbase目录的写入权限。使用hdfs dfs -ls /和hdfs dfs -chmod -R 755 /hbase解决。
    • Hadoop版本兼容性:确认已设置hbase.unsafe.stream.capability.enforce为false。

问题二:RegionServer无法启动或启动后频繁挂掉。

  • 排查:查看对应节点的RegionServer日志(hbase-<user>-regionserver-<hostname>.log)。
  • 可能原因:
    • 内存不足:检查hbase-env.sh中的HBASE_HEAPSIZE或HBASE_REGIONSERVER_OPTS,为RegionServer分配足够的内存(例如-Xmx8G -Xms8G)。
    • 与HDFS的DataNode端口冲突:检查hbase.regionserver.port(默认16020)是否与其它服务冲突。
    • 时钟不同步:再次强调,使用ntpdate或chronyc命令同步所有节点时间。

问题三:HBase Shell可以连接,但操作表时报错或超时。

  • 排查:检查Master和RegionServer的Web UI,看所有服务是否都显示为“在线”(Alive)。查看ZooKeeper状态,确认HBase的znode(默认在/hbase路径下)是否被正确创建。
  • 可能原因:
    • RegionServer负载不均或宕机:在Master UI的“Region Servers”页面查看是否有节点状态异常。
    • 网络延迟或丢包:在节点间使用ping和traceroute检查网络质量。

一个高效的排查命令组合:

# 1. 检查进程
myhbase status

# 2. 检查关键端口监听
netstat -tlnp | grep -E '16000|16010|16020|16030'

# 3. 快速查看日志最新错误(在所有节点上)
tail -100f /opt/hbase-2.4.6/logs/hbase-*-master-*.log
tail -100f /opt/hbase-2.4.6/logs/hbase-*-regionserver-*.log

# 4. 检查HDFS上HBase目录
hdfs dfs -ls -R /hbase | head -20

# 5. 检查ZooKeeper中HBase的状态
echo ls /hbase | zkCli.sh -server node1:2181

5. 生产环境进阶考量与性能调优

集群成功跑起来只是第一步。要让HBase在生产环境中稳定、高效地运行,还需要考虑更多。

5.1 高可用(HA)部署

默认单Master存在单点故障风险。HBase支持多Master,其中一个为Active,其余为Backup Standby。

配置步骤简述:

  1. 在所有希望运行Master的节点上,确保配置一致。
  2. 在hbase-site.xml中,不需要特殊配置来启用多Master。HBase利用ZooKeeper进行Master选举。
  3. 启动集群时,在多个节点上启动Master进程即可。我们的myhbase脚本已经预留了BACKUP_MASTER_HOSTS配置项,只需填入备用Master节点主机名,并在start逻辑中取消对应注释即可。
  4. 当Active Master宕机时,ZooKeeper会从Backup Master中选举出新的Active Master,通常切换时间在几十秒内。

5.2 关键性能参数调优

根据你的数据规模、访问模式和硬件资源,调整以下参数可以显著提升性能:

参数默认值调优建议与说明
hbase.regionserver.handler.count30RPC处理线程数。根据CPU核心数和并发请求量调整。公式:CPU核数 * 10 是一个起点。监控RegionServer的RPC队列长度,如果持续增长,可适当调高。
hbase.hregion.memstore.flush.size128MBMemStore刷写阈值。增大此值可以减少刷写HFile的次数,提升写性能,但会增加RegionServer内存压力和故障恢复时间。建议在256MB-1GB之间。
hbase.hstore.blockingStoreFiles10StoreFile阻塞数。当某个Store的StoreFile数量超过此值,会阻塞该Region的更新,触发Compaction。如果写吞吐量很大,可以适当调高(如50)。
hbase.hregion.max.filesize10GBRegion分裂阈值。更大的Region可以减少分裂次数,有利于扫描操作,但不利于负载均衡和故障恢复。通常设置在20GB-50GB。
hbase.regionserver.global.memstore.size0.4全局MemStore占用堆内存的最大比例。与hbase.regionserver.global.memstore.size.lower.limit配合,控制刷写行为。如果写多读少,可以适当调高(如0.45);如果读多,可以调低,为BlockCache留出更多空间。
hfile.block.cache.size0.4BlockCache占用堆内存的比例。用于缓存读取的数据块。对于读密集型应用,可以调高此值(如0.5甚至0.6),同时降低global.memstore.size。

调整方法:在hbase-site.xml中添加或修改这些属性,然后使用xsync同步到所有节点,并滚动重启RegionServer(使用myhbase stop然后myhbase start,注意这会短暂影响服务)。

5.3 监控与告警

“无监控,不运维”。建议至少部署以下监控:

  • HBase自带Metrics:HBase通过Hadoop Metrics2框架暴露了大量指标。可以配置将其输出到Ganglia、Graphite或Prometheus。
  • JMX监控:通过JVM的JMX接口,可以监控GC情况、堆内存使用等。
  • 日志聚合:使用ELK(Elasticsearch, Logstash, Kibana)或类似工具,将各节点的HBase日志集中收集和分析,便于故障排查。
  • 进程存活监控:使用简单的Shell脚本或监控系统(如Zabbix, Prometheus+Blackbox)定期检查HMaster和HRegionServer进程是否存在。

部署HBase集群像是一场精心策划的战役,前期规划、中期配置、后期运维环环相扣。我见过太多团队在配置文件的某个端口号上栽跟头,也见过因为时间不同步导致的数据一致性问题。这份指南和附带的脚本,是我从多次“踩坑”和“填坑”中提炼出来的经验。记住,自动化脚本不仅是提高效率的工具,更是保证操作一致性和可重复性的关键。当你熟悉了这些基础之后,便可以更深入地探索HBase的架构、读写路径和高级特性,让它真正成为你大数据平台上可靠的数据存储引擎。

Hadoop集群的完整搭建(Hadoop完全分布式+ZooKeeper+Mysql+Hive+Hbase完全分布式+Spark完全分布式) Hadoop集群的完整搭建准备工作网络环境的配置修改网关、IP配置映射、主机名重启网络服务,测试ssh的配置jdk的安装Hadoop完全分布式的安装准备工作修改配置文件slaveshadoop-env.shyarn-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml分发到其他节点测试安装Zookeeper准备工作修改配置文件分发即修改文件测试 准备工作 网络环境的配置 修改网关、IP 打开要修改的文件(最后一个文件名可能每个人的不一样) 阅读详情

相关推荐

【HBase基础教程】2、HBase之完全分布式模式安装

上一篇blog我们介绍了Hbase的单机模式安装与伪分布式的安装方式,本篇blog我们将详细介绍如何搭建hbase完全分布式环境,搭建hbase完全分布式环境的前提是我们已经搭建好了hadoop完全分布式环境,搭建hadoop完全分布式环境请参考:【Hadoop基础教程】4、Hadoop之完全分布式环境搭建

andieguo的专栏 6136

hbase2.4.6集群

hbase2.4.6集群安装文档 hbase下载地址:https://dlcdn.apache.org/hbase/2.4.6/ hbase学习文档: 英文文档:https://hbase.apache.org/book.html 默认配置搜索:Default Configuration 所需环境:hadoop集群+zookeeper集群+jdk hadoop3.2.2.tar.gz apache-zookeeper-3.6.3-bin.tar.gz 安装hbase版本:hbase-2.4.6-bin.ta

SuperlcBlog 443

hbase完全分布式环境搭建

1、环境准备 linux系统:centos6.6 java环境: jdk1.8.0_144 hadoop环境:hadoop-2.4.1 zookeeper环境:zookeeper-3.4.6 如果有环境准备问题,请参考下面文章 linux环境:点击打开链接 hadoop搭建:点击打开链接 zookeeper搭建:点击打开链接 2、上传hbase安装包 3、解压 tar -zx...

柯南爱上指针的博客 3135

HBase-2.4.6安装教程 附常见错误解决

我这里采用了jdk1.8.0_301+hadoop-3.3.1+zookeeper-3.6.3+hbase-2.4.6的版本 不同版本可能不能兼容,兼容性问题可以去官网查看http://hbase.apache.org/book.html#_preface 我这里有三台虚拟机,hadoop102,hadoop103,hadoop104 1、zookeeper正常部署 首先保证三台机器的zookeeper正常启动 [user@hadoop102 zookeeper-3.6.3]$ bin/zkServer.s

User 1022

Mac系统下,Hadoop 2.6.2 + ZooKeeper 3.4.6 + HBase 1.1.5 完全分布式环境搭建

简介         HBase是Apache Hadoop的数据库,能够对大数据提供随机、实时的读写访问功能,具有开源、分布式、可扩展及面向列存储的特点。HBase是由Chang等人基于Google的Bigtable开发而成的。HBase的目标是存储并处理大型的数据,更具体来说是只需要使用普通的硬件配置即可处理由成千上万的行和列组成的大数据。         HBase是一个开源的、分布

wk51920的专栏 2451

HBase分布式集群搭建(2025版):基于Hadoop 3.x,附3种部署模式

单机模式(Standalone Mode)适用场景:本地开发、单元测试、快速原型验证核心特点:所有组件(HBase Master、RegionServer、ZooKeeper)运行在单个JVM进程中,数据存储在本地文件系统,无需Hadoop环境优势:3分钟部署,零配置开箱即用伪分布式模式(Pseudo-Distributed Mode)适用场景:功能测试、性能压测、分布式逻辑验证核心特点:模拟分布式环境,所有组件运行在单节点但独立进程中,数据存储在HDFS,依赖Hadoop伪分布式集群优势。

AI架构全栈开发实战笔记 1344

windows 下hbase-2.4 单机版安装教程

1.到官网下载hbase-2.4下载链接,选择bin模式下载,选择其中一个压缩包的下载地址下载即可,下载后。解压到D盘

洛阳泰山的博客 5231

2019年数学建模美赛经验总结

北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 目录 1、基本情况 2、选题 3、分工合作 4、论文写作 5、建模 6、编程 7、入门资源 ...

Smallactive 7万+

安装 HBASE 2.4.4

一.启动zookeeper服务 /opt/soft/zookeeper-3.4.6/bin/zkServer.sh start /opt/soft/zookeeper-3.4.6/bin/zkServer.sh status /opt/soft/zookeeper-3.4.6/bin/zkServer.sh stop 二.启动hdfs和yarn sbin/start-dfs.sh sbin/start-yarn.sh 三.安装HBASE 3.配置文件 3.1hbas...

daqu1314的博客 707

网络协议——Modbus-RTU

网络协议——Modbus-RTU,简介、消息格式、Modbus寄存器种类说明、功能码01H、功能码02H、功能码03H、功能码04H、功能码05H、功能码06H、功能码0FH、功能码10H。

计算机硕士的博客 9899

芯片封装、功率密度提升及热管理系统优化三个维度分析高功率芯片散热技术挑战

本文探讨高功率芯片散热技术挑战与创新。随着新能源汽车MOSFET用量增至400颗/车,文章聚焦封装技术创新(双面散热、集成模块)、功率密度提升(SGT-MOSFET优化)和热管理系统协同优化三大方向。通过热仿真案例(如CPO散热优化)展示温升改善方案,强调需协同器件级设计、系统级仿真与先进封装技术(混合键合/玻璃基板)来解决高密度互连与散热矛盾,为功率密度跃升提供技术支撑。

莱歌数字的博客 1473

HBase 集群搭建

单点关闭,去日志里查找问题,日志里会提供关于问题的更多详细信息和上下文。集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。托管的, 那么每个集群节点只能使用一个实例,并且仅适用于测试。托管的, 那么每个集群节点只能使用一个实例,并且仅适用于测试。,了解如何创建表,添加数据,扫描插入,最后禁用和删除表。的类路径查找功能,类路径的查找可能会引发问题或冲突。的类路径查找功能,类路径的查找可能会引发问题或冲突。版本的,所以这里选择的是。配置的更多信息,包括使用。的兼容性问题,越新越好,

撕得失败的标签的博客 2395

无符号整数、带符号整数溢出问题

让我们详细讲解一下带符号整数溢出和无符号整数溢出问题中,符号标志位 (SF)、零标志位 (ZF) 和进位标志位 (CF) 的行为方式

weixin_49342084的博客 2084

HBase 2.4.6完全分布式集群搭建避坑指南(附Hadoop 3.1.3兼容配置)

本文详细介绍了HBase 2.4.6完全分布式集群的搭建过程,特别针对与Hadoop 3.1.3的兼容性问题提供了解决方案。从环境准备、核心配置到性能优化,全面指导开发者避开常见陷阱,确保集群稳定运行。

prometheus9mon的博客 191

Yandex复杂还原验证码识别

本文分析了Yandex滑动验证码的识别方法,指出其通过JS判断正确滑动位置而非用户交互还原图像。核心思路是通过像素差异分析,将验证码图像重组后(分为3×3或4×4),计算相邻图像间的像素差异,最小值即为正确位置。与前期某象验证码识别方法类似,需结合图像增强技术统一像素直方图。文章强调该方法仅供学习参考,严禁用于违法行为。完整识别流程包括图像重组、像素差异计算等步骤,最终可准确定位正确拼图位置。

码王吴彦祖的博客 283

使用 Python 构建 Reddit 热帖爬虫:抓取热门讨论帖和评论

在现代互联网中,Reddit 被誉为全球最大、最活跃的讨论平台之一,汇聚了各种主题的帖子、评论和社交互动。因此,抓取 Reddit 上的热门帖子和评论可以为我们提供一个丰富的文本数据源,可以用于情感分析、话题建模、趋势分析等应用。Reddit 提供了官方的 API,可以让开发者获取包括帖子、评论、用户信息等在内的各种数据。我们可以结合上述方法,抓取多个热门帖子,并将每个帖子的标题、作者、发布时间和评论内容保存到一个数据结构中。每个帖子的对象包含了丰富的信息,如标题、内容、发布时间、作者等。

2201_76125261的博客 381

记一次 Centos7.6 基于 Hadoop3.x 集群部署 HBase 2.4.0 集群

基本信息 安装部署 [root@master ~]# wget -P /usr/bigdata/ https://mirror.bit.edu.cn/apache/hbase/2.4.0/hbase-2.4.0-bin.tar.gz [root@master ~]# cd /usr/bigdata/ [root@master bigdata]# tar zxf hbase-2.4.0-bin.tar.gz [root@master bigdata]# ll [root@master ~]# cd /us

一花一世界 2771

从原理到实战:深入解析 Synopsys VCS 仿真快照技术,提升验证效率

VCS Checkpoint 技术摘要 VCS Checkpoint 是 Synopsys VCS 提供的仿真状态快照功能,可将完整的仿真状态(寄存器、存储器、时钟、随机种子等)序列化保存。主要应用场景包括:跳过耗时初始化阶段、覆盖率驱动验证、Debug复现和UVM分阶段验证。核心原理是对仿真内核状态的完整序列化,需注意文件句柄等特殊对象需手动处理。 使用方式: 编译时添加 -checkpoint 选项 运行时通过 $save 系统任务或 +checkpoint 参数保存状态 通过 +restore 参数恢

元直的博客 248

HBase集群环境搭建

搭建Hbase集群

m0_70405779的博客 2411

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hbase 集群搭建

hbase 集群搭建1、安装步骤1.1、安装 zookeeper 集群1.2、下载/解压 hbase1.3、修改配置文件1.3.1、hbase-env.sh1.3.2、hbase-site.xml1.3.3、regionservers1.3.4、backup-masters1.4、hadoop 配置文件分发 hbase1.5、 hbase 分发安装到各节点1.6、同步时间1.7、 配置环境变量2、集群启动2.1、启动 zookeeper 集群2.2、启动 hdfs 集群2.3、 启动 hbase 集群2.4

weixin_44387652的博客 2408

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

基于 HBase & Phoenix 构建实时数仓(2)—— HBase 完全分布式安装

HBase 完全分布开启 HDFS 机柜感知、主机规划、安装配置 HBase 完全分布式集群、启动 HBase 集群、安装验证式安装

wzy0623的专栏 1906

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Linux上搭建完全分布式zookeeper和hbase

在一般情况下我们学习安装zookeeper和hbase是没有服务器用来练习部署的,这里我们采用在VMware上来模拟在虚拟机上安装部署zookeeper和hbase。由于zookeeper和hbase是基于Hadoop进行开发部署的,所以我们在部署完全分布式zookeeper和hbase之前,我们需要部署相关的Hadoop环境,这里我们可以在csdn官网里面搜索“Linux上部署完全分布式Hadoop集群”来查看一些大神博客发的Linux上Hadoop的部署,当然如果觉得麻烦了也可以访问。

m0_73901987的博客 2229

【搭建 Hbase 集群】

在内容开始之前需要了解一下几个方面的知识会更好的帮助学习和搭建Hbase集群Hadoop:Hbase 是建立在 Hadoop基础之上的分布式数据库。了解 Hadoop 的基本概念和架构将有助于您理解 Hbase 的工作原理。分布式系统:Hbase是一个分布式数据库,它将数据存储在多台服务器上。了解分布式系统的概念、优点、挑战和常见的解决方案,将帮助您更好地理解和管理Hbase集群。ZooKeeper:Hbase 使用 ZooKeeper 来协调和管理集群中的各个节点。

小驴程序源 1936

Hbase集群的搭建

hadoop、zookeeper集群已正常安装。

白夜的博客 1108
上一篇: ARS_408毫米波雷达ROS驱动开发避坑指南:自定义消息与服务实战
下一篇: 实战分享:如何高效调试一块新的单片机开发板
moss5
博客等级 码龄4年 52粉丝 1534原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值