CentOS7 安装 Hbase 2.1.10

散宜生的个人博客 一起来看流星雨 本文由博客端 https://17kblog.com 主动推送
本贴最后更新于 545 天前,其中的信息可能已经时移世异

分布式环境

安装 HA 模式 HDFS 集群 准备分布式环境。

host NN DN ZK HMaster HRegionServer
node01 *
node02 *
node03 *
node04 *
node05 *
node06 * * *
node07 * *
node08 * * *

1. HBASE 应用部署

1.1 安装应用

https://archive.apache.org/dist/hbase/2.1.10/hbase-2.1.10-bin.tar.gz

创建安装目录

[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "mkdir -p /opt/bigdata";done

分发到安装目录

[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "curl https://archive.apache.org/dist/hbase/2.1.10/hbase-2.1.10-bin.tar.gz | tar -C /opt/bigdata -zxf -";done

更改应用文件属主属组

[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "chown -R root:root /opt/bigdata/hbase-2.1.10";done

分发配置环境变量配置文件

[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "sed -i '\$a\#Hbase Environment variables\nexport HBASE_HOME=/opt/bigdata/hbase-2.1.10\nexport PATH=\$PATH:\$HBASE_HOME/bin' /etc/profile";done
[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "tail -n3 /etc/profile";done
[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "source /etc/profile";done

1.2 配置应用

配置hbase-env.sh文件

[root@node06 conf]# pwd
/opt/bigdata/hbase-2.1.10/conf
[root@node06 conf]# vim hbase-env.sh
...
export JAVA_HOME=/usr/java/default
...
export HBASE_MANAGES_ZK=false  #配置使用HBASE集群外zookeeper
...

配置 hbase-site.xml 文件

[root@node06 conf]# pwd
/opt/bigdata/hbase-2.1.10/conf
[root@node06 conf]# vim hbase-site.xml
...
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://mycluster/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>node06,node07,node08</value>
    </property>
</configuration>

修改 regionservers 文件,设置 regionserver 分布在哪几台节点

[root@node06 conf]# vim regionservers
node06
node07
node08

创建 backup-masters 文件,并添加如下内容,指定 HMaster 备用节点

[root@node06 conf]# vim backup-masters
node08

创建 hdfs-site.xml 文件的软链接到 conf 目录下

[root@node06 conf]# ln -s ../../hadoop-2.6.5/etc/hadoop/hdfs-site.xml .

分发配置文件

[root@node06 conf]# for i in `seq 7 8`;do scp hbase-env.sh root@node0$i:/opt/bigdata/hbase-2.1.10/conf/;done
[root@node06 conf]# for i in `seq 7 8`;do scp hbase-site.xml root@node0$i:/opt/bigdata/hbase-2.1.10/conf/;done
[root@node06 conf]# for i in `seq 7 8`;do scp regionservers root@node0$i:/opt/bigdata/hbase-2.1.10/conf/;done
[root@node06 conf]# for i in `seq 7 8`;do scp backup-masters root@node0$i:/opt/bigdata/hbase-2.1.10/conf/;done
[root@node06 conf]# for i in `seq 7 8`;do rsync -avzP hdfs-site.xml root@node0$i:/opt/bigdata/hbase-2.1.10/conf/;done

替换 hadoop 中老旧的 jline-0.9.94.jar

[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i rm /opt/bigdata/hadoop-2.6.5/share/hadoop/yarn/lib/jline-0.9.94.jar;done
[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i "scp root@node01:/opt/bigdata/hive-2.3.4/lib/jline-2.12.jar /opt/bigdata/hadoop-2.6.5/share/hadoop/yarn/lib/";done

解决 java.lang.ClassNotFoundException: org.apache.htrace.SamplerBuilder 异常的问题

[root@node06 ~]# for i in `seq 6 8`;do ssh root@node0$i cp /opt/bigdata/hbase-2.1.10/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar /opt/bigdata/hbase-2.1.10/lib/;done

2. 启动 HBASE 集群

2.1 HDFS 创建 hbase.rootdir 目录

注意在 god 用户下执行,节点无所谓。因为我们在 root 用户下启动 hbase,需要授权给 root 用户

[god@node01 ~]$ hdfs dfs -mkdir /hbase
[god@node01 ~]$ hdfs dfs -chown -R root /hbase

2.1 启动应用

在 node06 节点启动 hbase

[root@node06 ~]# start-hbase.sh
[root@node06 ~]# jps
14625 HRegionServer
14338 ZooKeeperMain
20325 JournalNode
14822 Jps
19496 QuorumPeerMain
21003 ResourceManager
14495 HMaster
[root@node07 ~]# jps
17702 HRegionServer
18518 ResourceManager
21895 QuorumPeerMain
17831 Jps
30570 JournalNode
[root@node08 ~]# jps
15747 HMaster
15975 Jps
15673 HRegionServer
27355 JournalNode
21566 QuorumPeerMain

查看 Web UI

http://node06:16010/

2.2 测试 hbase

[root@node06 ~]# hbase shell
...
hbase(main):001:0> status
1 active master, 1 backup masters, 3 servers, 0 dead, 0.6667 average load
Took 0.1172 seconds
package com.zk8s.hbase;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;

public class HBaseDemo {

    Configuration conf = null;
    Connection conn = null;

    // 表管理对象
    Admin admin = null;

    // 创建表对象
    TableName tableName = TableName.valueOf("phone");

    @Before
    public void init() throws IOException {
        // 创建配置文件对象
        conf = HBaseConfiguration.create();
        // 加载zk配置
        conf.set("hbase.zookeeper.quorum","node06,node07,node08");
        // 获取连接
        conn = ConnectionFactory.createConnection(conf);
        // 获取对象
        admin = conn.getAdmin();
    }

    @Test
    public void createTable() throws IOException {
        // 定义表描述对象
        TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(tableName);
        // 定义列族描述对象
        ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder("cf".getBytes());
        // 添加列族信息给表
        tableDescriptorBuilder.setColumnFamily(columnFamilyDescriptorBuilder.build());
        // 创建表
        admin.createTable(tableDescriptorBuilder.build());
    }

    @After
    public void destory() {
        try {
            admin.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            conn.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    83 引用 • 112 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 5 关注
  • HA
    5 引用
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    72 引用 • 121 回帖 • 651 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...