Hadoop Zookeeper 搭建(一)

一、准备工作

VMWARE虚拟机 CentOS 7 系统

虚拟机1:master

虚拟机2:node1

虚拟机3:node2

  • 时间同步

    ntpdate ntp.aliyun.com
  • 调整时区

    cp  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
  • jdk1.8(以1.8为例,目前大多数企业都是使用1.8版本,最稳定)

    java -version
  • 修改主机名

    三台分别执行 vim /etc/hostname 并将内容指定为对应的主机名
  • 关闭防火墙:systemctl stop firewalld

    • 查看防火墙状态:systemctl status firewalld

    • 取消防火墙自启:systemctl disable firewalld

  • 静态IP配置

    • 直接使用图形化界面配置(不推荐)

    • 手动编辑配置文件进行配置

      1、编辑网络配置文件
      vim /etc/sysconfig/network-scripts/ifcfg-ens33

      TYPE=Ethernet
      BOOTPROTO=static
      HWADDR=00:0C:29:E2:B8:F2
      NAME=ens33
      DEVICE=ens33
      ONBOOT=yes
      IPADDR=192.168.190.100
      GATEWAY=192.168.190.2
      NETMASK=255.255.255.0
      DNS1=192.168.190.2
      DNS2=223.6.6.6

      需要修改:HWADDR(mac地址,centos7不需要手动指定mac地址)
      IPADDR(根据自己的网段,自定义IP地址)
      GATEWAY(根据自己的网段填写对应的网关地址)

      2、关闭NetworkManager,并取消开机自启
      systemctl stop NetworkManager
      systemctl disable NetworkManager

      3、重启网络服务
      systemctl restart network
  • 免密登录

    # 1、生成密钥
    ssh-keygen -t rsa
    注意:连敲三次生成方格形状的密钥,在当前状态下,配置免密钥登陆。
    # 2、配置免密登录(三台虚拟机都需要进行免密操作,不要怕麻烦!!)
    ssh-copy-id master
    ssh-copy-id node1
    ssh-copy-id node2
    # 3、测试免密登录
    ssh node1
    ssh node2
    ssh master
  • 配置好映射文件:/etc/hosts(三台虚拟机都需要配置)

    192.168.170.100 master
    192.168.170.101 node1
    192.168.170.102 node2
    注意:每个人的IP地址都是不一样的,查看自己的IP地址使用 ifconfig
    使用远程复制
    cd /etc
    scp -r hosts/ node1:`pwd`
    scp -r hosts/ node2:`pwd`

二、 Zookeeper 搭建

1、上传安装包到master并解压

    tar -xvf zookeeper-3.4.6.tar.gz
官网下载:
https://zookeeper.apache.org/

2、配置环境变量

vim /etc/profile

export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
保存退出,执行
source /etc/profile 配置node1和node2的环境变量
scp /etc/profile node1:/etc/
scp /etc/profile node2:/etc/ 在所有节点执行
source /etc/profile

3、修改配置文件

cd /usr/local/soft/zookeeper-3.4.6/(解压后的目录)
​ cd conf
zoo_sample.cfg(是一个模板文件,_sample后缀,不起任何效果,需要复制一份)
​ cp zoo_sample.cfg zoo.cfg
修改
dataDir=/usr/local/soft/zookeeper-3.4.6/data 文件最后位置增加
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888

4、同步到其它节点

	scp -r zookeeper-3.4.6 node1:`pwd`
scp -r zookeeper-3.4.6 node2:`pwd`

5、创建/usr/local/soft/zookeeper-3.4.6/data目录,所有节点都要创建

mkdir /usr/local/soft/zookeeper-3.4.6/data

在data目录下创建myid文件
vim myid
master,node1,node2分别加上0,1,2

6、启动zk, zkServer.sh start 三台都需要执行

zkServer.sh status 查看状态

当有一个leader的时候启动成功

连接zk zkCli.sh

zk  是一个目录结构 ,每个节点可以存数据,同时可以有子节点

zk shell

创建目录
create /test test
create /test/a 1
获取数据
get /test ls /test delete 只能删除没有子节点的节点
rmr /test 删除节点

重置zk 1、杀掉所有zk进程 kiil -9 pid

2、删除data目录下的version文件, 所有节点都要删除 rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2

2、启动zk zkServer.sh start

Hadoop -HA 高可用 搭建(二)

一、准备工作(做之前拍摄快照)

VMWARE虚拟机 CentOS 7 系统

虚拟机1:master

虚拟机2:node1

