hadoop 2配置文档格式.docx
- 文档编号:17897663
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:16
- 大小:574.54KB
hadoop 2配置文档格式.docx
《hadoop 2配置文档格式.docx》由会员分享,可在线阅读,更多相关《hadoop 2配置文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
集群中的DataNode管理存储的数据。
MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。
主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。
主节点监控它们的执行情况,并且重新执行之前的失败任务;
从节点仅负责由主节点指派的任务。
当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。
HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。
HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。
为什么要使用2.0版本(来自董的博客)
该版本提供了一些新的、重要的功能,包括:
•HDFSHA,当前只能实现人工切换。
HadoopHA分支merge进了该版本,并支持热切,主要特性包括:
(1)
NN配置文件有改变,使得配置更加简单
(2)
NameNode分为两种角色:
activeNN与standbyNN,activeNN对外提供读写服务,一旦出现故障,便切换到standbyNN。
(3)
支持Client端重定向,也就是说,当activeNN切换到standbyNN过程中,Client端所有的进行时操作都可以无缝透明重定向到standbyNN上,Client自己感觉不到切换过程。
(4)
DN同时向activeNN和standbyNN汇报block信息。
具体设计文档参考:
https:
//issues.apache.org/jira/browse/HDFS-1623
当前HadoopHA只能实现人工切换,该功能在某些情况下非常有用,比如,对NN进行升级时,先将NN切换到standbyNN,并对之前的activeNN进行升级,升级完成后,再将NN切换至升级后的NN上,然后对standbyNN进行升级。
•YARN,下一代MapReduce这是一套资源统一管理和调度平台,可管理各种计算框架,包括MapReduce、Spark、MPI等。
YARN是一套资源统一管理和调度平台,可管理各种计算框架,包括MapReduce,Spark,MPI等。
尽管它是完全重写而成,但其思想是从MapReduce衍化而来的,并克服了它在扩展性和容错性等方面的众多不足。
具体参考:
http:
//hadoop.apache.org/common/docs/r0.23.0/hadoop-yarn/hadoop-yarn-site/YARN.html
•HDFSFederation,允许HDFS中存在多个NameNode,且每个NameNode分管一部分目录,而DataNode不变,进而缩小了故障带来的影响范围,并起到一定的隔离作用。
传统HDFS是master/slave结构,其中,master(也就是NameNode)需要存储所有文件系统的元数据信息,且所有文件存储操作均需要访问多次NameNode,因而NameNode成为制约扩展性的主要瓶颈所在。
为了解决该问题,引入了HDFSFederation,允许HDFS中存在多个NameNode,且每个NameNode分管一部分目录,而DataNode不变,也就是“从中央集权专政变为各个地方自治”,进而缩小了故障带来的影响范围,并起到一定的隔离作用。
//dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/
•基准性能测试
该版本中为HDFS和YARN添加了性能的基准测试集,其中HDFS测试包括:
dfsio基准测试HDFSI/O读写性能
(2)slive基准测试NameNode内部操作的性能
(3)scan基准测试MapReduce作业访问HDFS的I/O性能
shuffle基准测试shuffle阶段性能
(5)
compression基准测试MapReduce作业中间结果和最终结果的压缩性能
(6)
gridmix-V3基准测试集群吞吐率
YARN
测试包括:
ApplicationMaster扩展性基准测试
主要测试调度task/container的性能。
与1.0版本比较,大约快2倍。
ApplicationMaster恢复性基准测试
测试YARN重启后,作业恢复速度。
稍微解释一下ApplicationMaster恢复作业的功能:
在作业执行过程中,ApplicationMaster会不断地将作业运行状态保存到磁盘上,比如哪些任务运行完成,哪些未完成等,这样,一旦集群重启或者master挂掉,重启后,可复原各个作业的状态,并只需重新运行未运行完成的哪些任务。
ResourceManager扩展性基准测试
通过不断向Hadoop集群中添加节点测试RM的扩展性。
小作业基准测试
专门测试批量小作业的吞吐率
•通过protobufs来提供HDFS和YARN的兼容性
Wire-compatibilityforbothHDFS&
YARN
HadoopRPC采用了Hadoop自己的一套序列化框架对各种对象进行序列化反序列,但存在一个问题:
扩展性差,很难添加新的数据类型同时保证版本兼容性。
为此,Hadoop2.0将数据类型模块从RPC中独立出来,成为一个独立的可插拔模块,这样允许用户根据个人爱好使用各种序列化/反序列化框架,比如thrift,arvo,protocalBuffer等,默认情况采用ProtocalBuffer。
除了以上五个特性外,还有两个非常重要的特性正在研发中,分别是:
•HDFS快照
用户可在任意时间对HDFS做快照,这样,在HDFS出现故障时,可将数据恢复到某个时间点的状态。
•HDFSHA自动切换
前面介绍的第一个功能“HDFSHA”当前只能实现人工切换,也就是说,管理员运行某个命令,使得acitveNN切换到standbyNN上。
以后将支持自动切换,也就是说,监控模块可检测出activeNN何时出现故障,并自动将之切换到standbyNN上,这样可大大较小Hadoop集群运维人员的工作量。
//s.apache.org/hdfs-autofailover
准备
机器准备
物理机器总共4台,想配置基于物理机的hadoop集群中包括4个节点:
1个Master,3个Salve,节点之间局域网连接,可以相互ping通
Ip分布为
192.168.1.201hadoop1
192.168.1.202hadoop2
192.168.1.203hadoop3
192.168.1.204hadoop4
操作系统为CentOS5.664bit
Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;
3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。
其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。
后续经验积累一定阶段后补上一台备用Master机器。
创建账户
使用root登陆所有机器后,所有的机器都创建hadoop用户
useraddhadoop
passwdhadoop
此时在/home/下就会生成一个hadoop目录,目录路径为/home/hadoop
创建相关的目录
定义需要数据及目录的存放路径
定义代码及工具存放的路径
mkdir-p/home/hadoop/source
mkdir-p/home/hadoop/tools
定义数据节点存放的路径到跟目录下的hadoop文件夹,这里是数据节点存放目录需要有足够的空间存放
mkdir-p/hadoop/hdfs
mkdir-p/hadoop/tmp
mkdir-p/hadoop/log
设置可写权限
chmod-R777/hadoop
定义java安装程序路径
mkdir-p/usr/java
安装
安装JDK
在以上连接下载linux64下的jdk的安装文件:
jdk-6u32-linux-x64.bin
1,将下载好的jdk-6u32-linux-x64.bin通过SSH上传到/usr/java下
scp-r./jdk-6u32-linux-x64.binroot@hadoop1:
/usr/java
2,进入JDK安装目录cd/usr/java并且执行chmod+x
3,执行./jdk-6u32-linux-x64.bin
4,配置环境变量,执行cd/etc命令后执行viprofile,在行末尾添加
exportJAVA_HOME=/usr/java/jdk1.6.0_32
exportCLASSPATH=.:
$JAVA_HOME/lib/tools.jar:
/lib/dt.jar
exportPATH=$JAVA_HOME/bin:
$PATH
5,执行chmod+xprofile将其变成可执行文件
6,执行sourceprofile使其配置立即生效
source/etc/profile
7,执行java-version查看是否安装成功
这个步骤所有机器都必须安装
[root@hadoop1bin]#java-version
javaversion"
1.6.0_32"
Java(TM)SERuntimeEnvironment(build1.6.0_32-b05)
JavaHotSpot(TM)64-BitServerVM(build20.7-b02,mixedmode)
修改主机名
修改主机名,所有节点均一样配置
1,连接到主节点192.168.1.201,修改network,执行vim/etc/sysconfig/network,修改HOSTNAME=hadoop1
2,修改hosts文件,执行cd/etc命令后执行vihosts,在行末尾添加:
192.168.1.201
hadoop1
192.168.1.202
hadoop2
192.168.1.203
hadoop3
192.168.1.204
hadoop4
3,执行hostnamehadoop1
4,执行exit后重新连接可看到主机名以修改OK
其他节点也修改主机名后添加Host,或者host文件可以在后面执行scp覆盖操作
配置SSH无密码登陆
SSH无密码原理简介:
首先在hadoop1上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的slave(hadoop2-hadoop4)上。
然后当master通过SSH连接slave时,slave就会生成一个随机数并用master的公钥对随机数进行加密,并发送给master。
最后master收到加密数之后再用私钥解密,并将解密数回传给slave,slave确认解密数无误之后就允许master不输入密码进行连接了
2,具体步骤(在root用户和hadoop用户登陆情况下执行)
1、执行命令ssh-keygen-trsa之后一路回车,查看刚生成的无密码钥对:
cd.ssh后执行ll
2、把id_rsa.pub追加到授权的key里面去。
执行命令cat~/.ssh/id_rsa.pub>
>
~/.ssh/authorized_keys
3、修改权限:
执行chmod600~/.ssh/authorized_keys
4、确保cat/etc/ssh/sshd_config中存在如下内容
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile
.ssh/authorized_keys
如需修改,则在修改后执行重启SSH服务命令使其生效:
servicesshdrestart
5、将公钥复制到所有的slave机器上:
scp~/.ssh/id_rsa.pub192.168.1.203:
~/
然后输入yes,最后输入slave机器的密码
6、在slave机器上创建.ssh文件夹:
mkdir~/.ssh然后执行chmod700~/.ssh(若文件夹以存在则不需要创建)
7、追加到授权文件authorized_keys执行命令:
cat~/id_rsa.pub>
~/.ssh/authorized_keys然后执行chmod600~/.ssh/authorized_keys
8、重复第4步
9、验证命令:
在master机器上执行ssh192.168.1.203发现主机名由hadoop1变成hadoop3即成功,最后删除id_rsa.pub文件:
rm-rid_rsa.pub
按照以上步骤分别配置hadoop1,hadoop2,hadoop3,hadoop4,要求每个都可以无密码登录
源码下载
HADOOP版本
最新版本hadoop-2.0.0-alpha
安装包为hadoop-2.0.0-alpha.tar.gz
下载官网地址:
//www.apache.org/dyn/closer.cgi/hadoop/common/
下载到/home/hadoop/source目录下
wgethttp:
//ftp.riken.jp/net/apache/hadoop/common/hadoop-2.0.0-alpha/hadoop-2.0.0-alpha.tar.gz
解压目录
tarzxvfhadoop-2.0.0-alpha.tar.gz
创建软连接
cd/home/hadoop
ln-s/home/hadoop/source/hadoop-2.0.0-alpha/./hadoop
源码配置修改
/etc/profile
配置环境变量:
vim/etc/profile
添加
exportHADOOP_DEV_HOME=/home/hadoop/hadoop
exportPATH=$PATH:
$HADOOP_DEV_HOME/bin
$HADOOP_DEV_HOME/sbin
exportHADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
exportHADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
exportHADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
exportYARN_HOME=${HADOOP_DEV_HOME}
exportHADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
exportHDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
exportYARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
创建并配置hadoop-env.sh
vim/usr/hadoop/hadoop-2.0.0-alpha/etc/hadoop/hadoop-env.sh
在末尾添加exportJAVA_HOME=/usr/java/jdk1.6.0_27
core-site.xml
在configuration节点里面添加属性
<
property>
name>
hadoop.tmp.dir<
/name>
value>
/hadoop/tmp<
/value>
description>
Abaseforothertemporarydirectories.<
/description>
/property>
fs.default.name<
hdfs:
//192.168.1.201:
9000<
添加httpfs的选项
hadoop.proxyuser.root.hosts<
192.168.1.201<
hadoop.proxyuser.root.groups<
*<
slave配置
vim/home/hadoop/hadoop/etc/hadoop/slaves
添加slave的IP
192.168.1.202
192.168.1.203
192.168.1.204
配置hdfs-site.xml
vim/home/hadoop/hadoop/etc/hadoop/hdfs-site.xml
添加节点
dfs.replication<
3<
dfs.namenode.name.dir<
file:
/hadoop/hdfs/name<
final>
true<
/final>
dfs.federation.nameservice.id<
ns1<
dfs.namenode.backup.address.ns1<
192.168.1.201:
50100<
dfs.namenode.backup.http-address.ns1<
50105<
dfs.federation.nameservices<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hadoop 2配置 配置