Hadoop学习历程(五、真正的分布式系统搭建)
之前都是单节点进行的操作与测试,现在进行真正的多节点系统搭建
1. 准备系统与配置
共准备4台机器搭建Hadoop集群。基于CentOS6.2,jdk1.6.0_31,Hadoop2.2.0版本
192.168.1.132 NameNode Master132.Hadoop (Master)
192.168.1.110 DateNode Slave110.Hadoop (Slave)
192.168.1.141 DateNode Slave141.Hadoop (Slave)
192.168.1.131 DateNode Slave131.Hadoop (Slave)
2. 首先都分别对几台机器建立Hadoop用户
groupadd hadoop
useradd -g hadoop hadoop
passwd hadoop
增加用户组和用户都是hadoop,我这里设置的密码 111111
3. 分别使用root用户,安装jdk并进行设置
我这里JDK的安装路径是 /usr/java/jdk1.6.0_31
修改设置文件/etc/profile,增加如下内容
export JAVA_HOME=/usr/java/jdk1.6.0_31/
export JRE_HOME=/usr/java/jdk1.6.0_31/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
为了使配置马上生效,请执行 source /etc/profile 命令
4. 修改Hosts文件,以便彼此可以访问
文件的内容如下:(注意,把原有的内容都删除掉,否则可能有问题,这个问题困扰我很久)
192.168.1.110 Slave110.Hadoop
192.168.1.141 Slave141.Hadoop
192.168.1.131 Slave131.Hadoop
192.168.1.132 Master132.Hadoop
5. 修改主机名
编辑 /etc/sysconfig/network 文件,修改其中的主机名
NETWORKING=yes
HOSTNAME=Master132.Hadoop
GATEWAY=192.168.1.1
这个步骤需要重启,可以通过 hostname Maseter132.Hadoop 命令直接修改主机名
每一台机器都需要修改,设置我们预期的主机名称
6. 修改ssh免密码连接的设置
编辑/etc/ssh/sshd_config文件,使如下的配置生效
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启服务 service sshd restart
7. 关闭防火墙
chkconfig iptables off
以上所有的操作都是在root权限下进行的,下面的操作主要是使用hadoop用户(除非是没有权限)
9. 设置ssh免密码连接
9.1 在/home/hadoop目录下,执行如下的命令
ssh-keygen -t rsa
多次回车之后,将会在 /home/hadoop/.ssl/目录下生产两个文件 id_rsa,id_rsa.pub
9.2 执行 如下命令
cat id_rsa.pub >> authorized_keys
chmod 600 ~/.ssh/authorized_keys (root权限)
9.3 将所有的Slave节点的 id_rsa.pub 文件导入到Master节点的authorized_keys文件中
cat id_rsa.pub >> ~/.ssh/authorized_keys
9.4 使用同样的办法将Master节点的id_rsa.pub文件也导入到各个Slave节点的authorized_keys文件中
9.5 验证相互之间免密码连接是否成功:ssh Slave110.Hadoop 等命令
10. 安装Hadoop(在Master机器上进行,root权限)
10.1 使用之前已经编译好的文件:hadoop-2.2.0.tar.gz
10.2 解压安装在相同的路径,我安装的路径为 /usr/hadoop/
10.3 进行环境设置,修改/etc/profile文件,增加如下内容
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
别忘了执行 source /etc/profile
10.4 修改安装路径的权限(将hadoop目录的读权限给hadoop组的hadoop用户)
chown –R hadoop:hadoop hadoop
11. 配置Hadoop(在Master机器上进行,hadoop权限)
11.1 修改 /usr/hadoop/libexec/hadoop-env.sh 文件,对JAVA_HOME进行明确指定
export JAVA_HOME=/usr/java/jdk1.6.0_31
11.2 修改 /usr/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master132.Hadoop:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value></value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/tmp</value>
</property> <property>
<name>fs.default.name</name>
<value>hdfs://Master132.Hadoop:8010</value>
</property>
</configuration>
11.3 修改 /usr/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master132.Hadoop:</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value></value> 此处请注意,数值不能大于你的Datanode节点数
</property>
</configuration>
11.4 修改 /usr/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master132.Hadoop:</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master132.Hadoop:</value>
</property>
</configuration>
11.5 修改 /usr/hadoop/etc/hadoop/slaves
Slave110.Hadoop
Slave131.Hadoop
Slave141.Hadoop
12. 在Slave节点执行10,11步骤
可以将Master节点的配置直接拷贝到其它节点,然后执行10步的内容,完成全部设置
至此,所有的配置完成,下面可以启动一下系统
13. 在Master节点启动系统
13.1 运行如下命令进行格式化
hadoop namenode -format
13.2 正式启动hadoop
start-all.sh
13.3 验证启动的结果,执行如下命令:
hadoop dfsadmin -report
基本上,如果几个datenode都正常就可以了!
如果过程中有问题,请到/usr/hadoop/log 下面查看日志,寻找问题的线索
Hadoop学习历程(五、真正的分布式系统搭建)的更多相关文章
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
- Hadoop学习历程(一、编译)
近期对Hadoop很感兴趣,下面是在CentOS系统上进行编译的分享 系统情况如下: 1. CentOS 6.2 64位 2. hadoop-2.2.0 3. jdk 1.6.0_31 ...
- Hadoop学习笔记五
一.uber(u:ber)模式 MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效. uber模式 ...
- Hadoop学习历程(四、运行一个真正的MapReduce程序)
上次的程序只是操作文件系统,本次运行一个真正的MapReduce程序. 运行的是官方提供的例子程序wordcount,这个例子类似其他程序的hello world. 1. 首先确认启动的正常:运行 s ...
- Hadoop学习历程(三、第一个程序)
根据之前的操作,我们已经可以正常的启动Hadoop了,关于真正的集群我会在之后进行说明.现在我们来看一下第一个程序吧 1. 在eclipse上建立一个java项目 2. 将 /usr/hadoop/s ...
- Hadoop学习历程(二、配置)
以下是进行单节点Hadoop配置的内容,多节点也类似 1. 进行Hadoop的安装 1.1 上文进行了Hadoop的编译,将编译结果目录 hadoop-2.2.0 拷贝为 /usr/hadoop 目录 ...
- 【Hadoop学习之五】win7+Eclipse+hadoop3搭建本机开发环境
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 拓扑: 知识准备: 1.eclip ...
- Hadoop学习之路(4)Intelij+Maven搭建Hadoop项目
1创建工程 点击project--Maven--next 2通过maven导入项目依赖jar包 (1)设置maven自动导入依赖jar包 勾选 Import Maven projects automa ...
随机推荐
- Mac下Sublime Text 3安装配置
1.下载Sublime Text 3 2.安装Package Control,参考 快捷键 control + ` 或者菜单栏选择View > Show Console 在控制台输入: impo ...
- 【2012长春区域赛】部分题解 hdu4420—4430
这场比赛特点在于两个简单题太坑,严重影响了心情..导致最后只做出两题....当然也反映出心理素质的重要性 1002: 题意:一个矩阵b[n][n]通过数组 a[n]由以下规则构成,现在已知b[n][n ...
- 大型分布式C++框架《四:netio之buffer管理器 下》
每周一篇又来了.这次主要介绍netio的buffer管理器. 首先buffer管理是每一个网络层不可回避的问题.怎么高效的使用buffer是很关键的问题.这里主要介绍下我们的netio是怎么处理.说实 ...
- Java实现生命周期管理机制
先扯再说 最近一直在研究某个国产开源的MySQL数据库中间件,拉下其最新版的代码到eclipse后,启动起来,然后做各种测试和代码追踪:用完想要关闭它时,拉出它的STOP类想要运行时,发现这个类里赫然 ...
- 鼠标点击DIV后,DIV的背景变色(js)
<!DOCTYPE html> <html> <head> <script> window.onload = function(){ var divs ...
- 解决 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
"Accept-Encoding": "gzip, deflate", 这条信息代表本地可以接收压缩格式的数据,而服务器在处理时就将大文件压缩再发回客户端,IE ...
- 深入浅出-iOS函数式编程的实现 && 响应式编程概念
简介 本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助. 配图 ...
- 限定checkbox最多选中数量
一.概述: checkbox是我们在编写网页的时候经常使用的多选框,但是有些时候我们会限定最多选中的数量,如何限定呢? 下面这例子限定了最多选中两个元素,并且将这两个选中的源依次显示在一个文本框里: ...
- JS中的Math.ceil和Math.floor函数的用法
Math.ceil(x) -- 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入 Math.floor(x)--返回小于等于数字参数的最大整数,对数字进行下舍入 例如: document. ...
- android .9.png ”点九” 图片制作方法
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向, ...