IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hbase HA集群搭建 -> 正文阅读

[大数据]Hbase HA集群搭建

一、环境配置

1、环境介绍
操作系统:centos 7.9
jdk版本:8u291
hadoop版本:2.10.1
hbase版本:2.3.5
hbase下载地址:
https://mirrors.bfsu.edu.cn/apache/hbase/
zookeeper版本:3.6.3
在这里插入图片描述

hm01,hm02:
4核心 8G内存 数据盘400G
rs01-rs05:
16核心 16G内存 数据盘2T
hjn01-hjn03:
2核心 2G内存
zk01-zk03(复用现有):
4核心 8G内存

2、主机名和IP地址设置
注意:编写/etc/hosts和/etc/hostname

#zookeeper node
10.99.27.11	zk01.wtown.com
10.99.27.12	zk02.wtown.com
10.99.27.13	zk03.wtown.com
#hmaster
10.99.27.71	hm01.wtown.com
10.99.27.72	hm02.wtown.com
#regionserver	
10.99.27.73	rs01.wtown.com
10.99.27.74	rs02.wtown.com
10.99.27.75	rs03.wtown.com
10.99.27.76	rs04.wtown.com
10.99.27.77	rs05.wtown.com
#hbase journalnode
10.99.27.34	hjn01.wtown.com
10.99.27.35	hjn02.wtown.com
10.99.27.36	hjn03.wtown.com

3、挂载数据盘到/data
注意:所有hmaster和regionserver点建立/data文件夹
https://blog.csdn.net/zyj81092211/article/details/118054000

4、安装JDK
https://blog.csdn.net/zyj81092211/article/details/118055068

二、zookeeper集群

1、安装zookeeper集群
https://blog.csdn.net/zyj81092211/article/details/118066724

三、hadoop HA 集群

1、创建hadoop用户,并设置sudo权限(hbase journalnode、hmaster和regionserver节点)

useradd hadoop
echo hadoop|passwd --stdin hadoop
visudo

添加如下:

hadoop  ALL=(ALL)       NOPASSWD:ALL

2、设置ssh免认证(hbase journalnode、hmaster和regionserver节点)
root用户:

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@hm01.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@hm02.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@rs01.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@rs02.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@rs03.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@rs04.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@rs05.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@hjn01.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@hjn02.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub root@hjn03.wtown.com

hadoop用户:

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub hadoop@hm01.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@hm02.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@rs01.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@rs02.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@rs03.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@rs04.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@rs05.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@hjn01.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@hjn02.wtown.com
ssh-copy-id -i .ssh/id_rsa.pub hadoop@hjn03.wtown.com

3、修改hadoop配置文件
置文件目录hadoop\etc\hadoop
hadoop-env.sh文件
配置如下:

export JAVA_HOME=/usr/local/java

core-site.xml文件

<configuration>
	<!-- 指定hdfs的nameservice为ns2 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns2/</value>
    </property>
    <!-- 指定hadoop临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/data</value>
    </property>
    <!-- 指定zookeeper地址 -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>zk01.wtown.com:2181,zk02.wtown.com:2181,zk03.wtown.com:2181</value>
    </property>
    <property>
        <name>ha.zookeeper.session-timeout.ms</name>
        <value>3000</value>
    </property>
    <property>
        <name>ha.zookeeper.parent-znode</name>
        <value>/hbase-hadoop1</value>
    </property>
</configuration>

注:复用zookeeper需要指定ha.zookeeper.parent-znode参数,默认值是hadoop-ha

hdfs-site.xml文件

<configuration>
	<!--指定hdfs的nameservice为ns2,与core-site.xml中的一致 -->
    <property>
        <name>dfs.nameservices</name>
        <value>ns2</value>
    </property>
    <!-- ns2下面有两个NameNode,分别是hm01,hm02 ,多个NameNode用逗号隔开-->
    <property>
        <name>dfs.ha.namenodes.ns2</name>
        <value>hm01,hm02</value>
    </property>
    <!-- hm01的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns2.hm01</name>
        <value>hm01.wtown.com:8020</value>
    </property>
    <!-- hm01的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns2.hm01</name>
        <value>hm01.wtown.com:50070</value>
    </property>
    <!-- hm02的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns2.hm02</name>
        <value>hm02.wtown.com:8020</value>
    </property>
    <!-- hm02的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns2.hm02</name>
        <value>hm02.wtown.com:50070</value>
    </property>
    <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hjn01.wtown.com:8485;hjn02.wtown.com:8485;hjn03.wtown.com:8485/ns2</value>
    </property>
    <!-- 开启NameNode失败自动切换 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!-- 配置失败自动切换实现方式 -->
    <property>
        <name>dfs.client.failover.proxy.provider.ns2</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔离机制方法,多个机制用换行隔开-->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <!-- 使用sshfence隔离机制时需要ssh免登陆,使用hadoop用户-->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/home/hadoop/.ssh/id_rsa</value>       
    </property>
    <!-- 配置sshfence隔离机制超时时间 -->
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
    </property>
     <!--指定namenode名称空间的存储地址 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hadoop/hdfs/name</value>
    </property>
    <!--指定datanode数据存储地址 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hadoop/hdfs/data</value>
    </property>
    <!--指定数据副本数 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

