一、环境要求:

1、        虚拟机安装并设置网络;

2、        修改主机地址映射;

3、        必备软件:Jdk、Development Tools   Development Libraries gcc c++等已安装;

4、        修改windows主机C:\Windows\System32\drivers\etc\hosts

在hosts文件中添加虚拟机中的主机地址映射如下:

Ip地址             Linux主机名

5、         配置四台主机免密登录,两台namenode互相免密,namenode节点均免密登录至其他节点。

二、节点规划

 

NN

DN

ZK

ZKFC

JN

RM

NM

V1

Y

 

Y

Y

 

Y

 

V2

Y

Y

Y

Y

Y

 

Y

V3

 

Y

Y

 

Y

 

Y

V4

 

Y

 

 

Y

 

Y

三、配置步骤:

  1、每台Linux主机都要修改/etc/profile,添加Hadoop环境变量

  export HADOOP_HOME=/usr/software/hadoop-2.7.1

  export PATH=$PATH:$HADOOP_HOME/bin

修改之后,source /etc/profile          使系统变量生效

  2、配置HADOOP守护进程,这部分主要处理给出的配置文件中设置一些重要参数,配置好后,将文件拷贝至其他需要安装hadoop的主机。

  l  etc/hadoop/core-site.xml

  <configuration>

    <property>

     <name>fs.defaultFS</name>

      <value>hdfs://V1:9000</value>

    </property>

    <property>

    <name>ha.zookeeper.quorum</name>

       <value>V1:2181,V2:2181,V3:2181</value>

    </property>

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/opt/hadoop_data/tmp</value>

  (注释:要手动创建目录)

   </property>

     <property>

      <name>io.file.buffer.size</name>

    <value>131702</value>

   </property>

  </configuration>

  解释:

Fs.default,使用逻辑路径,避免双namenode切换带来路径不一致问题

Hadoop.tmp.dir,hadoop文件系统依赖的基础配置,许多路径均依赖它,若hdfs.site.xml中未配置namenode和datanode的存放位置,默认就存放在此配置路径。

ha.zookeeper.quorum,指定zookeeper服务所在主机及端口号

io.file.buffer.size,在序列化文件中使用的读/写缓冲区大小

  l  etc/hadoop/hdfs-site.xml

  <configuration>

  <property>

   <name>dfs.replication</name>

    <value>2</value>

  </property>

   <property>

     <name>dfs.namenode.name.dir</name>

   <value>/opt/hadoop_data/namenode</value>

  (注释:要手动创建目录)

  </property>

   <property>

    <name>dfs.datanode.data.dir</name>

  <value>/opt/hadoop_data/datanode</value>

  (注释:要手动创建目录)

  </property>

  <property>

   <name>dfs.nameservices</name>

   <value>dy</value>

  </property>

    <property>

   <name>dfs.ha.namenodes.dy</name>

    <value>V1,V2</value>

    </property>

   <property>

     <name>dfs.namenode.rpc-address.dy.V1</name>

    <value>V1:9000</value>

    </property>

  <property>

   <name>dfs.namenode.rpc-address.dy.V2</name>

    <value>V2:9000</value>

   </property>

  <property>

  <name>dfs.namenode.http-address.dy.V1</name>

   <value>V1:50070</value>

    </property>

  <property>

    <name>dfs.namenode.http-address.dy.V2</name>

    <value>V2:50070</value>

  </property>

   <property>

    <name>dfs.namenode.shared.edits.dir</name>

    <value>qjournal://V2:8485;V3:8485;V4:8485/dy</value>

  </property>

    <property>

     <name>dfs.client.failover.proxy.provider.dy</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_rsa</value>

   </property>

  <property>

   <name>dfs.journalnode.edits.dir</name>

    <value>/opt/hadoop_data/journal</value>

  </property>

  </configuration>

  解释:

dfs.replication是HDFS文件的副本数,不可超过datanode的个数

dfs.namenode.name.dor     namenode本地文件系统存放名字空间和传输日志的路径