虚拟机3:node2

  • 时间同步

    ntpdate ntp.aliyun.com
  • 调整时区

    cp  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
  • jdk1.8(以1.8为例,目前大多数企业都是使用1.8版本,最稳定)

    java -version
  • 修改主机名

    三台分别执行 vim /etc/hostname 并将内容指定为对应的主机名
  • 关闭防火墙:systemctl stop firewalld

    • 查看防火墙状态:systemctl status firewalld

    • 取消防火墙自启:systemctl disable firewalld

  • 静态IP配置

    • 直接使用图形化界面配置(不推荐)

    • 手动编辑配置文件进行配置

      1、编辑网络配置文件
      vim /etc/sysconfig/network-scripts/ifcfg-ens33

      TYPE=Ethernet
      BOOTPROTO=static
      HWADDR=00:0C:29:E2:B8:F2
      NAME=ens33
      DEVICE=ens33
      ONBOOT=yes
      IPADDR=192.168.190.100
      GATEWAY=192.168.190.2
      NETMASK=255.255.255.0
      DNS1=192.168.190.2
      DNS2=223.6.6.6

      需要修改:HWADDR(mac地址,centos7不需要手动指定mac地址)
      IPADDR(根据自己的网段,自定义IP地址)
      GATEWAY(根据自己的网段填写对应的网关地址)

      2、关闭NetworkManager,并取消开机自启
      systemctl stop NetworkManager
      systemctl disable NetworkManager

      3、重启网络服务
      systemctl restart network
  • 免密登录

    # 1、生成密钥
    ssh-keygen -t rsa
    注意:连敲三次生成方格形状的密钥,在当前状态下,配置免密钥登陆。
    # 2、配置免密登录(三台虚拟机都需要进行免密操作,不要怕麻烦!!)
    ssh-copy-id master
    ssh-copy-id node1
    ssh-copy-id node2
    # 3、测试免密登录
    ssh node1
    ssh node2
    ssh master
  • 配置好映射文件:/etc/hosts(三台虚拟机都需要配置)

    192.168.170.100 master
    192.168.170.101 node1
    192.168.170.102 node2
    注意:每个人的IP地址都是不一样的,查看自己的IP地址使用 ifconfig
    使用远程复制
    cd /etc
    scp -r hosts/ node1:`pwd`
    scp -r hosts/ node2:`pwd`

二、 Zookeeper 搭建(一中有详细教程)

        ZK  NN  DN  RM  NM  JN  ZKFC
master 1 1 1 1 1
node1 1 1 1 1 1 1 1
node2 1 1 1 1

停止HDFS集群:stop-dfs.sh

1、修改hadoop配置文件

cd  /usr/local/soft/hadoop-2.7.6/etc/hadoop
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml

举例视图:

[root@master hadoop]# ll
总用量 156
-rw-r--r-- 1 20415 101 4436 4月 18 2018 capacity-scheduler.xml
-rw-r--r-- 1 20415 101 1335 4月 18 2018 configuration.xsl
-rw-r--r-- 1 20415 101 318 4月 18 2018 container-executor.cfg
-rw-r--r-- 1 20415 101 1100 5月 21 15:40 core-site.xml
-rw-r--r-- 1 20415 101 3670 4月 18 2018 hadoop-env.cmd
-rw-r--r-- 1 20415 101 4269 5月 21 17:38 hadoop-env.sh
-rw-r--r-- 1 20415 101 2598 4月 18 2018 hadoop-metrics2.properties
-rw-r--r-- 1 20415 101 2490 4月 18 2018 hadoop-metrics.properties
-rw-r--r-- 1 20415 101 9683 4月 18 2018 hadoop-policy.xml
-rw-r--r-- 1 20415 101 961 5月 21 15:43 hdfs-site.xml
-rw-r--r-- 1 20415 101 1449 4月 18 2018 httpfs-env.sh
-rw-r--r-- 1 20415 101 1657 4月 18 2018 httpfs-log4j.properties
-rw-r--r-- 1 20415 101 21 4月 18 2018 httpfs-signature.secret
-rw-r--r-- 1 20415 101 620 4月 18 2018 httpfs-site.xml
-rw-r--r-- 1 20415 101 3518 4月 18 2018 kms-acls.xml
-rw-r--r-- 1 20415 101 1527 4月 18 2018 kms-env.sh
-rw-r--r-- 1 20415 101 1631 4月 18 2018 kms-log4j.properties
-rw-r--r-- 1 20415 101 5540 4月 18 2018 kms-site.xml
-rw-r--r-- 1 20415 101 11801 4月 18 2018 log4j.properties
-rw-r--r-- 1 20415 101 951 4月 18 2018 mapred-env.cmd
-rw-r--r-- 1 20415 101 1383 4月 18 2018 mapred-env.sh
-rw-r--r-- 1 20415 101 4113 4月 18 2018 mapred-queues.xml.template
-rw-r--r-- 1 root root 1116 5月 21 15:44 mapred-site.xml
-rw-r--r-- 1 20415 101 758 4月 18 2018 mapred-site.xml.template
-rw-r--r-- 1 20415 101 12 5月 21 15:44 slaves
-rw-r--r-- 1 20415 101 2316 4月 18 2018 ssl-client.xml.example
-rw-r--r-- 1 20415 101 2697 4月 18 2018 ssl-server.xml.example
-rw-r--r-- 1 20415 101 2191 4月 18 2018 yarn-env.cmd
-rw-r--r-- 1 20415 101 4567 4月 18 2018 yarn-env.sh
-rw-r--r-- 1 20415 101 1185 5月 21 15:45 yarn-site.xml

