hadoop 环境搭建

Hadoop 2、配置HDFS HA (高可用)

前提条件

先搭建 http://www.cnblogs.com/raphael5200/p/5152004.html 的环境,然后在其基础上进行修改

一、安装Zookeeper

由于环境有限,所以在仅有的4台虚拟机上完成多个操作;

a.在4台虚拟中选3台安装Zookeeper,我选 node5 node6 node7

b.在4台虚拟中选3台作为JournalNode的节点,我选node6  node7  node8

c..在4台虚拟中选2台作为NameNode ,我选node5(Active)   node8(Standby)

1.解压并移动

下载并解压zookper压缩包,将zookeeper复制到/usr/local/zookeeper目录下;

2.配置Zookeeper

$ cd /usr/local/zookeeper/
$ vim /conf/zoo.cfg
#写入
tickTime=2000
dataDir=/opt/zookeeper  #指定Zookeeper的Data目录
clientPort=2181
initLimit=5
syncLimit=2
# 3台节点
server.1=node5:2888:3888
server.2=node6:2888:3888
server.3=node7:2888:3888

3.配置zookeeper的环境变量

$ vim /root/.bash_profile
#写入
PATH=$PATH:/usr/local/zookeeper-3.4.6/bin

4.覆盖node6 和 node7的zookeeper配置文件和.bash_profile

5.创建myid

分别在node5 node6 node7的dataDir目录中创建一个myid的文件,文件内容分别为1,2,3(即server的id)

Node 5:
$ vim /opt/zookeeper/myid
#写入
1

Node 6:
$ vim /opt/zookeeper/myid
#写入
2

Node 7:
$ vim /opt/zookeeper/myid
#写入
3

6.启动zookeeper

$ cd /usr/local/zookeeper
$ bin/zkServer.sh start
# 显示:Starting zookeeper ... STARTED 表示启动成功

二、免密码登录

node5  node8 两台NameNode相互做免密码登录,在上一文中已经在node5上做了免密码登录,下面只在Node8上做node5的免密码登录:

Node8:
$ ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa
$ scp ~/.ssh/id_dsa.pub [email protected]:/opt
Node5:
$ cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys

完成以后,测试一下  node8 $: ssh node5

三、配置HDFS  高可用

1.配置HDFS配置文件

$ cd  /usr/local/hadoop-2.5.1/etc/hadoop
$ vi hdfs-site.xml
#写入
<configuration>
#配置NameService 名字随便起
 <property>
  <name>dfs.nameservices</name>
  <value>raphael</value>
 </property>
# 这里的最后一个名字就是上面的nameService   value是两台NameNode的节点
<property>
  <name>dfs.ha.namenodes.raphael</name>
  <value>node5,node8</value>
</property>
# node5和node8的rpc地址
<property>
  <name>dfs.namenode.rpc-address.raphael.node5</name>
  <value>node5:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.raphael.node8</name>
  <value>node8:8020</value>
</property>
# node5和node8的http地址
<property>
  <name>dfs.namenode.http-address.raphael.node5</name>
  <value>node5:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.raphael.node8</name>
  <value>node8:50070</value>
</property>
# 3台JournalNode地址,后台跟名字,但后面的名字不能与nameService相同
<property>
  <name>dfs.namenode.shared.edits.dir</name>
 <value>qjournal://node6:8485;node7:8485;node8:8485/raphael5200</value>
</property>
#配置客户端调用接口
<property>
  <name>dfs.client.failover.proxy.provider.raphael</name>
 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<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_dsa</value>
</property>
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.connect-timeout</name>
  <value>30000</value>
</property>
#配置journalnode目录
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/journalnode</value>
</property>
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
 </property>

$ vi core-site.xml
#这里的value就是NameService的名字
   <property>
        <name>fs.defaultFS</name>
        <value>hdfs://raphael</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop</value>
    </property>
#3台zookeeper节点
 <property>
   <name>ha.zookeeper.quorum</name>
   <value>node5:2181,node6:2181,node7:2181</value>
 </property>

a.删除node5 node6 node7 node8 etc/hadoop/masters文件(这里已经不需要standry了)

b.删除node5 node6 node7 node8 上的hadoop.tmp.dir  目录

$ rm -rf /opt/hadoop

c.将node5 配置好的文件,覆盖到node6 node7 node8