dfs.datanode.data.dir          datanode的数据存放位置

dfs.nameservices         命名空间的逻辑名称,

dfs.ha.namenodes           命名空间中所有namenode的唯一标识名称,可以配置多个,使用逗号分割。该名称让datanode知道每个集群的所有namenode。

dfs.namenode.rpc-address.[nameservice ID].[namenode ID]        每个namenode监听的RPC地址

  dfs.namenode.http-address. [nameservice ID].[namenode ID]           每个namenode监听的http地址

  dfs.namenode.shared.edits.dir         是namenode读写journal node组的URI,通过这个URI,namenode可以读写edit log内容。URI的格式"qjournal://host1:port1;host2:port2;host3:port3/journalId”.

  dfs.client.failover.proxy.provider.[nameservice ID]             这里配置HDFS客户端连接到Active namenode的一个java类.

  dfs.ha.fencing.methods           配置active namenode出错时的处理类.当active namenode出错时,一般需要关闭该进程.处理方式可以是ssh也可以是shell.推荐使用ssh! 
  fs.journalnode.edits.dir           这是journalnode进程保持逻辑状态的路径.这是在linux服务器文件的绝对路径.

  l  etc/hadoop/yarn-site.xml

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>V1</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

解释:

yarn.resourcemanager.hostname        指的是运行ResourceManager机器所在的节点. 
yarn.nodemanager.aux-services   在hadoop2.2.0版本中mapreduce_shuffle,一定要看清楚.

etc/hadoop/mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

解释:

mapreduce.framework.name 指的是使用yarn运行mapreduce程序.

etc/hadoop/slaves

V2

V3

V4

解释:

指定hdfs中的datanode节点

etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_71

解释:

hadoop集群格式化以及启动时会到次目录下寻找环境变量,必须配置。

将相关配置文件拷贝至其他主机。

3、配置zookeeper,

解压zookeeper-3.4.6.tar.gz;

拷贝一份配置文件 cp zoo_sample.cfg

(1)在所有zookeeper节点中的zoo.cfg文件作如下配置:

l  zoo.cfg

修改dataDir=/opt/zookeeper(注释:要手动创建目录)

server.1=V1:2888:3888

server.2=V2:2888:3888

server.3=V3:2888:3888

在所有zookeeper节点的dataDir(此处为/opt/zookeeper)目录中创建一个myid的文件,文件内容分别为1,2,3

(2)配置/etc/profile,

export ZOOKEEPER_HOME=/usr/software/zookeeper-3.4.6

export PATH=$PATH:$ZOOKEEPER_HOME/bin

将以上配置拷贝至其他zookeeper主机

4、集群初始化操作

(1)启动三个zookeeper:./zkServer.sh start

(2)启动JournalNode集群:./hadoop-daemon.sh start journalnode

(3)在其中一个namenode上格式化:./hdfs namenode -format

(4)把刚刚格式化之后的元数据同步到另外一个namenode上

a)启动刚刚格式化的namenode---- hadoop-daemon.sh start namenode;

b)在没有格式化的namenode上执行:hdfs namenode –bootstrapStandby;

c)启动第二个namenode;

(5)在其中一个namenode上初始化zkfc:hdfs zkfc –formatZK

解释:

格式化ZooKeeper集群,目的是在ZooKeeper集群上建立HA的相应节点

(6)停止上面节点:stop-dfs.sh

(7)全面启动:start-all.sh

注:zookeeper相关进程仍然需要手动开启

