Hadoop HA部署


本人使用三台阿里云主机进行学习,分别用hadoop001,hadoop002,hadoop003表示

创建用户

首先在生产上,一般每一个组件会由不同的用户来部署,所以一上来首先是在三台机器上都创建hadoop用户:
useradd hadoop

配置hosts文件

需要在三台机器上都配置机器名和ip的映射关系
vi etc/hosts

配置三台机器SSH互相信任关系

配置了信任关系后,从一台机器跳到另一台不需要输入密码。

首先删除三台机器上hadoop用户家目录下的默认的.ssh目录,然后输入:
ssh-keygen 加上 三次回车
完成新的.ssh目录的生成,新的目录里面会有一个私钥文件和一个公钥文件。
再将hadoop002,hadoop003机器的公钥文件依次传给hadoop001,作为id_rsa2,id_rsa3
scp id_rsa.pub root@hadoop001:/home/hadoop/.ssh/id_rsa2
scp id_rsa.pub root@hadoop001:/home/hadoop/.ssh/id_rsa3
(这里有个坑:由于现在是用hadoop用户操作的,如果直接将文件拷贝给hadoop001机器,则是需要输入hadoop001 的 hadoop 用户的账号密码,而这时我们并没有配置hadoop用户的密码,所以这样做显然不对。所以需要在hadoop001前面加上root@)
再依次将这三个公钥文件输入到 authorized_keys
cat id_rsa.pub >> authorized_keys
cat id_rsa2 >> authorized_keys
cat id_rsa3 >> authorized_keys
之后再将hadoop001机器上的.ssh目录下的authorized_keys拷贝到另外两台机器的相同的位置上。
需要修改 authorized_keys 的权限 (因为是在hadoop用户,而不是root用户)
chmod 600 authorized_keys
这样就完成了多台机器的信任关系
可以用ssh hadoop001 date 试验一下

在第一次输入 ssh hadoop003 date,输入yes 来触发信任关系的连接并确认,输入yes之后,系统会在.ssh文件夹下的known_hosts文件下自动记录这种联系。如果密钥文件发生变更,需要手动在这个known_hosts文件夹下删除用户对应的记录。
但是注意,不要全部删掉,全部删掉的话生产上可能整个调度系统挂掉了,生产上的系统一般都是分布式的,不可能都部署在一台机器上,所以如果把known_hosts删除,就找不到与这台机器连接的别的机器,整个系统会断掉,shell脚本都会部署在远程机器,调动shell脚本的时候,远程机器也不会自动输入yes,所以有可能会闯祸

部署JDK

mkdir /usr/java/ 然后解压
JDK 最好部署在 /usr/java 中
部署JDK 之后,要修改JDK的用户和用户组:
chown -R root:root /usr/java/

停掉防火墙

service iptables status 查看防火墙情况

iptables -L 查看防火墙规则

iptables -F 清空

部署Zookeeper

  1. tar -xzvf zookeeper-3.4.6.tar.gz
  2. 建立软连接 ln -s /home/hadoop/app/zookeeper-3.4.6 /home/hadoop/app/zookeeper
  3. 配置 app/zookeeper/conf/zoo_sample.cfg
    cp zoo_sample.cfg zoo.cfg
    vi zoo.cfg:修改 datadir 数据存储的目录
    dataDir=/home/hadoop/app/zookeeper/data
    (原先默认放在tmp目录下,但是tmp目录一个月会删除一次数据)并在最后添加上映射关系(集群id对应机器号并加上通信端口号):
    server.1=hadoop001:2888:3888
    server.2=hadoop002:2888:3888
    server.3=hadoop003:2888:3888
  4. 并在hadoop001机器的zookeeper目录下创建data目录,并在data目录下touch一个新文件myid,echo 1 > myid (1后面需要有一个空格,要不然输入不进去)
  5. 把zoo.cfg 和 data目录 传给 hadoop002,hadoop003
    并修改 data 目录里的 myid
  6. 配置环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_45
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
  1. 启动Zookeeper
$ZOOKEEPER_HOME/bin/zkServer.sh start 
$ZOOKEEPER_HOME/bin/zkServer.sh status //查看是否启动
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值