本文旨在介绍通过两台物理节点,实现完全分布式hadoop程序的部署
writen by [email protected]
环境介绍:
主机名 |
机器IP |
用途 |
描述 |
Hadoop0 |
192.168.80.101 |
Namenode secondaryNamenode jobTracker |
CentOS6.4 jdk-6u24-linux-i586 hadoop-1.1.2 |
Hadoop1 |
192.168.80.102 |
Datanode taskTracker |
CentOS6.4 jdk-6u24-linux-i586 hadoop-1.1.2 |
1、 安装JDK
a) 把 jdk 移动到/usr/local
目录下。进入到/usr/local 目录下,通过“.”解压文件
i.
./jdk-6u24-linux-i586.bin
b)
将解压后的目录jdk1.6.0_24重命名为jdk
i.
mv jdk1.6.0_24/ jdk
c)
将jdk配置到环境变量中,设置全局环境变量,文件“/etc/profile”后添加:
i.
export JAVA_HOME=/usr/local/jdk
ii.
export PATH=.:$PATH:$JAVA_HOME/bin
d) 执行Source命令
i.
#source /etc/profile
e)
“export”是关键字,用于设置环境变量。我们设置了两个环境变量,一个是 JAVA_HOME,一个是
PATH。对于环境变量的引用,使用“$”,多个环境变量之间的连接,使用“:”。大家在设置环境变量的时候,一定与 windows
下的操作区分开,不要混淆。命令“source”是为了让文件中的设置立刻生效。
f) 执行java
–version命令
2、 关闭防火墙
a) 执行Setup命令
b) 选择“Firewall
configuration”,然后按回车;
c)
关闭防火墙,只需要按一下空格键,符号“*”就会消失。最后使用“tab”键移动到“OK”,回车,一步步退出就行了。
d) 检查防火墙是否关闭命令“service
iptables status”
3、 设置DNS解析
a)
打开etc/sysconfig/network
b)
修改为“HOSTNAME=hadoop0”(hadoop1)
c) reboot
4、
Hadoop0设置SSH免密码登录
a) ssh-keygen –t rsa
b) 三次回车
c) cd .ssh/
d) ls –l
e) cp id_rsa.pub
authorized_keys
f) ssh localhost验证
5、
Hadoop1设置SSH免密码登录
a) 同上
6、
配置hadoop0和hadoop1的/etc/hosts
a) 每个节点均添加了所有节点的 ip
与主机名映射
b) 192.168.80.101
hadoop0
c)
192.168.80.102 hadoop1
7、 集群间SSH免密码登录
a) 在hadoop0执行命令:ssh-copy-id
-i ~/.ssh/id_rsa.pub hadoop1
b) 在hadoop1执行命令:ssh-copy-id
-i ~/.ssh/id_rsa.pub hadoop0
8、
Hadoop压缩包上传至hadoop0节点的/usr/local目录下
9、 Hadoop0节点解压缩hadoop
a) tar -xzvf
hadoop-1.1.2.tar.gz
10、Hadoop0节点解压缩后的文件夹重命名
a) #mv hadoop-1.1.2
hadoop
11、 设置Hadoop0节点的环境变量
alias cdha=’cd /usr/local/hadoop’
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
12、修改hadoop0节点的Hadoop配置文件
a) 修改hadoop-env.sh
第9行改为:export JAVA_HOME=/usr/local/jdk(去掉前面的#)
b)
修改hadoop核心配置文件core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
c)
修改hdfs配置文件hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
d)
修改MapReduce 配置文件 mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
<description>change your own hostname</description>
</property>
</configuration>
13、在hadoop0节点执行命令,将hadoop0节点的hadoop文件夹复制到hadoop1节点
a) scp -rq /usr/local/hadoop
hadoop1:/usr/local
b) scp -rq /etc/profile
hadoop1:/etc
c) ssh hadoop1
d) exit
14、配置hadoop0节点的集群核心文件slaves
a)
打开/conf/slaves文件后,修改为hadoop1.
b) 修改后,意味着在节点
hadoop1运行datanode和tasktracker节点.
15、格式化文件系统
a) hadoop namenode
–format
16、启动集群
a) 在节点 hadoop0
中执行命令:start-all.sh
17、Hadoop0节点jps验证,SecondaryNameNode、NameNode、JobTracker,处于运行状态。
18、Hadoop1节点jps验证,DataNode、TaskTracker,处于运行状态。