阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

hadoop 2.7.1 高可用安装部署

154次阅读
没有评论

共计 15183 个字符,预计需要花费 38 分钟才能阅读完成。

Hadoop 集群规划
 
目标:创建 2 个 NameNode,做高可用,一个 NameNode 挂掉,另一个能够启动;一个运行 Yarn,3 台 DataNode,3 台 Zookeeper 集群,做高可用。
在 hadoop2 中通常由两个 NameNode 组成,一个处于 active 状态,另一个处于 standby 状态。Active NameNode 对外提供服务,而 Standby NameNode 则不对外提供服务,仅同步 active namenode 的状态,以便能够在它失败时快速进行切换。
这里还配置了一个 zookeeper 集群,用于 ZKFC(DFSZKFailoverController)故障转移,当 Active NameNode 挂掉了,会自动切换 Standby NameNode 为 standby 状态
安装我都把 hadoop 和 Zookeeper 放到了 /soft/ 下面;

 

hadoop 2.7.1 高可用安装部署
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

 
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
 

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

0、系统环境安装

操作系统 CentOS6.5,64 位操作系统,采用最小化安装,为了能够实现目标,采用 VMware 虚拟机来搭建 6 台服务器,所以建议服务器至少有 8G 内存;vmware 使用的是 VMware® Workstation 11.0.0 build-2305329;
网络配置如下:
hadoop 2.7.1 高可用安装部署
 
hadoop 2.7.1 高可用安装部署
hadoop 2.7.1 高可用安装部署
hadoop 2.7.1 高可用安装部署
 
虚拟机配置如下:
 
hadoop 2.7.1 高可用安装部署
 

1、同步机器时间

  1. yum install -y ntp # 安装时间服务
  2. ntpdate us.pool.ntp.org # 同步时间
2、设置主机 IP
  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  1. DEVICE=eth0
  2. IPADDR=192.168.8.101
  3. NETMASK=255.255.255.0
  4. GATEWAY=192.168.8.2
  5. HWADDR=00:0C:29:56:63:A1
  6. TYPE=Ethernet
  7. UUID=ecb7f947-8a93-488c-a118-ffb011421cac
  8. ONBOOT=yes
  9. NM_CONTROLLED=yes
  10. BOOTPROTO=none
然后重启网络服务
  1. service network restart
查看 ip 配置
  1. ifconfig eth0
  1. eth0 Link encap:EthernetHWaddr00:0C:29:6C:20:2B
  2. inet addr:192.168.8.101Bcast:192.168.8.255Mask:255.255.255.0
  3. inet6 addr: fe80::20c:29ff:fe6c:202b/64Scope:Link
  4. UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  5. RX packets:777 errors:0 dropped:0 overruns:0 frame:0
  6. TX packets:316 errors:0 dropped:0 overruns:0 carrier:0
  7. collisions:0 txqueuelen:1000
  8. RX bytes:70611(68.9KiB) TX bytes:49955(48.7KiB)
这就说明我们配置的 IP 地址是成功的
 
注意:
使用 vmware 克隆了 5 台虚拟机,配置网卡的时候出现报错:”Bring up interface eth0:Device eth0 does not seem to be present,delaying initialization”
解决步骤:
第一步 删除文件 70-persistent-net.rules
  1. rm -f /etc/udev/rules.d/70-persistent-net.rule
第二步 修改 ifcfg-eth0
  1. vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除或者注释 MAC 地址的配置
第三步:重启服务器
  1. reboot
这样就可以设置新的 ip 地址了

3、设置主机名

把一台主机的名称改为:hadoop01
  1. vi /etc/sysconfig/network
修改 hostname 就可以了:
  1. NETWORKING=yes
  2. HOSTNAME=hadoop01
  3. NETWORKING_IPV6=no
要修改 hosts
  1. vi /etc/hosts
  1. 127.0.0.1 localhost
  2. 192.168.8.101 hadoop01 192.168.8.102 hadoop02 192.168.8.103 hadoop03 192.168.8.104 hadoop04 192.168.8.105 hadoop05 192.168.8.106 hadoop06

关闭 ipv6

1、查看系统是否开启 ipv6

a)通过网卡属性查看

命令:ifconfig

注释:有“inet6 addr:。。。。。。。“的表示开启了 ipv6 功能

b)通过内核模块加载信息查看

命令:lsmod | grep ipv6 

2、ipv6 关闭方法

