Hadoop的分布式安装部署图文分享

由于Spark以后会用到HDFS以及YARN,所以第一步可以先将Hadoop的最简单的集群搭建好,以便以后方便使用。
[size=x-large][b]集群规划(根据我虚拟机而定)[/b]:[/size]

[list]
[*][color=blue]NameNode[/color]
[*]– Hadoop1 ( 192.168.52.151)
[*][color=blue]DataNode[/color]
[*]– Hadoop1 ( 192.168.52.151)
[*]– Hadoop2 ( 192.168.52.162)
[*]– Hadoop3 ( 192.168.52.163)
[/list]

[size=x-large][b]系统环境:[/b][/size]
[list]
[*]centos6.3 x64 vmware
[*]硬盘:30G
[*]内存:1G
[*]hadoop版本:hadoop-2.4.0(为了方便Spark1.1.0 for Hadoop2.4的版本,这样可以不必自己编译,因为自己编译会用很长时间,有几个包还被墙,比较慢,这样可以直接用)
[/list]

[size=x-large][b]环境准备:[/b][/size]
[size=large][b]系统设置[/b][/size]
[color=indigo][size=medium][b]关闭iptables:[/b][/size][/color]

service iptables stop
chkconfig iptables off
chkconfig ip6tables off


[color=indigo][size=medium][b]关闭没用的服务[/b][/size][/color]
chkconfig postfix off
chkconfig bluetooth off

[color=indigo][size=medium][b]检查SSHD[/b][/size][/color]
chkconfig --list

找到SSHD 有4个on即可

[color=indigo][size=medium][b]修改文件句柄数(/etc/security/limits.conf) //** HBase 使用(以后的文件句柄会不够用)[/b][/size][/color]
hadoop - nofile 32768
hadoop soft/hard nproc 32000

[color=indigo][size=medium][b]修改登录配置文件(/etc/pam.d/login)[/b][/size][/color]
在最后增加如下内容:
session required pam_limits.so


[color=indigo][b][size=medium]sshd_config 配置(/etc/ssh/sshd_config)[/size][/b][/color]

打开三个开关,如word图,去掉前面井号即可

[img]http://dl2.iteye.com/upload/attachment/0103/3727/5cda379c-ac4d-3bb4-98b7-ce8165aa7219.png[/img]

[color=indigo][b][size=medium]/etc/hosts 配置( /etc/hosts )[/size][/b][/color]
在最上面配置 如图

[img]http://dl2.iteye.com/upload/attachment/0103/3729/dd0d35a7-d69f-3814-912e-bdde29c2f540.png[/img]

[b][color=indigo][size=medium]用户和组的增加[/size][/color][/b]

[list]
[*]增加hadoop 组和hadoop 用户
[*]增加组 groupadd -g 1000 hadoop
[*]增加用户 useradd -u 2000 -g hadoop hadoop
[*]增加密码:passwd hadoop
[/list]
[size=large][b]软件安装:[/b][/size]
[color=indigo][b][size=medium]JDK安装[/size][/b][/color]
1、 我安装在/home/jvm下
2、 进入这个目录,然后解压

tar zvxf /home/congli/jdk-8u25-linux-x64.tar.gz


[size=medium][color=indigo][b]Scala配置[/b][/color][/size]

tar zxf scala-2.11.4.tgz
chown -R root:root scala-2.11.4 改一下用户所有者



[size=medium][color=indigo][b]配置环境变量[/b][/color][/size]
[color=red]注意:这里我已经规划好spark的目录以及hadoop的目录,所以一并加进去,或者等安装了hadoop和spark再加进去也可以。[/color]

vi /etc/profile


export JAVA_HOME=/home/jvm/jdk1.8.0_25
export JRE_HOME=/home/jvm/jdk1.8.0_25/jre
export SCALA_HOME=/home/congli/scala-2.11.4
export HADOOP_COMMON_HOME=/app/hadoop/hadoop240
export HADOOP_CONF_DIR=/app/hadoop/hadoop240/etc/hadoop
export YARN_CONF_DIR=/app/hadoop/hadoop240/etc/hadoop
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_COMMON_HOME}/bin:${HADOOP_COMMON_HOME}/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_COMMON_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_COMMON_HOME/lib"

测试一下:先刷新一下profile:

source /etc/profile


然后测试

java –version   scala –version

测试结果如下就是OK的:

[img]http://dl2.iteye.com/upload/attachment/0103/3735/492821cf-54c1-3bad-96da-b31408a7db2c.png[/img]

[size=medium][color=indigo][b]安装hadoop[/b][/color][/size]
1、创建一个目录
mkdir -p /app/hadoop


2、解压到这个目录:

tar zxf /home/hadoop2.4.0/hadoop-2.4.0-bin.tar.gz

3、为了好记,我改名为
[list]
[*]hadoop240 hadoop-2.4.0/ hadoop240
[/list]
4、执行
chown -R hadoop:hadoop hadoop



[size=medium][color=indigo][b]Haddop文件部署[/b][/color][/size]
1、 进入[color=blue]hadoop240/etc/hadoop [/color]进行配置文件的修改;
2、 配置slaves
删除localhost(3台机器是以后如果用HBase ,还要用zookeeper,一般都用奇数台)

[img]http://dl2.iteye.com/upload/attachment/0103/3739/5045f090-b7c4-3dd7-a5a0-9c2f85e4112e.png[/img]

3、 配置core-site.xml
 
fs.defaultFS
hdfs://hadoop1:8000


[img]http://dl2.iteye.com/upload/attachment/0103/3743/4c5bc6ac-faae-3520-a587-5e3508e26e11.png[/img]


4、 配置hdfs-site.xml


dfs.namenode.name.dir
file:///app/hadoop/hadoop240/mydata/name


dfs.datanode.data.dir
file:///app/hadoop/hadoop240/mydata/data


dfs.replication
1


这里的配置项涉及到几个目录,是HDFS的文件保存目录
元数据的保存目录
Datanode的数据保存目录
复制因子设置为1,缺省的是3,同一个数据块会在3个地方有保存,但是我们配置最简单的,就设置成1,让空间利用的更好
[b][color=red]注意:mydata/name 和data目录都要创建好,不然会因为写不进去而启动不起来,这个问题我会在遇到的问题中(单开帖子)列出来[/color][/b]

5、 配置yarn-site.xml

The hostname of the RM.
yarn.resourcemanager.hostname
hadoop1



yarn.nodemanager.aux-services
mapreduce_shuffle



The address of the applications manager interface in the RM.
yarn.resourcemanager.address
${yarn.resourcemanager.hostname}:8032



The address of the scheduler interface.
yarn.resourcemanager.scheduler.address
${yarn.resourcemanager.hostname}:8030



The address of the RM web application.
yarn.resourcemanager.webapp.address
${yarn.resourcemanager.hostname}:8088



yarn.resourcemanager.webapp.https.address
${yarn.resourcemanager.hostname}:8090



The address of the resource tracker interface.
yarn.resourcemanager.resource-tracker.address
${yarn.resourcemanager.hostname}:8031



yarn.resourcemanager.admin.address
${yarn.resourcemanager.hostname}:8033

6、 配置mapred-site.xml
这个直接vi 编辑即可,无需从模板拷贝,直接vi 编辑即可建立;



mapreduce.framework.name
yarn




7、 配置hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/home/jvm/jdk1.8.0_25

把这个替换文件里默认的即可。

[size=x-large][b]集群安装[/b][/size]

[color=red]注意:
如果以上做好了,是虚拟机,就开始复制clone,然后设置好网卡等配置;
如果是物理机,几台机器都按照上面的配置好,复制相应目录并做好配置和环境变量的设置
虚拟机里的网卡如何更改,我就不讲了,以后可以单独写一个帖子;[/color]

[size=medium][color=indigo][b]SSH无密码登录设置[/b][/color][/size]

用ssh-keygen -t rsa 生成公钥
首先要生成hadoop用户的公钥,所以先su到hadoop用户
首先生成节点1(hadoop1)的公钥:[color=blue]$ssh-keygen -t rsa[/color]然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa文件中。
[color=blue]cd ~/.ssh[/color]然后[color=blue]ls –lsa[/color]可以看到生成了两个文件

[img]http://dl2.iteye.com/upload/attachment/0103/3749/aa753473-3afd-30a1-9fc5-890b4555db99.png[/img]

同样的第2、第3个节点也和上面一样生成公钥(注意:都先切换到hadoop目录)
用ssh 机器名 [color=blue]cat /home/hadoop/.ssh/id_rsa.pub>>authorized_keys[/color] 合成公钥
[quote]例如:ssh hadoop1 cat /home/hadoop/.ssh/id_rsa.pub>>authorized_keys 之后要输入yes和hadoop用户的密码[/quote]

