HADOOP 2.6.5 高可用部署(YUM 安装)

题外话

初次部署Hadoop HA的时候,踩过很多坑。现在将部署流程记录下来,希望可以帮助到更多的初学者。

HADOOP HA是什么

在HADOOP1.0时代,整个集群中仅有一台NameNode结点,如果该结点丢失或数据发生损坏,会对整个集群造成不可恢复的损失,为了解决这一问题,社区研发出了SecondaryNamenode用以备份NameNode中的元数据,然而使用该组建后,当集群发生损坏时,集群恢复工作的时间相当缓慢,并不能满足商业上的使用。
在HADOOP2.0时代,社群重新定义了NameNode的设计层级,改用Service来对集群进行管理。Hadoop HA使用多个NameNode组成一个服务,每一个服务中有两台或以上的NameNode,NameNode们的功能完全一致,但是同一时间仅有一台处于active状态,其他处于Standby状态,当active集群发生故障时,能在秒级时间内进行切换。


HADOOP HA正式部署

一、集群规划

IP 地址 Hadoop HDFS Yarn
192.168.20.100 Master1 NameNode ResourceManager JournalNode
192.168.20.101 Master2 NameNode ResourceManager Zookeeper JournalNode
192.168.20.102 Slave1 DataNode NodeManager Zookeeper JournalNode
192.168.20.103 Slave2 DataNode NodeManager Zookeeper JournalNode
192.168.20.104 Slave3 DataNode NodeManager Zookeeper JournalNode
192.168.20.105 Slave4 DataNode NodeManager Zookeeper

如果机器数量紧缺,可使用如下方法

  • 可以只用3个Zookeepr和JournalNode。
  • Slave可以和NameNode部署在同一结点 。
  • 但两台Namenode和Resourcemanager须分开。

二、基础配置

使用CentOS 7.2系统,HADOO P版本 2.6.5,Zookeeper版本 3.X

1.更改主机名
vim /etc/hostname
2.设置静态IP
 vim /etc/sysconfig/network-scripts/ifcfg-eth0 
3.编辑hosts文件

将其他结点的 hostname 以及 ip地址 按照格式写入hosts文件中

 vim /etc/hosts
如: 192.168.20.100 Master1
4.关闭防火墙或设置开放端口

为了方便搭建,直接关闭了防火墙,仅限于实验环境

systemctl status firewalld.service     查看防火墙状态    
systemctl stop firewalld.service      关闭防火墙    
systemctl disable firewalld.service    禁止开机启动防火墙 
5.关闭 SELINUX
 vim /etc/selinux/config 

修改文件中

SELINUX=disabled

三、安装JDK

1、 在集群所有机器上安装 Java 环境

yum install java

2、 设置环境变量

` vim /etc/profile.d/java.sh

增加

export JAVA_HOME=YOURJAVAPATH
export PATH=PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

四、SSH免密码登陆

  1. ssh-keygen -t rsa #生成密钥,一路回车
  2. 将每个节点的公钥发送到 master 节点,每个节点的id_rsa.pub分别导入 authorized_keys,语句为 cat id_rsa.pub >> authorized_keys
  3. 将统一的authorized_keys 发送到每一个节点的/home/.ssh路径下
  4. 修改配置文件 vi /etc/ssh/sshd_config


    RSAAuthentication yes
    PubkeyAuthentication yes

  5. 重启服务 service sshd restart

  6. 免密测试 ssh 其他主机名 or ip

五、zookeeper 集群安装

基于zookeepr选主算法,配置奇数台zookeeper最佳。
1. 在集群五台机器上安装 ZooKeeper(192.168.20.101~105)
yum install zookeeper
2. 修改配置文件
zookeeper/conf目录下的zoo_sample.cfg,将其改名为zoo.cfg
新增zookeepr集群ip
server.1=zkip:2888:3888
新增数据存储目录以及日志存储目录

mkdir -p /var/lib/zookeeper/data
mkdir -p /var/lib/zookeeper/logs

3. 创建myid文件
创建 myid 文件,并编辑它,编辑的内容就是配置文件中 server.后面跟着的号数
echo "1" > /var/lib/zookeeper/data/myid
4. 启动结点
/usr/lib/zookeeper/bin/zkServer.sh start
5. 检查运行状况
/usr/lib/zookeeper/bin/zkServer.sh status
在每个 slave 节点机器上运行此命令,会出现 Follower 和 Leader ### 六、HADOOP 集群安装
6. 在集群所有机器上安装
Hadoop yum install Hadoop
7. 在两台机器上安装 NameNode(192.168.20.100-101)
yum install Hadoop-hdfs-namenode
8. 在另外四台机器上安装 DataNode(192.168.20.102-105)
yum install Hadoop-hdfs-datanode
9. 在 集 群 所 有 机 器 上 安装 YARN
( NameNode-ResourceManager , DataNode-NodeManager)
yum install hadoop-yarn-resourcemanager(192.168.20.100-101)
yum install hadoop-yarn-nodemanager(192.168.20.102-105)
10. 在五台机器上安装 JournalNode 作为两个 NameNode 的共享存储空间
yum install hadoop-hdfs-journalnode (192.168.20.100~104)
11. 安装 HttpFs,可通过浏览器管理 HDFS
yum install hadoop-httpfs

### 七、配置文件
路径:/etc/hadoop/conf

1. hdfs-site.xml 手动创建目录,更改所有者和所属组
  • journalnode 存放数据目录(192.168.20.100~104)
    mkdir –p /journal/data chmod –R hdfs:hadoop journal
  • nanenode文件目录(192.168.20.100~101),更改文件目录所属组
mkdir –p /var/lib/hadoop-hdfs/cache/hdfs/dfs/name
chown –R hdfs:hadoop hdfs 
  • 具体配置文件
<configuration> 
<property> <!--datanode数据存储位置 -->
   <name>dfs.datanode.data.dir</name> 
   <value> 
      file:///mnt/volume_b/, 
      file:///mnt/volume_c/, 
      file:///mnt/volume_d/, 
      file:///mnt/volume_e/, 
      file:///mnt/volume_f/, 
      file:///mnt/volume_g/, 
      file:///mnt/volume_h/, 
      file:///mnt/volume_i/, 
      file:///mnt/volume_j/, 
      file:///mnt/volume_k/, 
      file:///mnt/volume_l/, 
      file:///mnt/volume_m/ 
   </value> 
</property> 
<property> 
<name>dfs.permissions.superusergroup</name> 
<value>root</value><!--设置拥有权限的用户--> 
</property> 
<property> 
<name>dfs.permissions</name><!--是否开启认证--> 
<value>false</value> 
</property> 
  <property> 
<!--namenode 的文件目录,手动创建,用户权限组为 hdfs:hadoop --> 
     <name>dfs.namenode.name.dir</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值