在 /etc/modprobe.d/dist.conf 结尾添加 

  1. alias net-pf-10 off
  2. alias ipv6 off 

可用 vi 等编辑器,也可以通过命令:

cat <<EOF>>/etc/modprobe.d/dist.conf

 alias net-pf-10 off

 alias ipv6 off

EOF 

关闭防火墙 

  1. chkconfig iptables stop
  2. chkconfig iptables off

改好后重启服务器:

  1. reboot
hadoop02-hadoop06 都需要设置

4、安装 JDK

将压缩包解压到指定目录,然后编辑环境变量
  1. vi /etc/proflie
在文件后面追加环境变量
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
  2. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
刷新
  1. source /etc/profile
可以用 java -version 测试安装是否正确

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-01/127701p2.htm

5、SSH 免密码登录

对于需要远程管理其它机器,一般使用远程桌面或者 telnet。linux 一般只能是 telnet。但是 telnet 的缺点是通信不加密,存在不安全因素,只适合内网访问。为
 
解决这个问题,推出了通信加密通信协议,即 SSH(Secure Shell)。使用非对称加密方式,传输内容使用 rsa 或者 dsa 加密,可以避免网络窃听。
 
Hadoop 的进程之间同信使用 ssh 方式,需要每次都要输入密码。为了实现自动化操作,需要配置 ssh 免密码登陆方式。
 
hadoop01\hadoop02 做为 NameNode,要访问到其他的节点,我们要在 hadoop01 可以访问到 hadoop01-hadoop06(记住 hadoop01 也需要免登陆自己),hadoop02 可以访问到 hadoop01,hadoop03 是 yarn 服务,要可以访问到 datanode,所以 hadoop03 要免登陆到 hadoop04-hadoop06;
首先要在 hadoop01 上生成 ssh 私钥和公钥
  1. cd /root/.ssh
  2. ssh-keygen -t rsa #4 个回车
上面的命令会在.ssh 目录生成一个私钥和一个公钥
  1. id_rsa id_rsa.pub
 
然后将 hadoop01 的公钥复制到 hadoop02-hadoop06,用以下命令执行
  1. ssh-copy-id -i hadoop01
  2. ssh-copy-id -i hadoop02
  3. ssh-copy-id -i hadoop03
  4. ssh-copy-id -i hadoop04
  5. ssh-copy-id -i hadoop05
  6. ssh-copy-id -i hadoop06
上面的命令一行一行执行,先输入 yes,再输入机器的密码就可以了;
 
现在我们来检验以一下 hadoop01 到 hadoop05 的免登陆
我们在 hadoop01 中无密码登录 hadoop05 输入:
  1. [root@hadoop01 .ssh]# ssh hadoop05
  2. Last login:TueNov1017:43:412015 from 192.168.8.1
  3. [root@hadoop05 ~]#
可以看到已经可以从 hadoop01 到 hadoop05 免登陆了;输入 exit 退出
接下来设置 hadoop02 到 hadoop01 的免登陆
在 hadoop02 的 /root/.ssh 中执行
  1. ssh-keygen -t rsa #4 个回车
  1. ssh-copy-id -i hadoop01
 
 
如果出现以上信息就表示配置成功了。用 exit 退出;
那现在就很方便了,不用打开多个 ssh,用一个就全搞定了;也可以配置一个 hadoop 用户,我现在都是使用 root 用户。
同里也要配置 hadoop03 到 hadoop04-hadoop06 的免登陆,这里就不列出了。
 

6、安装 zookeeper

要将 zookeeper 集群部署到 hadoop04、hadoop05、hadoop06 上,先来设置 hadoop04,操作如下
解压 zookeeper 到指定目录
  1. tar -zxvf zookeeper-3.4.6.tar.gz -C /root/soft
切换到 zookeeper 目录的 conf 目录,修改 zoo.sample.cfg 为 zoo.cfg
  1. mv zoo.sample.cfg zoo.cfg
