Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤

目录
  • 一、环境说明
    • 2.1 安装JDK
    • 2.2 添加Hosts映射关系
    • 2.3 集群之间SSH无密码登陆
  • 三、Hadoop集群安装配置
    • 3.1 修改hadoop配置
    • 3.2 启动hadoop集群
  • 四、ZooKeeper集群安装配置
    • 4.1 修改配置文件zoo.cfg
    • 4.2 新建并编辑myid文件
    • 4.3 启动ZooKeeper集群
  • 五、HBase集群安装配置
    • 5.1 hbase-env.sh
    • 5.2 hbase-site.xml
    • 5.3 更改 regionservers
    • 5.4 分发并同步安装包
  • 六、启动集群
  • 参考:

一、环境说明

集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:

Hostname IP User Password
master 192.168.59.133 hadoop 123456
slave1 192.168.59.134 hadoop 123456
slave2 192.168.59.135 hadoop 123456

三个节点均使用CentOS 6.5系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构。

注: 可以通过编辑/etc/sysconfig/network文件来修改 hostname 。

##二、准备工作

2.1 安装JDK

在三台机器上配置JDK环境,下载 jdk-8u51-linux-x64.rpm 文件直接安装:

$ rpm -ivh jdk-8u51-linux-x64.rpm

修改配置文件 vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_51
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后重新加载配置文件使之生效:

$ source /etc/profile

2.2 添加Hosts映射关系

分别在三个节点上添加hosts映射关系:

$ vim /etc/hosts

添加的内容如下:

192.168.59.133 master
192.168.59.134 slave1
192.168.59.135 slave2

2.3 集群之间SSH无密码登陆

CentOS默认安装了ssh,如果没有你需要先安装ssh 。

集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。

2.3.1 设置master无密码自登陆

