hadoop 2配置.docx

上传人:b****6 文档编号:4944237 上传时间:2022-12-12 格式:DOCX 页数:16 大小:574.54KB
下载 相关 举报
hadoop 2配置.docx_第1页
第1页 / 共16页
hadoop 2配置.docx_第2页
第2页 / 共16页
hadoop 2配置.docx_第3页
第3页 / 共16页
hadoop 2配置.docx_第4页
第4页 / 共16页
hadoop 2配置.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

hadoop 2配置.docx

《hadoop 2配置.docx》由会员分享,可在线阅读,更多相关《hadoop 2配置.docx(16页珍藏版)》请在冰豆网上搜索。

hadoop 2配置.docx

hadoop2配置

hadoop2.0详细配置教程

作者:

杨鑫奇

PS:

文章有部分参考资料来自网上,并经过实践后写出,有什么问题欢迎大家联系我。

update:

20130518 

大家可以尝试下Ambari来配置Hadoop的相关环境

快速的部署Hadoop,Hbase和Hive等并提供Ganglia和Nagios的监控功能,强烈推荐使用.

 

Hadoop2.0集群配置详细教程

前言

Hadoop2.0介绍

Hadoop是apache的开源项目,开发的主要目的是为了构建可靠,可拓展scalable,分布式的系统,hadoop是一系列的子工程的总和,其中包含

1.hadoopcommon:

为其他项目提供基础设施

2.HDFS:

分布式的文件系统

3.MapReduce:

Asoftwareframeworkfordistributedprocessingoflargedatasetsoncomputeclusters。

一个简化分布式编程的框架。

4.其他工程包含:

Avro(序列化系统),Cassandra(数据库项目)等 

Hadoop,以Hadoop分布式文件系统(HDFS,HadoopDistributedFilesystem)和MapReduce(GoogleMapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

  对于Hadoop的集群来讲,可以分成两大类角色:

Master和Salve。

一个HDFS集群是由一个NameNode和若干个DataNode组成的。

其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的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不变,也就是“从中央集权专政变为各个地方自治”,进而缩小了故障带来的影响范围,并起到一定的隔离作用。

具体参考:

http:

//dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/

•基准性能测试

该版本中为HDFS和YARN添加了性能的基准测试集,其中HDFS测试包括:

(1)    dfsio基准测试HDFSI/O读写性能

(2)slive基准测试NameNode内部操作的性能

(3)scan基准测试MapReduce作业访问HDFS的I/O性能

(4)    shuffle基准测试shuffle阶段性能

(5)    compression基准测试MapReduce作业中间结果和最终结果的压缩性能

(6)    gridmix-V3基准测试集群吞吐率

YARN    测试包括:

(1)    ApplicationMaster扩展性基准测试

主要测试调度task/container的性能。

与1.0版本比较,大约快2倍。

(2)    ApplicationMaster恢复性基准测试

测试YARN重启后,作业恢复速度。

稍微解释一下ApplicationMaster恢复作业的功能:

在作业执行过程中,ApplicationMaster会不断地将作业运行状态保存到磁盘上,比如哪些任务运行完成,哪些未完成等,这样,一旦集群重启或者master挂掉,重启后,可复原各个作业的状态,并只需重新运行未运行完成的哪些任务。

(3)    ResourceManager扩展性基准测试

通过不断向Hadoop集群中添加节点测试RM的扩展性。

(4)    小作业基准测试

专门测试批量小作业的吞吐率

具体参考:

•通过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集群运维人员的工作量。

具体参考:

http:

//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 jdk-6u32-linux-x64.bin

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

下载官网地址:

http:

//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

exportPATH=$PATH:

$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节点里面添加属性

hadoop.tmp.dir

/hadoop/tmp

Abaseforothertemporarydirectories.

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

true

dfs.federation.nameservice.id

ns1

dfs.namenode.backup.address.ns1

192.168.1.201:

50100

dfs.namenode.backup.http-address.ns1

192.168.1.201:

50105

dfs.federation.nameservices

ns1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1