配置 zoo.cfg
  1. vi zoo.cfg
  1. [root@hadoop04 conf]# vi zoo.cfg
  2. # The number of milliseconds of each tick
  3. tickTime=2000
  4. # The number of ticks that the initial
  5. # synchronization phase can take
  6. initLimit=10
  7. # The number of ticks that can pass between
  8. # sending a request and getting an acknowledgement
  9. syncLimit=5
  10. # the directory where the snapshot is stored.
  11. # do not use /tmp for storage, /tmp here is just
  12. # example sakes.
  13. dataDir=/soft/zookeeper-3.4.6/data
  14. # the port at which the clients will connect
  15. clientPort=2181
  16. # the maximum number of client connections.
  17. # increase this if you need to handle more clients
  18. #maxClientCnxns=60
  19. #
  20. # Be sure to read the maintenance section of the
  21. # administrator guide before turning on autopurge.
  22. #
  23. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  24. #
  25. # The number of snapshots to retain in dataDir
  26. #autopurge.snapRetainCount=3
  27. # Purge task interval in hours
  28. # Set to "0" to disable auto purge feature
  29. #autopurge.purgeInterval=1
  30. server.1=192.168.8.104:2888:3888
  31. server.2=192.168.8.105:2888:3888
  32. server.3=192.168.8.106:2888:3888
 
保存 zoo.cfg
 
server.1=192.168.8.104:2888:3888
2888 是通信端口,3888 是 zookeeper 选举端口,这里用 ip 也可以,用主机名也可以。
注意配置文件中的 datadir
dataDir=/soft/zookeeper3.4.6/data
这个目录要真实存在才可以;
接下来要在/soft/zookeeper3.4.6/data 目录中增加一个文件 ”myid”
  1. vi myid
文件里面写入 1,然后保存,这表示是 server.1;
 
好了,这样就配置好了,将配置好的拷贝到 hadoop05、hadoop06,注意要修改 data 目录中 myid 的内容为响应的 2 和 3
 
启动 hadoop04、hadoop05、hadoop06 的 zookeeper 服务
zookeeper3.4. 6 目录执行以下命令
  1. bin/zkServer.sh start # 启动
  2. bin/zkServer.sh status # 查看状态