$ scp -r etc/hadoop/* [email protected]:/usr/local/hadoop/etc/hadoop
$ scp -r etc/hadoop/* [email protected]:/usr/local/hadoop/etc/hadoop
$ scp -r etc/hadoop/* [email protected]:/usr/local/hadoop/etc/hadoop

2.覆盖并启动

a.启动三台JournalNode node6 node7 node8

# 前提是要先把zookeeper启动起来
$ sbin/hadoop-daemon.sh start journalnode

b.在其中一个NameNode上格式化hadoop.tmp.dir 并初始化

Node5:$ bin/hdfs namenode -format

c.把格式化后的元数据拷备到另一台NameNode节点上

$ scp -r /opt/hadoop [email protected]:/opt/hadoop

d.启动NameNode

Node5:
$ sbin/hadoop-daemon.sh start namenode

Node8:
$ bin/hdfs namenode -bootstrapStandby
$ sbin/hadoop-daemon.sh start namenode

e.初始化zkfc

Node5:
$ bin/hdfs zkfc -formatZK

f.全面停止并全面启动

Node5:
$ bin/stop-dfs.sh
$ bin/start-dfs.sh

注:在启动JournalNode和其他项时,没有其他好的方法较验是否启动成功,只能查看日志文件,如果日志文件没有报错,则表示启动成功;

3.访问NameNode

访问两台NameNode node5和node8的50070端口,会显示一个端口是Active   另一个端口是Standby 如下图:

http://node5:50070   http://node8:50070

注:如果Node5突然挂掉了,那么node8备用的NameNode会自动的补上,替换为Active,测试方法:Kill node5 的nameNode进程,然后再刷新Node8:

$ jps #ps是显示当前系统进程 ,jps就是显示当前系统的java 进程
$ kill -9 进程ID  #杀掉进程

四、使用Yarn来调度HDFS

#先所有的Hadoop相关进程
$ stop-dfs.sh

1.配置yarn-site.xml

$ cd /usr/local/hadoop/
$ vim etc/hadoop/yarn-site.xml
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
# 该cluster-id不能与nameService相同
 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>raphael521</value>
 </property>
#指定2台Resource Manager (即Name Node )节点
 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node5</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node8</value>
 </property>
#指定zookeeper 节点
 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>node6:2181,node7:2181,node8:2181</value>
 </property>

  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
 </configuration>

2.配置etc/hadoop/mapred-site.xml

$ vim etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

3.将mapred-site.xml yarn-site.xml 覆盖到其他的节点上

4.启动 yarn

#单独启动yarn使用命令: $ sbin/start-yarn.sh
 $ sbin/stop-yarn.sh#启动所有Hadoop相关进程使用命令$ start-all.sh#启动完成以后,另一台NameNode需要手动启动yarn$ start-yarn.sh

5.访问 

访问yarn的端口 http://node5:8088  http://node8:8088  可以看到:

说明:当访问Node5的时候能够正常的显示界面,并且在Nodes下还能加载出集群的所有节点,但是访问node8的时候,则不会显示,而是提示页面将跳到Active的Resource Manager (RM)节点上,然后页面就跳了;

当node5突然挂掉了,zookeeper会立刻将RM切换到node8上,将node8做为Active的RM,然后在Nodes下会在几十秒内加载出所有节点;

时间: 2024-08-07 05:51:15

hadoop 环境搭建的相关文章

完全分布式模式的Hadoop环境搭建

一.本文说明:本次测试在五台虚拟机系统上进行完全分布式搭建.Hadoop分布式模式是在多台机器上分布式部署,配置非常类似于伪分布式,名称节点和数据节点都分布在不同的主机上,每台数据节点上都有相应的任务调度. 二.环境说明:       虚拟软件:VM10.0       操作系统:Cent Os 6.7       hadoop版本:hadoop-2.7.2       JDK版本:jdk1.8_77备注:基于独立模式基础上搭建,参考文章:独立模式的Hadoop环境搭建. 三.基本环境配置   

伪分布式模式的Hadoop环境搭建

一.本文说明:     本次测试在一台虚拟机系统上进行伪分布式搭建.Hadoop伪分布式模式是在单机上模拟Hadoop分布式,单机上的分布式并不是真正的伪分布式,而是使 用线程模拟分布式.Hadoop本身是无法区分伪分布式和分布式的,两种配置也很相似.唯一不同的地方是伪分布式是在单机器上配置,数据节点和名字节点均 是一个机器. 二.环境说明:      操作系统:Cent Os 6.7      hadoop版本:hadoop-2.7.2      JDK版本:jdk1.8_77     备注:

hadoop环境搭建之关于NAT模式静态IP的设置 ---VMware12+CentOs7

很久没有更新了,主要是没有时间,今天挤出时间验证了一下,果然还是有些问题的,不过已经解决了,就发上来吧. PS:小豆腐看仔细了哦~ 关于hadoop环境搭建,从单机模式,到伪分布式,再到完全分布式,我们这里就讨论完全分布式,关于搭建工具,有hadoop+CentOs+VMware,感觉各个版本还是有一点差异的. 随后可能会整理出一个常用版本,今天先说说VM的静态IP的设置吧: 关于VM,大家可能不陌生,目前也是windows系统搭建模拟hadoop环境的必要软件之一. 但是,由于有些人会经常改变

Nutch+hadoop环境搭建

以前搭建环境或是配置软件从来都没有留Tips的习惯,但实践证明这是错误的--做过不等于记得怎么做,遇到过的错误也不等于今后就不是错误了.Nutch跟Hadoop的搭建困扰了我很久,但回头看看又觉得真正有些问题的其实就几个关键点,所以觉得花些时间写个简单流程,缅怀一下最近的探索,也希望能给想要搭建Nutch或hadoop的同学提供一些帮助.欢迎大家指正. 想要说明一下的是,虽然说hadoop诞生于nutch,但现在hadoop已经完全独立为一个分布式框架,我们可以简 单地理解为nutch只是跑在h

Hadoop HA + HBase环境搭建(一)————zookeeper和hadoop环境搭建

版本信息: Hadoop 2.6.3 HBase 1.0.3 JDK 1.8 Zookeeper 3.4.9 集群信息: RDFMaster 192.168.0.41 (Hadoop主节点,zk节点,HBase主节点) RDFSlave01 192.168.0.42 (Hadoop备份主节点,从节点,zk节点,HBase的RegionServer) RDFSlave02 192.168.0.43 (从节点,zk节点,HBase的RegionServer) RDFSlave03 192.168.0

分享一些Hadoop环境搭建所用到的软件

本来想用土的掉渣的语言说说hadoop配置的,因为最近总有人问我,环境搭建老出莫名其妙的问题,可是写到一半,还是决定不写了,网上教程好多好多,而大家遇到问题有很多是软件版本不对应造成的,因此我就把大家需要用到的软件给共享一下算了,不用到处去找了.不谢,请叫我活雷锋. 1.虚拟机VMWare10,用这个版本吧,我用过其他几个版本,有的时候会出错. 下载地址:http://yunpan.cn/csmATAd8zQz5W  提取码 cf10 2.CentOS6.5系统 下载地址:http://yunp

hadoop环境搭建与测试

搭建参看: http://blog.csdn.net/w13770269691/article/details/16883663/ 查看集群状态: [[email protected] bin]# hdfs dfsadmin -report Configured Capacity: 36729053184 (34.21 GB) Present Capacity: 13322559491 (12.41 GB) DFS Remaining: 13322240000 (12.41 GB) DFS Us

独立模式的Hadoop环境搭建

对于Hadoop来说,最主要的是两个方面,一个是分布式文件系统HDFS,另一个是MapReduce计算模型,搭建Hadoop的运行环境主要分为三种:独立模式环境.伪分布式环境.完全分布式环境.    一.独立模式:也叫单机模式.这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统,没有守护进程,所有程序都运行在同一个JVM中,利于调试和测试,主要用于开发环境.    二.伪分布式:hadoop运行在单机上,但是模拟了一个小的集群,运行在不同的JVM中,用不同的Java

hadoop环境搭建与測试

搭建參看: http://blog.csdn.net/w13770269691/article/details/16883663/ 查看集群状态: [[email protected] bin]# hdfs dfsadmin -report Configured Capacity: 36729053184 (34.21 GB) Present Capacity: 13322559491 (12.41 GB) DFS Remaining: 13322240000 (12.41 GB) DFS Us

linux xshell jdk hadoop(环境搭建) 虚拟机 安装(大数据搭建环境)

[hadoop是2.6.5版本  xshell是6版本 jdk是1.8.0.131 虚拟机是CentOS-6.9-x86_64-bin-DVD1.iso vmware10] 1.创建虚拟机 第一步:在VMware中创建一台新的虚拟机.如图2.2所示. 图2.2 第二步:选择"自定义安装",然后单击"下一步"按钮,如图2.3所示.  图2.3 第三步:单击"下一步" 按钮,如图2.4所示.  图2.4 第四步:选择"稍后安装操作系统&qu