HBase集成Zookeeper集群部署

  大数据集群为了保证故障转移,一般通过zookeeper来整体协调管理,当节点数大于等于6个时推荐使用,接下来描述一下Hbase集群部署在zookeeper上的过程:

  安装Hbase之前首先系统应该做通用的集群环境准备工作,这些是必须的:

  1、集群中主机名必须正确配置,最好有实际意义;并且主机名都在hosts文件中对应主机IP,一一对应,不可缺少

  这里集群有6台服务器:bigdata1,bigdata2,bigdata3,bigdata4,bigdata5,bigdata6

  这里是3台主机,分别对应

  2、JDK环境正确安装

  3、集群中每台机器关闭防火墙,保证通信畅通

  4、配置集群间ssh免密登录

  5、集群ntp服务开启,保证时间同步

  6、zookeeper正确安装

  7、Hadoop HDFS服务开启

  这里预定zookeeper的地址为:bigdata2,bigdata3,bigdata4,bigdata5,bigdata6 5个zookeeper节点

  hadoop namenode为bigdata1(主),bigdata2(备用),其余4个为datanode

  hbase Master为bigdata1,其余为存储节点

  基于以上配置结合集群高可用配置,构成一个性能比较好的集群配置方式

  前面6步都配置好的基础上,首先配置Hadoop集群,在bigdata1上做配置操作

  首先解压hadoop,并安装至指定目录:

tar -xvzf hadoop-2.6.0.tar.gz
mkdir /bigdata/hadoop
mv hadoop-2.6.0 /bigdata/hadoop
cd /bigdata/hadoop/hadoop-2.6.0

  就是简单的释放,然后为了方便可以将HADOOP_HOME添加至环境变量

  配置hadoop需要编辑以下几个配置文件:

  hadoop-env.sh  core-site.xml  hdfs-site.xml   mapred-site.xml   yarn-site.xml  slaves

  1、编辑hadoop-env.sh

  修改export JAVA_HOME=${JAVA_HOME}为自己的实际安装位置

  这里是export JAVA_HOME=/usr/local/java/jdk1.8.0_73

  

   2、编辑core-site.xml,在configuration标签中间添加如下代码,

 1     <property>
 2         <name>fs.defaultFS</name>
 3         <value>hdfs://hadoopha</value>
 4     </property>
 5     <property>
 6         <name>hadoop.tmp.dir</name>
 7         <value>/bigdata/hadoop/tmp</value>
 8     </property>
 9     <property>
10         <name>ha.zookeeper.quorum</name>
11         <value>bigdata2:2181,bigdata3:2181,bigdata4:2181,bigdata5:2181,bigdata6:2181</value>
12     </property>

  3、编辑hdfs-site.xml ,添加如下代码:

 1     <property>
 2         <name>dfs.replication</name>
 3         <value>2</value>
 4     </property>
 5     <property>
 6         <name>dfs.nameservices</name>
 7         <!--这里和core-site中配置保持一致-->
 8         <value>hadoopha</value>
 9     </property>
10
11     <property>
12         <name>dfs.ha.namenodes.hadoopha</name>
13         <value>bigdata1,bigdata2</value>
14     </property>
15     <property>
16         <name>dfs.namenode.rpc-address.hadoopha.bigdata1</name>
17         <value>bigdata1:8020</value>
18     </property>
19     <property>
20         <name>dfs.namenode.http-address.hadoopha.bigdata1</name>
21         <value>bigdata1:50070</value>
22     </property>
23     <property>
24         <name>dfs.namenode.rpc-address.hadoopha.bigdata2</name>
25         <value>bigdata2:8020</value>
26     </property>
27     <property>
28         <name>dfs.namenode.http-address.hadoopha.bigdata2</name>
29         <value>bigdata2:50070</value>
30     </property>
31
32     <property>
33         <name>dfs.namenode.name.dir</name>
34         <value>file:///bigdata/hadoop/hdfs/name</value>
35     </property>
36     <property>
37         <name>dfs.datanode.data.dir</name>
38         <value>file:///bigdata/hadoop/hdfs/data</value>
39     </property>
40     <!-- 这个地方是为Hbase的专用配置,最小为4096,表示同时处理文件的上限,不配置会报错 -->
41     <property>
42         <name>dfs.datanode.max.xcievers</name>
43         <value>4096</value>
44     </property>
45
46     <!--提供journal的服务器列表,一般为奇数个,这里为3个-->
47     <property>
48         <name>dfs.namenode.shared.edits.dir</name>
49         <value>qjournal://bigdata3:8485;bigdata4:8485;bigdata5:8485/hadoopha</value>
50     </property>
51     <property>
52         <name>dfs.ha.automatic-failover.enabled</name>
53         <value>true</value>
54     </property>
55
56     <property>
57         <name>dfs.client.failover.proxy.provider.hadoopha</name>
58         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
59     </property>
60     <property>
61         <name>dfs.journalnode.edits.dir</name>
62         <value>/bigdata/hadoop/hdfs/journal</value>
63     </property>
64
65     <property>
66         <name>dfs.ha.fencing.methods</name>
67         <value>sshfence</value>
68     </property>
69     <property>
70         <name>dfs.ha.fencing.ssh.connect-timeout</name>
71         <value>5000</value>
72     </property>
73
74     <!--配置ssh密钥存放位置-->
75     <property>
76         <name>dfs.ha.fencing.ssh.private-key-files</name>
77         <value>/root/.ssh/id_dsa</value>
78     </property>

