史上最完整Hadoop2.x完全分布式安装部署-小白也能学会
一、环境要求:
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,一定要看清楚.
l etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
解释:
mapreduce.framework.name 指的是使用yarn运行mapreduce程序.
l etc/hadoop/slaves
V2
V3
V4
解释:
指定hdfs中的datanode节点
l etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_71
解释:
hadoop集群格式化以及启动时会到次目录下寻找环境变量,必须配置。
l 将相关配置文件拷贝至其他主机。
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
l 将以上配置拷贝至其他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完全分布式安装部署-小白也能学会的更多相关文章
- 史上最完整promise源码手写实现
史上最完整的promise源码实现,哈哈,之所以用这个标题,是因为开始用的标题<手写promise源码>不被收录 promise自我介绍 promise : "君子一诺千金,承诺 ...
- hadoop2.6完全分布式安装HBase1.1
本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...
- 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 ...
- 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. 免密码登 ...
- 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. 约 ...
- 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登录范 ...
- Hadoop2.2.0分布式安装配置详解[2/3]
前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...
- Hadoop2.2.0分布式安装配置详解[1/3]
前言 在寒假前的一段时间,开始调研Hadoop2.2.0搭建过程,当时苦于没有机器,只是在3台笔记本上,简单跑通一些数据.一转眼一两个月过去了,有些东西对已经忘了.现在实验室申请下来了,分了10台机器 ...
- 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. 免密码登 ...
随机推荐
- 用eclipes 添加jboss tools中的hibernate tool进行反向工程生成数据库对应的BOJO(Javabean)
用eclipes 添加jboss tools中的hibernate tool进行反向工程生成数据库对应的BOJO(Javabean) 安装: 在help中eclise marksplace中查询JBo ...
- Linux--struct file结构体
struct file(file结构体): struct file结构体定义在include/linux/fs.h中定义.文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 ...
- jvm的搭建
首先先 说明一下接下来要用到的,环境变量中的path和classpath的区别 1.path路径用来告诉计算机.exe文件的路径,classpath路径是用来告诉计算机.class文件的路径 2.系统 ...
- Excel 中使用sql语句查询
将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...
- LeanCloud 调研报告
LeanCloud 是一家做后端即服务(BaaS)的厂商,目标是让移动互联网开发者能更加方便的开发应用. 出于工作关系,对 leancloud 进行了一番调研:主要目标是学习其后端即服务的产品化思路等 ...
- DELL Precision Tower7910重装系统+开机出现GRUB界面如何处理
想给实验室的工作站重新装个Win7系统,因为以前并没装过工作站的系统,发现和普通的电脑装系统还是有些不一样的.主要的问题就在于主板的不同. 尝试了老毛桃U盘启动盘安装,结果在WinPE里面提示找不到硬 ...
- [Git]07 如何在提交过程中忽略某些文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等.我们可以创建一个名为 .gitignor ...
- poj2594最小顶点覆盖+传递闭包
传递闭包最开始是在Floyd-Warshall算法里面出现的,当时这算法用的很少就被我忽视了.. 传递闭包是指如果i能到达k,并且k能到达j,那么i就能到达j Have you ever read a ...
- JS常用方法【私房菜-笔记】-持续整理中
//记录一下前端开发中 JS常用的方法等,持续收集整理中 ---------------------------------------------------------- //处理键盘事件 禁止后 ...
- XAF_GS_01_准备环境
各位久等了,接下来我们开始学习XAF入门的第一节,搭建XAF的环境 Setp 1 第一步不是创建什么项目,而是先安装我们的XAF环境也就是安装DevExpress 由于笔者安装的是16.2.3所以演示 ...