hadoop04 的结果:
  1. [root@hadoop04 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config:/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: leader
hadoop05 的结果:
  1. [root@hadoop05 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config:/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: follower
hadoop06 的结果:
  1. [root@hadoop06 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config:/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: follower
接下来测试以下 zookeeper 集群,在 hadoop04 上关闭 zookeeper
  1. bin/zkServer.sh stop
hadoop04 的结果:
  1. [root@hadoop04 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config:/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Error contacting service.It is probably not running.
  5. [root@hadoop04 zookeeper-3.4.6]#
hadoop05 的结果:
  1. [root@hadoop05 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config:/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: follower
hadoop06 的结果:
  1. [root@hadoop06 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config:/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: leader
从上面结果可以看出,zookeeper 集群是没有问题的,hadoop04 挂掉,hadoop06 就变成了 leader,这说明 zookeeper 集群已经部署好了。
 

7、hadoop 安装

现在 hadoop01 上面配置好,然后再拷贝到其他机器上;
先解压 hadoop-2.7.1.tar.gz 到 soft,查看 hadoop 目录文件如下:
  1. [root@hadoop01 hadoop-2.7.1]# ls
  2. bin etc include journal lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share
所有的配置文件都存放在 etc/hadoop/ 文件夹里面

7.1、添加 hadoop 目录到环境变量

在 /etc/profile 文件中增加 HADOOP_HOME,如下所示
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
  2. export HADOOP_HOME=/soft/hadoop-2.7.1
  3. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
应用环境变量
  1. source /etc/profile
可以用方法测试是否正确
  1. [root@hadoop01 hadoop-2.7.1]# which hadoop
  2. /soft/hadoop-2.7.1/bin/hadoop

7.2、配置 hadoop-env.sh

  1. vim hadoop-env.sh
修改一个地方就可以,找到 JAVA_HOME,改成第 4 章中 jdk 的路径就可以了
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
保存即可。
 

7.3、配置 core-site.xml

这一步是配置 nameservice,hadoop 文件存储位置和 Zookeeper 集群来确保多个 namenode 之间的切换,修改后内容如下:
  1. <configuration>
  2. <!-- 指定 hdfs 的 nameservice 为 ns1 -->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://ns1</value>
  6. </property>
  7. <!-- 指定 hadoop 临时目录 -->
  8. <property>
  9. <name>hadoop.tmp.dir</name>
  10. <value>/soft/hadoop-2.7.1/tmp</value>
  11. </property>
  12. <!-- 指定 zookeeper 地址 -->
  13. <property>
  14. <name>ha.zookeeper.quorum</name>
  15. <value>hadoop04:2181,hadoop05:2181,hadoop06:2181</value>
  16. </property>
  17. </configuration>
 

7.4、配置 hdfs-site.xml

hdfs-site.xml 主要配置 namenode 的高可用;
内容如下:
  1. <configuration>
  2. <!-- 指定 hdfs 的 nameservice 为 ns1,需要和 core-site.xml 中的保持一致 -->
  3. <property>
  4. <name>dfs.nameservices</name>
  5. <value>ns1</value>
  6. </property>
  7. <!-- ns1 下面有两个 NameNode,分别是 nn1,nn2 -->
  8. <property>
  9. <name>dfs.ha.namenodes.ns1</name>
  10. <value>nn1,nn2</value>
  11. </property>
  12. <!-- nn1 的 RPC 通信地址 -->
  13. <property>
  14. <name>dfs.namenode.rpc-address.ns1.nn1</name>
  15. <value>hadoop01:9000</value>
  16. </property>
  17. <!-- nn1 的 http 通信地址 -->
  18. <property>
  19. <name>dfs.namenode.http-address.ns1.nn1</name>
  20. <value>hadoop01:50070</value>
  21. </property>
  22. <!-- nn2 的 RPC 通信地址 -->
  23. <property>
  24. <name>dfs.namenode.rpc-address.ns1.nn2</name>
  25. <value>hadoop02:9000</value>
  26. </property>
  27. <!-- nn2 的 http 通信地址 -->
  28. <property>
  29. <name>dfs.namenode.http-address.ns1.nn2</name>
  30. <value>hadoop02:50070</value>
  31. </property>
  32. <!-- 指定 NameNode 的元数据在 JournalNode 上的存放位置 -->
  33. <property>
  34. <name>dfs.namenode.shared.edits.dir</name>
  35. <value>qjournal://hadoop04:8485;hadoop05:8485;hadoop06:8485/ns1</value>
  36. </property>
  37. <!-- 指定 JournalNode 在本地磁盘存放数据的位置 -->
  38. <property>
  39. <name>dfs.journalnode.edits.dir</name>
  40. <value>/soft/hadoop-2.7.1/journal</value>
  41. </property>
  42. <!-- 开启 NameNode 失败自动切换 -->
  43. <property>
  44. <name>dfs.ha.automatic-failover.enabled</name>
  45. <value>true</value>
  46. </property>
  47. <!-- 配置失败自动切换实现方式 -->
  48. <property>
  49. <name>dfs.client.failover.proxy.provider.ns1</name>
  50. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  51. </property>
  52. <!-- 配置隔离机制 -->
  53. <property>
  54. <name>dfs.ha.fencing.methods</name>
  55. <value>sshfence</value>
  56. </property>
  57. <!-- 使用隔离机制时需要 ssh 免登陆 -->
  58. <property>
  59. <name>dfs.ha.fencing.ssh.private-key-files</name>
  60. <value>/root/.ssh/id_rsa</value>
  61. </property>
  62. </configuration>
保存即可。
 

7.4、配置 datanode 的配置文件 slaves

  1. vi slaves
修改 datanode 节点如下:
  1. hadoop04
  2. hadoop05
  3. hadoop06
保存即可。
 

7.5、配置 mapreduce 文件 mapred-site.xml

默认是没有 mapred-site.xml 文件的,里面有一个 mapred-site.xml.example, 重命名为 mapred-site.xml
  1. mv mapred-site.xml.example mapred-site.xml
配置内容如下,这里就是指明 mapreduce 是用在 YARN 之上来执行的。
  1. <configuration>
  2. <!-- 指定 mr 框架为 yarn 方式 -->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. </configuration>

7.6、配置 yarn-site.xml

做规划的时候就是配置 hadoop03 来运行 yarn,配置如下:
  1. <configuration>
  2.         <!-- 指定 resourcemanager 地址 -->
  3. <property>
  4. <name>yarn.resourcemanager.hostname</name>
  5. <value>hadoop03</value>
  6. </property>
  7. <!-- 指定 nodemanager 启动时加载 server 的方式为 shuffle server -->
  8. <property>
  9. <name>yarn.nodemanager.aux-services</name>
  10. <value>mapreduce_shuffle</value>
  11. </property>
  12. </configuration>
 
到目前为止就已经配置好 hadoop01 了,要将配置好的 hadoop 文件拷贝到 hadoop02-hadoop06 上,cd 到 soft 目录
  1. scp -r hadoop2.7.1 hadoop02:/soft/
  2. scp -r hadoop2.7.1 hadoop03:/soft/
  3. scp -r hadoop2.7.1 hadoop04:/soft/
  4. scp -r hadoop2.7.1 hadoop05:/soft/
  5. scp -r hadoop2.7.1 hadoop06:/soft/
 

7.7、启动 Zookeeper 服务

在 hadoop04、hadoop05、hadoop06 上启动 Zookeeper,下面以 hadoop04 为例
  1. [root@hadoop04 zookeeper-3.4.6]# bin/zkServer.sh start
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
确保这三台服务器上有一个 leader,两个 follower
 

7.8、在 hadoop01 上启动 journalnode

  1. [root@hadoop01 hadoop-2.7.1]# sbin/hadoop-daemons.sh start journalnode
在 7.4 中配置了 journalnode 的节点是 hadoop04、hadoop05、hadoop06,这三台机器上会出现JournalNode,以下是 hadoop04 上的进程
  1. [root@hadoop04 zookeeper-3.4.6]# jps
  2. 1532 JournalNode
  3. 1796 Jps
  4. 1470 QuorumPeerMain
 

7.9、在 hadoop01 上格式化 hadoop

  1. hadoop namenode -format
格式化后会在根据 7.3 中 core-site.xml 中的 hadoop.tmp.dir 配置生成个文件,在 hadoop01 中会出现一个 tmp 文件夹,/soft/hadoop-2.7.1/tmp,现在规划的是 hadoop01 和 hadoop02 是 NameNode,然后将 /soft/hadoop-2.7.1/tmp 拷贝到 hadoop02:/soft/hadoop-2.7.1/ 下,这样 hadoop02 就不用格式化了。
  1. scp -r tmp/ hadoop02:/soft/hadoop-2.7.1/
 

7.10、在 hadoop01 上格式化 ZK

  1. hdfs zkfc -formatZK

7.11、在 hadoop01 上 启动 HDFS

  1. sbin/start-dfs.sh

7.12   在 hadoop01 上启动 YARN

  1. sbin/start-yarn.sh
如果没有出错,hadoop 的高可用就配置完成了;
 

8、使用 hadoop 集群测试

在本机中配置 hosts 文件(不是 VMware 虚拟机)
文件路径:C:\Windows\System32\drivers\etc\hosts
内容如下:
  1. 192.168.8.101 hadoop01
  2. 192.168.8.102 hadoop02
  3. 192.168.8.103 hadoop03
  4. 192.168.8.104 hadoop04
  5. 192.168.8.105 hadoop05
  6. 192.168.8.106 hadoop06
在浏览器中输入:http://hadoop01:50070/,就可以看到如下界面
hadoop 2.7.1 高可用安装部署
 
 
 
 
查看 hadoop02:http://hadoop02:50070/
hadoop 2.7.1 高可用安装部署
 
上面可以看到 hadoop01 是处于 active 状态,hadoop02 是初一 standby,接下来测试以下 namenode 的高可用,当 hadoop01 挂掉时 hadoop02 是否能够自动切换;
在 hadoop01 中 kill 掉 NameNode 进程
  1. [root@hadoop01 hadoop-2.7.1]# jps
  2. 1614NameNode
  3. 2500Jps
  4. 1929DFSZKFailoverController
  5. [root@hadoop01 hadoop-2.7.1]# kill -91614
刷新 http://hadoop01:50070/,无法访问,
hadoop 2.7.1 高可用安装部署
刷新 http://hadoop02:50070/
hadoop 2.7.1 高可用安装部署
这是 hadoop02 已经处于 active 状态了,这说明我们的切换是没有问题的,现在已经完成了 hadoop 集群的高可用的搭建;

 本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127701.htm

Hadoop 集群规划
 
目标:创建 2 个 NameNode,做高可用,一个 NameNode 挂掉,另一个能够启动;一个运行 Yarn,3 台 DataNode,3 台 Zookeeper 集群,做高可用。
在 hadoop2 中通常由两个 NameNode 组成,一个处于 active 状态,另一个处于 standby 状态。Active NameNode 对外提供服务,而 Standby NameNode 则不对外提供服务,仅同步 active namenode 的状态,以便能够在它失败时快速进行切换。
这里还配置了一个 zookeeper 集群,用于 ZKFC(DFSZKFailoverController)故障转移,当 Active NameNode 挂掉了,会自动切换 Standby NameNode 为 standby 状态
安装我都把 hadoop 和 Zookeeper 放到了 /soft/ 下面;

 

hadoop 2.7.1 高可用安装部署
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

 
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
 

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

0、系统环境安装

操作系统 CentOS6.5,64 位操作系统,采用最小化安装,为了能够实现目标,采用 VMware 虚拟机来搭建 6 台服务器,所以建议服务器至少有 8G 内存;vmware 使用的是 VMware® Workstation 11.0.0 build-2305329;
网络配置如下:
hadoop 2.7.1 高可用安装部署
 
hadoop 2.7.1 高可用安装部署
hadoop 2.7.1 高可用安装部署
hadoop 2.7.1 高可用安装部署
 
虚拟机配置如下:
 
hadoop 2.7.1 高可用安装部署
 

1、同步机器时间

  1. yum install -y ntp # 安装时间服务
  2. ntpdate us.pool.ntp.org # 同步时间
2、设置主机 IP
  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  1. DEVICE=eth0
  2. IPADDR=192.168.8.101
  3. NETMASK=255.255.255.0
  4. GATEWAY=192.168.8.2
  5. HWADDR=00:0C:29:56:63:A1
  6. TYPE=Ethernet
  7. UUID=ecb7f947-8a93-488c-a118-ffb011421cac
  8. ONBOOT=yes
  9. NM_CONTROLLED=yes
  10. BOOTPROTO=none
然后重启网络服务
  1. service network restart
查看 ip 配置
  1. ifconfig eth0
  1. eth0 Link encap:EthernetHWaddr00:0C:29:6C:20:2B
  2. inet addr:192.168.8.101Bcast:192.168.8.255Mask:255.255.255.0
  3. inet6 addr: fe80::20c:29ff:fe6c:202b/64Scope:Link
  4. UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  5. RX packets:777 errors:0 dropped:0 overruns:0 frame:0
  6. TX packets:316 errors:0 dropped:0 overruns:0 carrier:0
  7. collisions:0 txqueuelen:1000
  8. RX bytes:70611(68.9KiB) TX bytes:49955(48.7KiB)
这就说明我们配置的 IP 地址是成功的
 
注意:
使用 vmware 克隆了 5 台虚拟机,配置网卡的时候出现报错:”Bring up interface eth0:Device eth0 does not seem to be present,delaying initialization”
解决步骤:
第一步 删除文件 70-persistent-net.rules
  1. rm -f /etc/udev/rules.d/70-persistent-net.rule
第二步 修改 ifcfg-eth0
  1. vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除或者注释 MAC 地址的配置
第三步:重启服务器
  1. reboot
这样就可以设置新的 ip 地址了

3、设置主机名

把一台主机的名称改为:hadoop01
  1. vi /etc/sysconfig/network
修改 hostname 就可以了:
  1. NETWORKING=yes
  2. HOSTNAME=hadoop01
  3. NETWORKING_IPV6=no
要修改 hosts
  1. vi /etc/hosts
  1. 127.0.0.1 localhost
  2. 192.168.8.101 hadoop01 192.168.8.102 hadoop02 192.168.8.103 hadoop03 192.168.8.104 hadoop04 192.168.8.105 hadoop05 192.168.8.106 hadoop06

关闭 ipv6

1、查看系统是否开启 ipv6

a)通过网卡属性查看

命令:ifconfig

注释:有“inet6 addr:。。。。。。。“的表示开启了 ipv6 功能

b)通过内核模块加载信息查看

命令:lsmod | grep ipv6 

2、ipv6 关闭方法

在 /etc/modprobe.d/dist.conf 结尾添加 

  1. alias net-pf-10 off
  2. alias ipv6 off 

可用 vi 等编辑器,也可以通过命令:

cat <<EOF>>/etc/modprobe.d/dist.conf

 alias net-pf-10 off

 alias ipv6 off

EOF 

关闭防火墙 

  1. chkconfig iptables stop
  2. chkconfig iptables off

改好后重启服务器:

  1. reboot
hadoop02-hadoop06 都需要设置

4、安装 JDK

将压缩包解压到指定目录,然后编辑环境变量
  1. vi /etc/proflie
在文件后面追加环境变量
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
  2. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
刷新
  1. source /etc/profile
可以用 java -version 测试安装是否正确

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-01/127701p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计15183字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中