其中配置的注释说明要注意一下

  4、编辑mapred-site.xml,这个不用配置

  5、编辑yarn-site.xml,这个也不用配置

  6、编辑slaves,添加datanode节点

bigdata3
bigdata4bigdata5bigdata6

  这些都保存完毕,将/bigdata/下的hadoop目录整体发送至集群中其他主机,其他主机应该事先建立好bigdata目录

scp -r /bigdata/hadoop bigdata2:/bigdata
scp -r /bigdata/hadoop bigdata3:/bigdata
scp -r /bigdata/hadoop bigdata4:/bigdata
scp -r /bigdata/hadoop bigdata5:/bigdata
scp -r /bigdata/hadoop bigdata6:/bigdata

  然后在配置jouralnode的服务器上启动jouralnode服务,这里是bigdata3,4,5

sbin/hadoop-daemon.sh start jouralnode

  然后在bigdata1上格式化zookeeper节点:

bin/hdfs zkfc -formatZK

  在其中一台namenode上格式化文件系统并启动namenode,这里是bigdata1:

bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode

  在另外一台namenode,bigdata2上同步元数据:

bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode

  然后启动hdfs服务:

sbin/start-dfs.sh

  启动完成之后,执行 jps 命令,在主节点可以看到NameNode和DFSZKFailoverController进程;其他节点可以看到DataNode进程

  现在通过浏览器可以打开相应的管理界面,以bigdata1的IP访问:

  http://192.168.0.187:50070

  

  

  到这里hadoop hdfs就部署完成了,然后开始部署HBase,这里使用的版本为:hbase-0.98.18-hadoop2-bin.tar.gz

  和释放hadoop包一样将hbase释放到对应的目录并进入,这里是:/bigdata/hbase/hbase-0.98.18-hadoop2

  首先编辑配置文件: vim conf/hbase-env.sh

  去掉JAVA_HOME前面的注释,改为自己实际的JDK安装路径,和配置hadoop类似

  

  然后,去掉export HBASE_MANAGES_ZK=true前面的注释并改为export HBASE_MANAGES_ZK=false,配置不让HBase管理Zookeeper

  

  配置完这两项之后,保存退出

  编辑文件 vim conf/hbase-site.xml 在configuration标签之间加入如下配置:

    <!-- 指定HBase在HDFS上面创建的目录名hbase -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoopha/hbase</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>60000</value>
    </property>
    <!-- 开启集群运行方式 -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/bigdata/hbase/tmp</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>bigdata2,bigdata3,bigdata4,bigdata5,bigdata6</value>
    </property>

  分别将hadoop配置下的core-site.xml和hdfs-site.xml复制或者做软链接到hbase配置目录下:

cp /bigdata/hadoop/hadoop-2.6.0/etc/hadoop/core-site.xml conf/
cp /bigdata/hadoop/hadoop-2.6.0/etc/hadoop/hdfs-site.xml conf/

  执行 vim conf/regionservers 编辑运行regionserver存储服务的Hbase节点,就相当于hadoop slaves中的DataNode节点

  这里是bigdata2~bigdata5

  保存之后,配置完毕,将hbase发送至其他数据节点:

scp -r /bigdata/hbase/ bigdata2:/bigdata/
scp -r /bigdata/hbase/ bigdata3:/bigdata/
scp -r /bigdata/hbase/ bigdata4:/bigdata/
scp -r /bigdata/hbase/ bigdata5:/bigdata/
scp -r /bigdata/hbase/ bigdata6:/bigdata/

  然后在bigdata1启动Hbase Master

bin/hbase-daemon.sh start master

  启动成功,在bigdata1会增加进程:HMaster

  然后在bigdata2启动regionserver进程,其余4台集群会跟随启动