修改配置文件

core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,node1:2181,node2:2181</value>
</property>
</configuration>

修改配置文件

hdfs-site.xml

<configuration>
<!-- 指定hdfs元数据存储的路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/data/namenode</value>
</property> <!-- 指定hdfs数据存储的路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/data/datanode</value>
</property> <!-- 数据备份的个数 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property> <!-- 关闭权限验证 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property> <!-- 开启WebHDFS功能(基于REST的接口服务) -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property> <!-- //////////////以下为HDFS HA的配置////////////// -->
<!-- 指定hdfs的nameservices名称为mycluster -->
<property>
<name>dfs.nameservices</name>
<value>cluster</value>
</property> <!-- 指定cluster的两个namenode的名称分别为nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.cluster</name>
<value>nn1,nn2</value>
</property> <!-- 配置nn1,nn2的rpc通信端口 -->
<property>
<name>dfs.namenode.rpc-address.cluster.nn1</name>
<value>master:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster.nn2</name>
<value>node1:8020</value>
</property> <!-- 配置nn1,nn2的http通信端口 -->
<property>
<name>dfs.namenode.http-address.cluster.nn1</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster.nn2</name>
<value>node1:50070</value>
</property> <!-- 指定namenode元数据存储在journalnode中的路径 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;node1:8485;node2:8485/cluster</value>
</property> <!-- 指定journalnode日志文件存储的路径 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/data/journal</value>
</property> <!-- 指定HDFS客户端连接active namenode的java类 -->
<property>
<name>dfs.client.failover.proxy.provider.cluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property> <!-- 配置隔离机制为ssh -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property> <!-- 指定秘钥的位置 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>: <!-- 开启自动故障转移 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>

yarn 高可用 修改配置文件

yarn-site.xml

<configuration>
<!-- 指定MapReduce计算框架使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <!-- 指定jobhistory server的rpc地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property> <!-- 指定jobhistory server的http地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property> <!-- 开启uber模式(针对小作业的优化) -->
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property> <!-- 配置启动uber模式的最大map数 -->
<property>
<name>mapreduce.job.ubertask.maxmaps</name>
<value>9</value>
</property> <!-- 配置启动uber模式的最大reduce数 -->
<property>
<name>mapreduce.job.ubertask.maxreduces</name>
<value>1</value>
</property>
</configuration>

修改配置文件

mapred-site.xml

<!-- 指定MapReduce计算框架使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <!-- 指定jobhistory server的rpc地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property> <!-- 指定jobhistory server的http地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property> <!-- 开启uber模式(针对小作业的优化) -->
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property> <!-- 配置启动uber模式的最大map数 -->
<property>
<name>mapreduce.job.ubertask.maxmaps</name>
<value>9</value>
</property> <!-- 配置启动uber模式的最大reduce数 -->
<property>
<name>mapreduce.job.ubertask.maxreduces</name>
<value>1</value>
</property>

5、删除hadoop数据存储目录下的文件 每个节点都需要删除(直接删除其他节点上的 /hadoop-2.7.6/ 文件夹)

注:原来的节点上没有Hadoop这个文件就不要删除了!!

其他节点上删除   node1   node2
rm -rf /usr/local/soft/hadoop-2.7.6/

同步到其它节点 (远程复制一份到其他两个节点上去)

cd /usr/local/soft/
scp -r hadoop-2.7.6/ node1:`pwd`
scp -r hadoop-2.7.6/ node2:`pwd`

三、启动进程 (按照一下顺序进行操作)

6、启动zookeeper 三台都需要启动 zkServer.sh start zkServer.sh status

7、启动JN 存储hdfs元数据 三台JN上执行 启动命令:

cd /usr/local/soft/hadoop-2.7.6/sbin/
hadoop-daemon.sh start journalnode

8、格式化 在一台NN上执行,这里选择master

hdfs namenode -format

启动当前的NN

hadoop-daemon.sh start namenode

9、执行同步 没有格式化的NN上执行 在另外一个namenode上面执行 这里选择node1