注意:复用journalnode 需要配置dfs.namenode.shared.edits.dir中路径

slaves文件

rs01.wtown.com
rs02.wtown.com
rs03.wtown.com
rs04.wtown.com
rs05.wtown.com

4、创建配置文件中出现的对应文件夹

hadoop临时文件夹:hadoop/data
HDFS文件夹:hadoop/hdfs/name和hadoop/hdfs/data
journalnode数据文件:hadoop/journaldata

5、将软件包上传至所有节点(hbase journalnode、hmaster和regionserver节点),并创建软连接

ln -s /data/hadoop /usr/local/hadoop

6、设置hadoop环境变量(hbase journalnode、hmaster和regionserver节点)

vi /etc/profile

添加如下内容:

# hadoop environment
export HADOOP_HOME=/data/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

重新加载profile

source /etc/profile

7、添加hadoop命令执行权限(hbase journalnode、hmaster和regionserver节点)

sudo chmod +x /data/hadoop/bin/*
sudo chmod +x /data/hadoop/sbin/*

8、更改/data目录权限为hadoop(hbase journalnode、hmaster和regionserver节点)

chown -R hadoop.hadoop /data

9、hadoop用户启动journalnode(hjn01、hjn02、hjn03上)

hadoop-daemon.sh start journalnode

10、hadoop用户格式化HDFS(hm01上)

hdfs namenode -format

11、hadoop用户格式化zkfc(hm01上)

hdfs zkfc -formatZK

12、hadoop用户启动hdfs(hm01上)

start-dfs.sh

13、hadoop用户复制并启动HDFS备用节点(hm02上)

hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode

14、查看状态
在这里插入图片描述
在这里插入图片描述

四、Hbase HA集群

注:以下操作,建议使用hadoop用户;其他用户,请注意软件包权限问题
1、配置hbase-env.sh文件
添加如下

export JAVA_HOME=/usr/local/java
#关闭hbase管理zookeeper
export HBASE_MANAGES_ZK=false

2、配置hbase-site.xml文件

<configuration>
  <!-- 启用分布式模式 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!--设置hdfs,ns2为 hadoop hdfs配置的nameservices值-->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://ns2/hbase</value>
  </property>
  <!--配置zookeeper集群地址-->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>zk01.wtown.com,zk02.wtown.com,zk03.wtown.com</value>
  </property>
  <!--zookeeper集群通讯端口-->
  ?<property>
     ?<name>hbase.zookeeper.property.clientPort</name>
     ?<value>2181</value>
  </property>
  <!--配置znode根节点位置,多hbase共用一个zookeeper集群时需要配置-->
  <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase1</value>
  </property>
</configuration>

3、配置regionservers文件

rs01.wtown.com
rs02.wtown.com
rs03.wtown.com
rs04.wtown.com
rs05.wtown.com

4、hbase软连接

 sudo ln -s /data/hbase /usr/local/hbase

5、创建hadoop配置文件连接

sudo ln -s /data/hadoop/etc/hadoop/core-site.xml /data/hbase/conf/core-site.xml
sudo ln -s /data/hadoop/etc/hadoop/hdfs-site.xml /data/hbase/conf/hdfs-site.xml

6、添加Hbase环境变量

vi /etc/profile

添加如下:

# hbaes environment
export HBASE_HOME=/data/hbase
export PATH=$HBASE_HOME/bin:$PATH

7、启动Hbase ha集群
在hm01上:

start-hbase.sh

在hm02上:

hbase-daemon.sh start master

8、查看集群状态
在这里插入图片描述
web界面:
在这里插入图片描述
HDFS状态:
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:31:50  更:2021-07-13 17:33:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 19:08:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码