史上最完整Hadoop2.x完全分布式安装部署-小白也能学会的更多相关文章

  1. 史上最完整promise源码手写实现

    史上最完整的promise源码实现,哈哈,之所以用这个标题,是因为开始用的标题<手写promise源码>不被收录 promise自我介绍 promise : "君子一诺千金,承诺 ...

  2. hadoop2.6完全分布式安装HBase1.1

    本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...

  3. Hbase-0.96.2全然分布式安装部署

    Hbase-0.96.2全然分布式安装部署 环境: Hadoop-2.2.0 Zookeeper-3.4.6 hbase-0.96.2 1.下载hbase-0.96.2-hadoop2-bin.tar ...

  4. Hadoop-2.7.2分布式安装手册

    目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.1. 机器列表 5 3.2. 主机名 5 3.2.1. 临时修改主机名 6 3.2.2. 永久修改主机名 6 3.3. 免密码登 ...

  5. Hadoop-2.4.0分布式安装手册

    目录 目录 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 临时修改主机名 3 2.2.2. 永久修改主机名 3 2.3. 免密码登录范围 4 3. 约 ...

  6. Hadoop-2.4.0分布式安装手冊

    文件夹 文件夹 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 暂时改动主机名 3 2.2.2. 永久改动主机名 3 2.3. 免password登录范 ...

  7. Hadoop2.2.0分布式安装配置详解[2/3]

    前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...

  8. Hadoop2.2.0分布式安装配置详解[1/3]

    前言 在寒假前的一段时间,开始调研Hadoop2.2.0搭建过程,当时苦于没有机器,只是在3台笔记本上,简单跑通一些数据.一转眼一两个月过去了,有些东西对已经忘了.现在实验室申请下来了,分了10台机器 ...

  9. Hadoop-2.8.0分布式安装手册

    目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.1. 机器列表 5 3.2. 主机名 5 3.2.1. 临时修改主机名 6 3.2.2. 永久修改主机名 6 3.3. 免密码登 ...

随机推荐

  1. AngularJs 4大核心

    放弃了IE8, 4大核心: MVC: 数据模型,视图层,业务逻辑和控制模式(控制器), 为何MVC不是设计模式呢?(23种设计模式里没有MVC,MVC模式的目的就是实现Web系统的职能分工,超越了设计 ...

  2. superslide2插件

    地址:http://www.superslide2.com/ 做自适应要注意该宽度和高度 等比缩放

  3. Android Gradle 指定 Module 打包

    Android Gradle 指定 Module 打包 项目中有许多的可以直接独立运行的 Module ,如何在 Gradle 中将签名文件配置好了,那么就不需要普通的手动点击 Generate Si ...

  4. 根据GPS经纬度判断当前所属的市区

    这个事情分两步走 1. 拿到行政区划的地理围栏数据 2. 根据GPS定位判断一个点是否落在地理围栏的多边形区域里. 1. 获取行政区划的地理围栏数据可以利用百度API.打开以前我的一个例子在chrom ...

  5. Fill-rate, Canvases and input 【译】

    翻译自https://unity3d.com/cn/learn/tutorials/topics/best-practices/fill-rate-canvases-and-input?playlis ...

  6. split()方法

    split()方法用于把一个字符串分隔成字符串数组. 它有两个参数: separator:从参数指定的地方分隔字符串,必需: howmany:该参数可指定返回的数组的最大长度.如果设置了该参数,返回的 ...

  7. phpcms笔记

    一.建立虚拟站点 1.先更改www目录下的站点名称,再找到apache, 打开"Apache2\conf\extra"下的"httpd-vhosts.conf" ...

  8. HTML+CSS--position大法好

    其实在HTML和CSS的学习中,css的position属性应该是难点之一,难在你需要静下心来仔细搞清楚它的每一个值的意义.效果和用法.但是它的功能很强大,效果也是很令人惊艳的,因为你可以用它去实现一 ...

  9. 从点击到呈现 — 详解一次HTTP请求

    一般来说,很多的参考资料上面都会说,http 是一个基于请求/响应的工作模式,然后画出一张浏览器和服务器的 b/s 结构图,再画上两个箭头,表示请求和响应,应该说这么解释是易懂的,一般也是够清楚的,但 ...

  10. VR全景:互联网与实体店的完美结合

     VR元年已过,VR项目.VR创业潮转为理性,VR行业分为两个方向:硬件和内容.硬件又分为VR头显和辅助设备,内容又分为VR全景和VR虚拟内容,如游戏.娱乐.根据行业划分为VR+购物,VR+教育,VR ...