[img]http://dl2.iteye.com/upload/attachment/0103/3757/6013aa14-622f-30ff-9153-98da48e3f887.png[/img]

修改authorized_keys 文件属性为600 ,并发放给各节点
chmod 600 authorized_keys

[size=medium][color=indigo][b] Copy到各个节点[/b][/color][/size]

scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh/
scp authorized_keys hadoop@hadoop3:/home/hadoop/.ssh/
scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh/
scp authorized_keys hadoop@hadoop3:/home/hadoop/.ssh/



[size=medium][color=indigo][b]用ssh 机器名 date 验证(去各个节点验证一下)[/b][/color][/size]

ssh hadoop1 date
ssh hadoop2 date
ssh hadoop3 date

成功后的截图如下:

[img]http://dl2.iteye.com/upload/attachment/0103/3759/529598d2-bd9a-31e8-9495-886248f3aafb.png[/img]

[size=x-large][b]Hadoop集群的启动[/b][/size]
[size=large][color=indigo][b]启动HDFS[/b][/color][/size]
[quote]1、 进入hadoop目录,[color=blue]cd /app/hadoop/hadoop240[/color]
2、 [color=blue]bin/hdfs namenode –format [/color]执行格式化;
3、 启动hadoop;[color=indigo]sbin/start-dfs.sh[/color](先启动HDFS)[/quote]
[color=red]注意:再启动hadoop的时候,最好是HDFS和yarn分开启动,因为HDFS启动的时候如果你保存了大量的文件之后,在启动之后有一个安全检查模式,会耗费大量时间,最好分开启动[/color]
4、HDFS的测试
[color=blue]bin/hdfs dfs –ls / [/color]是空的,那么我们建立一个目录[color=blue]bin/hdfs dfs -mkdir -p /datatest /test[/color]
这样就建立好目录了,可以用bin/hdfs dfs –ls / 进行查看
5、[color=blue]bin/hdfs dfs -put NOTICE.txt /datatest/test/ [/color]上传到这么目录
6、[color=blue]bin/hdfs dfs -ls /datatest/test[/color]查看这个目录下的文件,会发现成功上传上去了,效果如下图;

[img]http://dl2.iteye.com/upload/attachment/0103/3763/d20190f6-0f8f-31ef-bb74-dee31f696286.png[/img]

[size=large][color=indigo][b]启动yarn[/b][/color][/size]
1、 [color=blue]sbin/start-yarn.sh[/color]
2、 jps验证(终端里输入jps)
13473 NameNode
14643 Jps
13753 SecondaryNameNode
14329 ResourceManager
14425 NodeManager
13567 DataNode

如果yarn启动成功了 应该有
[list]
[*]ResourceManager
[*]NodeManager(做为datanode)
[*]NameNode
[/list]

[size=x-large][color=black][b]验证[/b][/color][/size]
[size=large][color=indigo][b]验证HDFS[/b][/color][/size]
1、 http://hadoop1:50070/ 看HDFS

[img]http://dl2.iteye.com/upload/attachment/0103/3767/28b0be04-1cdb-3b70-8e95-d747ed33ef51.png[/img]

上面有三个节点,没问题
再看一下HDFS的文件:

[img]http://dl2.iteye.com/upload/attachment/0103/3769/3b6120f8-c348-36c7-a318-9458309f0cb0.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0103/3773/76a0ea6f-1f9c-3af8-b625-ee771fecebaf.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0103/3808/630f3536-5a63-394b-84c5-071dbfc540e6.png[/img]


点进去之后,看到我们之前通过命令行上传过的文件,确定了HDFS没问题。

[size=large][b][color=indigo]验证yarn[/color][/b][/size]

1、 http://hadoop1:8088/cluster/nodes 看到图形界面


[img]http://dl2.iteye.com/upload/attachment/0103/3775/695b2a19-7da6-3f65-83b2-76d1284f2815.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0103/3779/7d37d412-efe4-3148-9789-ca2ea5ebc3ad.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0103/3783/f07cc4b3-daee-3e96-8bee-d5ead4ab017c.png[/img]


[size=small][b]
OK ,到此为止,一个最简单的hadoop集群就安装部署完毕了,Let`s Go![/b][/size]

你可能感兴趣的:(Hadoop基础)