bin/hbase-daemons.sh start regionserver

  在bigdata2到bigdata6会增加进程:HRegionServer

  到这里HBase就部署完毕,并且包含zookeeper集群高可用配置

  执行命令: /bigdata/hadoop/hadoop-2.6.0/bin/hdfs dfs -ls / 可以查看hbase是否在HDFS文件系统创建成功

  

  看到/hbase节点表示创建成功

  然后执行: bin/hbase shell 可以进入Hbase管理界面

  

  输入 status 查看状态

  

  返回状态,表示HBase可以正常使用

  输入 quit 可以退出管理,回到命令行

  访问浏览器http://ip:60010可以打开Hbase管理界面

时间: 2024-10-22 15:33:18

HBase集成Zookeeper集群部署的相关文章

dubbo学习之dubbo管理控制台装配及集成zookeeper集群部署(1)【转】

dubbo管理控制台开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能. 1.下载dubbo 地址:http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war 本人将tomcat安装在/opt/目录下,先删除tomcat/webapps下自带的ROOT文件夹,将下载的war包解压到webapps/ROOT,命令如下: [plain] 

zookeeper集群部署总结篇

前前后后各种问题不断终于实现集群部署,特做如下记录,因为zookeeper 和 kafka 都依赖于java 环境,因此需要装jdk. 通过ftp 上传   apache-zookeeper-3.5.6-bin.tar.gz   jdk-8u241-linux-x64.tar.gz  kafka_2.13-2.4.0.tgz  jdk 环境配置 1.mv jdk-8u162-linux-x64.tar.gz /usr/local 2.tar -zxvf jdk-8u162-linux-x64.t

Hadoop及Zookeeper+HBase完全分布式集群部署

Hadoop及HBase集群部署 一. 集群环境 系统版本 虚拟机:内存 16G CPU 双核心 系统: CentOS-7 64位 系统下载地址: http://124.202.164.6/files/417500000AB646E7/mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso 软件版本 hadoop-2.8.1.tar.gz hbase-1.3.1-bin.tar.gz zookeeper-3.4.10.t

activemq+zookeeper 集群部署基于levedb

集群图 zookeeper集群,上一篇博客写了zookeeper集群的部署 Ip 服务注册端口 主机名 192.168.56.15 2181 zk01 192.168.56.16 2181 zk02 192.168.56.17 2181 zk03 activemq部署 IP 管控台端口 集群通讯端口 消息端口 192.168.56.15 8161 61621 51511 192.168.56.16 8162 61622 51512 192.168.56.17 8163 61623 51513 h

Zookeeper集群部署和使用

Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,Google Chubby的一个开源实现.它是一个分布式应用程序协调服务,提供的功能包括:配置管理,名字服务,提供分布式同步.队列管理.集群管理等. 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper 就将负责通知已经在 Zookeeper 上注册的那些观察者做出相应的反应,从而实现集群中

zookeeper集群部署问题排查

今天在三台虚拟机搭建zookeeper集群,一直连不通,然后进行了几个小时的斗争,做个记录. 具体部署方式网上有很多, 不在赘述.产生连接不同的问题主要有以下几个方面: 1.仔细检查配置文件. 是否有错误配置,不该有空格的地方是否出现空格这一类的错误 dataDir是否正确,myid文件是否设置正确等 2.防火墙问题: 搭建集群是需要关闭防火墙的.因为为没有这个问题,所以也不知道日志是怎么样的,不过日志应该是存在"route"一类的词汇的. 解决办法:关闭防火墙 3.域名和IP映射问题

zookeeper集群部署

选取172.16.110.17.172.16.110.137.172.16.110.138来部署zookeeper df -lh查看磁盘空间都够用 zookeeper源码下载(由于17上已部zookeeper,所以拷过去就行) 安装在/opt目录下 tar -xvf zookeeper-3.4.6.tar 修改配置文件vi /opt/zookeeper-3.4.6/conf/zoo.cfg 加入 server.1=172.16.110.17:2888:3888server.2=172.16.11

Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集群中去.这个才是我们最终的目标.众所周知,k8s 是目前最火的容器编排项目,很多公司都使用它来构建和管理自己容器集群,可以用来做机器学习训练以及 DevOps 等一系列的事情. 在这里,我们聚焦 CI/CD,针对于 Spring Boot 项目,借助 Gitlab CI 完成流水线的任务配置,最终部

dubbo开发前戏--ZooKeeper集群部署(3.4.6)

最近在开发dubbo服务的时候一直用的是公司提供的zk平台,因为使用的人太多或者没人维护老是出问题,导致dubbo服务偶尔可以调通,偶尔调不通的情况,所以花点时间自己部署一套,后面出问题还方便看日志排查. 1 下载包上传linux服务器 zookeeper-3.4.6.tar.gz 2 解压tar -zxvf zookeeper-3.4.6.tar.gz 3 进入zookeeper-3.4.6/conf目录 4 拷贝一份zoo_sample.cfg重命名为zoo.cfg (如果你用过lts这个轻