主要有三步:①生成公钥和私钥、②导入公钥到认证文件、③更改权限

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh && chmod 600 ~/.ssh/*

测试,第一次登录可能需要yes确认,之后就可以直接登录了:

$ ssh localhost
Last login: Sat Jul 18 22:57:44 2015 from localhost

对于 slave1 和 slave2,进行无密码自登陆设置,操作同上。

2.3.2 设置主机->从机的无密码登录

$ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave1 'cat - >> ~/.ssh/authorized_keys'
$ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave2 'cat - >> ~/.ssh/authorized_keys'

测试:

[hadoop@master ~]$ ssh hadoop@slave1
Last login: Sat Jul 18 23:25:41 2015 from master
[hadoop@master ~]$ ssh hadoop@slave2
Last login: Sat Jul 18 23:25:14 2015 from master

2.3.3 设置从机->主机的无密码登录

分别在slave1、slave2上执行:

$ cat ~/.ssh/id_rsa.pub | ssh hadoop@master 'cat - >> ~/.ssh/authorized_keys'

三、Hadoop集群安装配置

这里会将hadoop、hbase、zookeeper的安装包都解压到/home/hadoop/个人主文件夹下,并重命名为hadoop、hbase、zookeeper。

3.1 修改hadoop配置

配置文件都在~/hadoop/etc/目录下

3.1.1 core-site.xml

<configuration>
	<property>
		<name>fs.default.name</name>
		<value>hdfs://master:9000</value>
	</property>
</configuration>

3.1.2 hadoop-env.sh

添加JDK路径:

export JAVA_HOME=/usr/java/jdk1.8.0_51

3.1.3 hdfs-site.xml

<configuration>
	<property>
		<name>dfs.name.dir</name>
		<value>/home/hadoop/hadoop/name</value>
	</property>
	<property>
		<name>dfs.data.dir</name>
		<value>/home/hadoop/hadoop/data</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
</configuration>

3.1.4 mapred-site.xml

<configuration>
	<property>
		<name>mapred.job.tracker</name>
		<value>master:9001</value>
	</property>
</configuration>

3.1.5 修改masters文件

master

3.1.6 修改slaves文件

slave1
slave2

注意:三台机器上都进行相同的配置,都放在相同的路径下。

使用scp命令进行从本地到远程(或远程到本地)的文件拷贝操作:

scp -r /home/hadoop/hadoop     slave1:/home/hadoop
scp -r /home/hadoop/hadoop     slave2:/home/hadoop

3.2 启动hadoop集群

进入master的~/hadoop目录,执行以下操作:

$ bin/hadoop namenode -format

格式化namenode,第一次启动服务前执行的操作,以后不需要执行。

然后启动hadoop:

$ sbin/start-all.sh

通过jps命令能看到除jps外有5个进程:

$ jps
4866 NodeManager
4370 NameNode
4899 Jps
4648 SecondaryNameNode
4779 ResourceManager
4460 DataNode

四、ZooKeeper集群安装配置

解压zookeeper-3.3.2.tar.gz并重命名为zookeeper。

4.1 修改配置文件zoo.cfg

进入~/zookeeper/conf目录:

$ cp zoo_sample.cfg zoo.cfg

拷贝zoo_sample.cfg文件为zoo.cfg,并编辑如下:

dataDir=/home/hadoop/zookeeper/data
server.1=192.168.59.133:2888:3888
server.2=192.168.59.134:2888:3888
server.3=192.168.59.135:2888:3888

4.2 新建并编辑myid文件

在dataDir目录下新建myid文件,输入一个数字(master为1,slave1为2,slave2为3):

$ mkdir /home/hadoop/zookeeper/data
$ echo "1" > /home/hadoop/zookeeper/data/myid

同样使用scp命令进行远程复制,只不过要修改每个节点上myid文件中的数字。

4.3 启动ZooKeeper集群

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本:

$ ~/zookeeper/bin/zkServer.sh start

1.如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。

2.关闭防火墙。在hadoop集群环境(linux系统)中最好关闭防火墙,不然会出现很多问题,例如namenode找不到datanode等。如果不关闭防火墙,客户端使用API操作HDFS以及ZooKeeper,可能就会出现下面常见的两种异常:

  • 使用API操作HDFS时会出现异常:java.net.NoRouteToHostException: No route to host
  • 使用API操作ZK时会出现异常:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx

3.使用root权限登陆后,输入关闭防火墙命令:

$ /etc/init.d/iptables stop
$ service iptables stop

修改禁用selinux: /etc/selinux/config文件,设置"SELINUX=disabled"

五、HBase集群安装配置

解压hbase-1.0.1.1-bin.tar.gz并重命名为hbase。

5.1 hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_51
export HBASE_CLASSPATH=/home/hadoop/hadoop/etc/hadoop/
export HBASE_MANAGES_ZK=false

5.2 hbase-site.xml

<configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>hdfs://master:9000/hbase</value>
	</property>
	<property>
		<name>hbase.master</name>
		<value>master</value>
	</property>
	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.clientPort</name>
		<value>2181</value>
	</property>
	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>master,slave1,slave2</value>
	</property>
	<property>
		<name>zookeeper.session.timeout</name>
		<value>60000000</value>
	</property>
	<property>
		<name>dfs.support.append</name>
		<value>true</value>
	</property>
</configuration>

5.3 更改 regionservers

在 regionservers 文件中添加slave列表:

slave1
slave2

5.4 分发并同步安装包

将整个hbase安装目录都拷贝到所有slave服务器:

$ scp -r /home/hadoop/hbase  slave1:/home/hadoop
$ scp -r /home/hadoop/hbase  slave2:/home/hadoop

六、启动集群

1. 启动ZooKeeper

~/zookeeper/bin/zkServer.sh start

2. 启动hadoop

~/hadoop/sbin/start-all.sh

3. 启动hbase

~/hbase/bin/start-base.sh

4. 启动后,master上进程和slave进程列表

[hadoop@master ~]$ jps
6225 Jps
2897 SecondaryNameNode   # hadoop进程
2710 NameNode            # hadoop master进程
3035 ResourceManager     # hadoop进程
5471 HMaster             # hbase master进程
2543 QuorumPeerMain      # zookeeper进程
[hadoop@slave1 ~]$ jps
4689 Jps
2533 QuorumPeerMain       # zookeeper进程
2589 DataNode             # hadoop slave进程
4143 HRegionServer        # hbase slave进程

5. 进入hbase shell进行验证

[hadoop@master ~]$ hbase/bin/hbase shell
2015-07-20 00:42:11,725 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015
hbase(main):001:0> list
TABLE
0 row(s) in 1.6950 seconds
=> []
hbase(main):002:0> status
2 servers, 0 dead, 1.0000 average load
hbase(main):003:0>

参考:

[1] www.smalldeng.blog.51cto.com/1038075/1329290
[2] www.marysee.blog.51cto.com/1000292/629405

到此这篇关于Hadoop+HBase+ZooKeeper分布式集群环境搭建的文章就介绍到这了,更多相关Hadoop HBase ZooKeeper集群搭建内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Hadoop 中 HBase Shell命令的详解

    Hadoop 中 HBase Shell命令的详解 HBase包含可以与HBase进行通信的Shell. HBase使用Hadoop文件系统来存储数据.所有这些任务发生在HDFS.下面给出的是一些由 常用的HBase Shell命令. 数据操纵语言 命令 说明 命令表达式 create 创建一个表 create '表名称', '列名称1','列名称2','列名称N' put  添加记录 put '表名称', '行名称', '列名称:', '值' get  查看记录 get '表名称', '行名称

  • docker 搭建hadoop以及hbase集群详解

    要用docker搭建集群,首先需要构造集群所需的docker镜像.构建镜像的一种方式是,利用一个已有的镜像比如简单的linux系统,运行一个容器,在容器中手动的安装集群所需要的软件并进行配置,然后commit容器到新的镜像.另一种方式是,使用Dockerfile来自动化的构造镜像. 下面采用第二种. 1. 创建带ssh服务的ubuntu14.04系统镜像 使用ubuntu14系统来安装hadoop和hbase,由于hadoop集群机器之间通过ssh通信,所以需要在ubuntu14系统中安装ssh

  • 基于 ZooKeeper 搭建 Hadoop 高可用集群 的教程图解

    一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,故下面先进行讲解: 1.1 高可用整体架构 HDFS 高可用架构如下: 图片引用自: https://www.edureka.co/blog/how-to-set-up-hadoop-cluster-with-hdfs-hi

  • Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤

    目录 一.环境说明 2.1 安装JDK 2.2 添加Hosts映射关系 2.3 集群之间SSH无密码登陆 三.Hadoop集群安装配置 3.1 修改hadoop配置 3.2 启动hadoop集群 四.ZooKeeper集群安装配置 4.1 修改配置文件zoo.cfg 4.2 新建并编辑myid文件 4.3 启动ZooKeeper集群 五.HBase集群安装配置 5.1 hbase-env.sh 5.2 hbase-site.xml 5.3 更改 regionservers 5.4 分发并同步安装

  • Docker Consul概述以及集群环境搭建步骤(图文详解)

    目录 一.Docker consul概述 二.基于 nginx 与 consul 构建自动发现即高可用的 Docker 服务架构 一.Docker consul概述 容器服务更新与发现:先发现再更新,发现的是后端节点上容器的变化(registrator),更新的是nginx配置文件(agent) registrator:是consul安插在docker容器里的眼线,用于监听监控节点上容器的变化(增加或减少,或者宕机),一旦有变化会把这些信息告诉并注册在consul server端(使用回调和协程

  • Python搭建Spark分布式集群环境

    前言 Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象.Spark 最大的特点就是快,可比 Hadoop MapReduce 的处理速度快 100 倍.本文没有使用一台电脑上构建多个虚拟机的方法来模拟集群,而是使用三台电脑来搭建一个小型分布式集群环境安装. 本教程采用Spark2.0以上版本(比如Spark2.0.2.Spark2.1.0等)搭建集群,同样适用于搭建Spark1.6.2集群. 安装Hadoop并搭建好Hadoop集群环境 Spark分布式集群的安装

  • Zookeeper 单机环境和集群环境搭建

     一.单机环境搭建# 1.1 下载# 下载对应版本 Zookeeper,这里我下载的版本 3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 1.2 解压# # tar -zxvf zookeeper-3.4.14.tar.gz 1.3 配置环境变量# #

  • CentOS下RabbitMq高可用集群环境搭建教程

    CentOS下RabbitMq高可用集群环境搭建教程分享给大家. 准备工作 1.准备两台或多台安装有rabbitmq-server服务的服务器 我这里准备了两台,分别如下: 192.168.40.130 rabbitmq01 192.168.40.131 rabbitmq02 2.确保防火墙是关闭的3,官网参考资料 http://www.rabbitmq.com/clustering.html hosts映射 修改每台服务上的hosts文件(路径:/etc/hosts),设置成如下: 192.1

  • Docker+K8S 集群环境搭建及分布式应用部署

    1.安装docker yum install docker #启动服务 systemctl start docker.service systemctl enable docker.service #测试 docker version 2.安装etcd yum install etcd -y #启动etcd systemctl start etcd systemctl enable etcd #输入如下命令查看 etcd 健康状况 etcdctl -C http://localhost:2379

  • Linux下ZooKeeper分布式集群安装教程

    ZooKeeper 就是动物园管理员的意思,它是用来管理 Hadoop(大象).Hive(蜜蜂).pig(小猪)的管理员,Apache Hbase.Apache Solr.Dubbo 都用到了 ZooKeeper,其实就是一个集群管理工具,是集群的入口.ZooKeeper 是一个分布式的.开源的程序协调服务,是 Hadoop 项目下的一个子项目.ZooKeeper 主要应用场景包括集群管理(主从管理.负载均衡.高可用的管理).配置文件的集中管理.分布式锁.注册中心等.实际项目中,为了保证高可用,

  • Hadoop分布式集群的搭建的方法步骤

    1 安装说明 1.1 用到的软件 软件 版本 下载地址 linux Ubuntu Server 18.04.2 LTS https://ubuntu.com/download/server hadoop hadoop-2.7.1 http://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz java jdk-8u211-linux-x64 https://www.oracle.com/technetwo

  • docker搭建Zookeeper集群的方法步骤

    目录 0.前言 1.前提 2.开始搭建 解释 创建zoo.cfg 3.docker搭建 1.docker创建网络 2.启动第1个zk节点 3.启动第2个zk节点 4.启动第3个zk节点 4.访问节点 1.进入zk第一个节点的docker容器内部 2.使用zk的客户端进行访问 3.在zk中使用命令 0.前言 之前在学springcloud的时候,提到有些项目还是使用zookeeper作为注册中心. 因此决定掌握这个技能,但是本地为了测试而部署一套zookeeper集群还是比较麻烦的. 所以打算使用

  • 浅析Hadoop完全分布式集群搭建问题

    目录 一.Hadoop是什么 二.Hadoop组成 1.Hadoop1.x 2.Hadoop2.x 三.Hadoop集群搭建所需工具(链接如下,自行下载) 四.Hadoop集群配置前期准备 五.Hadoop运行环境搭建 六.Hadoop完全分布式集群环境正式搭建 1.编写集群分发脚本xsync 2.集群配置 3.SSH无密登录配置 4.群起集群 5.集群启动/停止方式总结 6.集群时间同步(必须root用户) 一.Hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架

随机推荐