Hadoop完全分布式配置

建站服务器

一、首先说一下,Hadoop有三种运行模式。
第一个是独立(或本地)运行模式:无需运行任何守护进程,所有程序都在一个同一个JVM上执行。
第二个是伪分布模式:Hadoop守护进程运行在本地机器上,模拟一个小规模的集群。
第三个是全分布模式,也就是通常所说的完全分布式模式:Hadoop守护进程运行在一个集群上。


下面简单介绍下完全分布式的配置:

首先准备三台机器,系统公共配置部分:

系统信息:
[root@hadoop1~]#cat/etc/redhat-release
CentOSrelease6.7(Final)
[centos@hadoop1~]$uname-r
2.6.32-573.el6.x86_64
[root@hadoop1~]#uname-m
x86_64

公共操作用户:centos
centos用户在/etc/sudoers中的公共配置:
[root@hadoop1~]#grepcentos/etc/sudoers
centosALL=(ALL)NOPASSWD:ALL

环境变量如下:
[root@hadoop1~]#tail-16/etc/profile
#java
JAVA_HOME=/home/centos/download/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportJAVA_HOME
exportCLASSPATH
#hadoop
HADOOP_HOME=/home/centos/download/hadoop
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
exportPATH

主机IP域名映射如下:
[root@hadoop1~]#cat/etc/hosts
10.0.0.101hadoop1
10.0.0.102hadoop2
10.0.0.103hadoop3


主节点IP为:
[root@hadoop1~]#ifconfig|awk-F\'[:]+\'\'NR==2{print$4}\'
10.0.0.101
从节点IP分别为:
[root@hadoop2~]#ifconfig|awk-F\'[:]+\'\'NR==2{print$4}\'
10.0.0.102
[root@hadoop3~]#ifconfig|awk-F\'[:]+\'\'NR==2{print$4}\'
10.0.0.103

Java版本
[root@hadoop1~]#java-version
javaversion1.8.0_65
Java(TM)SERuntimeEnvironment(build1.8.0_65-b17)
JavaHotSpot(TM)64-BitServerVM(build25.65-b01,mixedmode)

Hadoop版本
[root@hadoop1~]#hadoopversion
Hadoop2.7.3
Subversionhttps://git-wip-us.apache.org/repos/asf/hadoop.git-rbaa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiledbyrooton2016-08-18T01:41Z
Compiledwithprotoc2.5.0
Fromsourcewithchecksum2e4ce5f957ea4db193bce3734ff29ff4
Thiscommandwasrunusing/home/centos/download/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar



二、配置ssh
首先在三台机器上的家目录分别执行下述生成密钥对脚本,这样的话,三台机器的centos之间就可以免密码登录、免密码传输文件等操作。
[centos@hadoop1~]$llcreatessh.sh
-rwxr-xr-x1centoscentos51May1411:05createssh.sh
[centos@hadoop1~]$catcreatessh.sh
#!/bin/sh
ssh-keygen-trsa-P\'\'-f~/.ssh/id_rsa

然后在三台机器上的家目录分别执行下述分发公钥
[centos@hadoop1~]$llfen.sh
-rwxr-xr-x1centoscentos142May1412:14fen.sh
[centos@hadoop1~]$catfen.sh
#!/bin/sh
ssh-copy-id-i~/.ssh/id_rsa.pubcentos@hadoop1
ssh-copy-id-i~/.ssh/id_rsa.pubcentos@hadoop2
ssh-copy-id-i~/.ssh/id_rsa.pubcentos@hadoop3

#上述只是在执行的时候会输入yes和系统用户密码,其他在执行的时候就不会再次输入密码了。执行SSH的目的是,比如在配置好完全分布式的时候,主节点会自动吊起从节点的日志并且往里面写入数据,此时SSH的密钥对就起作用了。

#经常碰到的坑,要配置三台机器家目录中.ssh的权限为700,而且要配置家目录中.ssh目录中的authorized_keys权限为644.
[centos@hadoop1~]$chmod700.ssh
[centos@hadoop1~]$chmod644.ssh/authorized_keys


三、重点的配置文件内容

#三台机器共同配置
[centos@hadoop1~]$grepJAVA_HOMEdownload/hadoop/etc/hadoop/hadoop-env.sh
#TheonlyrequiredenvironmentvariableisJAVA_HOME.Allothersare
#setJAVA_HOMEinthisfile,sothatitiscorrectlydefinedon
exportJAVA_HOME=/home/centos/download/jdk#JAVA环境变量要在这再配置一下

[centos@hadoop1~]$catdownload/hadoop/etc/hadoop/core-site.xml



fs.defaultFS
hdfs://hadoop1



[centos@hadoop1~]$catdownload/hadoop/etc/hadoop/hdfs-site.xml



dfs.replication
2#副本数,对应从节点数



[centos@hadoop1~]$catdownload/hadoop/etc/hadoop/mapred-site.xml



mapreduce.framework.name
yarn




[centos@hadoop1~]$catdownload/hadoop/etc/hadoop/yarn-site.xml



yarn.resourcemanager.hostname
hadoop1


yarn.nodemanager.aux-services
mapreduce_shuffle



#注意这里只配置从节点的域名
[centos@hadoop1~]$catdownload/hadoop/etc/hadoop/slaves
hadoop2
hadoop3


四、启动hadoop

#下述命令只在主节点hadoop1中执行!
#首先执行格式化命令
[centos@hadoop1~]$hadoopnamenode-format

#然后启动hadoop
[centos@hadoop1~]$start-all.sh

#查看启动进程
#主节点执行,名称节点只会存在于主节点中,包括文件名称等内容。
[centos@hadoop1~]$jps
2736SecondaryNameNode
2961Jps
2889ResourceManager
2539NameNode

#从节点执行,数据节点只会存在于从节点,是真正存放数据的地方。
[centos@hadoop2~]$jps
2322NodeManager
2234DataNode
2380Jps

[centos@hadoop3~]$jps
2481DataNode
2646Jps
2569NodeManager


#临时文件都生成在了根目录下的/tmp目录下
[centos@hadoop1~]$ll/tmp/
total32
drwxrwxr-x3centoscentos4096May1414:05hadoop-centos
-rw-rw-r--1centoscentos5May1414:06hadoop-centos-namenode.pid
-rw-rw-r--1centoscentos5May1414:06hadoop-centos-secondarynamenode.pid
drwxr-xr-x2centoscentos4096May1414:06hsperfdata_centos
drwxrwxr-x3centoscentos4096May1414:06Jetty_0_0_0_0_50070_hdfs____w2cu08
drwxrwxr-x3centoscentos4096May1414:06Jetty_0_0_0_0_50090_secondary____y6aanv
drwxrwxr-x4centoscentos4096May1414:06Jetty_hadoop1_8088_cluster____.jtly5k
-rw-rw-r--1centoscentos5May1414:06yarn-centos-resourcemanager.pid

新闻标题:Hadoop完全分布式配置
文章位置:http://hbruida.cn/article/cpoigc.html