本文旨在介绍通过两台物理节点,实现完全分布式hadoop程序的部署
writen by Bob Pan@20140609
环境介绍:
主机名 |
机器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,处于运行状态。