/usr/local/soft/hadoop-2.7.6/bin/
hdfs namenode -bootstrapStandby

10、格式化ZK 在master上面执行 !!一定要先 把zk集群正常 启动起来

/usr/local/soft/hadoop-2.7.6/bin/
hdfs zkfc -formatZK

11、启动hdfs集群,在master上执行

start-dfs.sh

最后在页面查看(以下显示,集群搭建成功)

http://master:50070/   或者     http://192.168.170.110:50070/ 
http://node1:50070/    或者     http://192.168.170.120:50070/ 

关闭

stop-all.sh
 

Hadoop-HA 搭建高可用集群Hadoop Zookeeper的更多相关文章

  1. Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.nginx 原理与优化参数配置 ​ ​ master-workers 的机制的好处 首先,对于每个 ...

  2. Hadoop部署方式-高可用集群部署(High Availability)

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的高可用集群是建立在完全分布式基础之上的,详情请参考:https://www.cnblogs.com/yinzhengjie/p/90651 ...

  3. CentOS 7下搭建高可用集群

    一 .安装集群软件 必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件. 二.配置防火墙1.禁止防火墙和selinux# ...

  4. ActiveMQ+ZooKeeper搭建高可用集群

    一.说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理.部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务. ActiveMQ的集群部署,基于zookeeper ...

  5. 用kubeadm 搭建 高可用集群问题记录和复盘整个过程 - 通过journalctl -u kubelet.service命令来查看kubelet服务的日志

    1.根据  https://github.com/cookeem/kubeadm-ha/blob/master/README_CN.md  去搭建ha集群,遇到几个问题: runtime networ ...

  6. keepalive + nginx 搭建高可用集群动态网站

    环境准备: 两台节点部署keepalived,并且设为互为主从,实现高可用. 两台从节点部署nginx以及相关组件,作为真实服务器实现动态网站上线. 一.MASTER(BACKUP)节点下载keepa ...

  7. 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群

    1. 部署keepalived - apiserver高可用(任选两个master节点) 1.1 安装keepalived # 在两个主节点上安装keepalived(一主一备) $ yum inst ...

  8. [图文][提供可行性脚本] CentOS 7 Fencing+Pacemaker三节点搭建高可用集群

    实验说明: 实验环境: 宿主机系统   :Fedora 28 WorkStation 虚拟机管理器 :Virt-Manager 1.5.1 虚拟机配置   :ha1  CentOS 7.2 1511 ...

  9. 使用kubeadm 搭建高可用集群 多master

    很快很简单 只要三分钟就能看完 三台服务器 k8s-vip  负载均衡器 k8s-master1 主节点一 k8s-master2 主节点一 官方文档 首先搭建负载均衡器 用的Haproxy yum ...

随机推荐

  1. SpringBoot 读取配置文件数据

  2. 面试官:Kafka是什么,它有什么特性与使用场景?

    哈喽!大家好,我是小奇,一位热爱分享的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 不知不觉进入了五月份了,天气越 ...

  3. 多线程05:unique_lock详解

    unique_lock详解 一.unique_lock取代lock_guard unique_lock是个类模板,实际应用中,一般lock_guard(推荐使用):lock_guard取代了mutex ...

  4. How to fetch data with React Hooks

    Where can I make API call with hooks in react? Async useEffect is pretty much unreadable How to fetc ...

  5. mysql 主从数据同步配置

    一主一从,单向同步 master 数据库的数据变更单向同步到 slave 数据库 互为主从,双向同步 master 数据库的数据变更同步到 slave 数据库,slave 数据库的数据边同步到 mas ...

  6. 《Unix 网络编程》13:守护进程和 inetd 超级服务器

    守护进程和 inetd 超级服务器 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

  7. Java添加条形码到PDF表格

    条码的应用已深入生活和工作的方方面面.在处理条码时,常需要和各种文档格式相结合.当需要在文档中插入.编辑或者删除条码时,可借助于一些专业的类库工具来实现.本文,以操作PDF文件为例,介绍如何在编辑表格 ...

  8. layui 数据表格 数据更新完成后数据刷新

    模拟点击分页确定刷新数据 $(".layui-laypage-btn")[0].click()

  9. 打通web的三维国产引擎!老子云AMRT,够牛!

    AMRT(Auto Mobile Reality Technology)指的是自动化移动现实技术,它是老子云3D模型自动轻量化引擎及轻量化模型格式.模型展示框架.API/SDK的统称.3D研发技术其中 ...

  10. javaweb_Http学习

    1. 什么是HTTP? HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上. 文本:html,字符串,~... 超文本:图片,音乐,视频,定位,地图..... 默认端口:80 ...