一、建立hadoop运行账号(all/root)

二、配置hosts文件(namenode/root)

三、下载并解压jdk(namenode/root)

四 下载并解压hadoop安装包(namenode/hadoop)

五、为hadoop账户配置ssh免密码连入(all/hadoop)

六、配置hadoop-env.sh(namenode/hadoop)

七、conf文件夹下修改site文件(namenode/hadoop)

八、conf文件夹下配置masters和slaves文件(namenode/hadoop)

九、向各节点复制jdk及hadoop(namenode/hadoop)

十、格式化hdfs(namenode/hadoop)

十一、启动hadoop((namenode/hadoop))

十二、用jps检验各后台进程是否成功启动(all/hadoop)



VMware虚拟机准备3台机器,网络连接方式使用host-only

192.168.80.100 hadoop100 (用做namenode)

192.168.80.101 hadoop101

192.168.80.102 hadoop102


0. 设置静态IP&修改主机名&关闭防火墙(all-root)

0.1 可以先维护一下ip. 分别登陆到3台机器

修改ip信息, 因为我的虚拟机安装时选择的是host-only, 我的网管就设置成了我的windows下的虚拟网卡的地址。

0.2修改主机名

血与泪的教训,千万不要设置成 hadoop_100这样的主机名及host

查看主机名hostname

修改主机名hostnamehadoop100

hostnamehadoop101
hostnamehadoop102
不过hostname命令,服务一重启就又会被还原为localhost
修改配置文件 vi /etc/sysconfig/network
hostname=hadoop100
...
重启一下网络service network restart
验证reboot -h now 立刻重启  然后hostname

0.3关闭防火墙

关闭已经启动的防火墙: service iptables stop (只能关闭当前)

验证:service iptables status

Firewall is not running

关闭防火墙开机自动启动功能:

1. 先查看 查看: chkconfig --list |grep iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

2. 关闭chkconfig  iptables off

验证:chkconfig --list |grep iptables

一、建立hadoop运行账号(all-root)


最好不要使用root操作hadoop,root是超级管理员权限,不推荐各个机器之间使用root访问,




useradd hadoop增加用户


passwd hadoop设置密码


二、配置hosts文件(namenode-root)


操作192.168.80.100机器


vi /etc/hosts添加下面内容
 
192.168.80.100 hadoop100
192.168.80.101 hadoop101
192.168.80.102 hadoop102 
验证:ping  hadoop100
 
ping  hadoop101
 
ping  hadoop102








三、为hadoop账户配置ssh免密码连入(all-hadoop)


分别登陆100,101,102三台服务器

使用hadoop 用户




① ssh-keygen -t rsa会在~/.ssh/文件夹下生成id_rsa  id_rsa.pub两个文件


② 根据ip分别执行


cp ~/.ssh/id_rsa.pub~/.ssh/id_rsa.pub.100
 
cp~/.ssh/id_rsa.pub~/.ssh/id_rsa.pub.101
 
cp~/.ssh/id_rsa.pub~/.ssh/id_rsa.pub.102
 
③
 
scp -r ~/.ssh/id_rsa.pub.101   hadoop@hadoop100:/home/hadoop/.ssh
 
scp -r ~/.ssh/id_rsa.pub.102   hadoop@hadoop100:/home/hadoop/.ssh


④ 把所有机器的公钥,放在hadoop100的一个文件中(在hadoop100的hadoop用户下操作)


cat ~/.ssh/id_rsa.pub.100 >> ~/.ssh/authorized_keys
 
 cat ~/.ssh/id_rsa.pub.101 >> ~/.ssh/authorized_keys
 
 cat ~/.ssh/id_rsa.pub.102 >> ~/.ssh/authorized_keys




验证 ssh hadoop101  发现无效,提示还是需要密码。




⑤ 修改authorized_keys的权限, 组用户不能有 写(W)权限, 不然ssh 由于安全问题不生效


authorized_keys 权限改为 644 就OK 




然后分发给 101和102


scp -r ~/.ssh/authorized_keys
 
 
scp -r ~/.ssh/authorized_keys




验证: ssh hadoop101 ...


然后神奇的事情发生了。 3台机器彼此之间可以互联,O(∩_∩)O哈哈~




四、下载并解压jdk(namenode-root)

把jdk解压到/usr/local/ 文件夹


1. 配置环境变量


[root@localhost local]# 
[root@localhost local]#  ./jdk-6u24-linux-i586.bin解压jdk后,生成jdk1.6.0_24文件夹
[root@localhost local]# vi /etc/profile在空白处加上下面两行
export JAVA_HOME=/usr/local/jdk1.6.0_24
 export PATH=.:$JAVA_HOME/bin:$PATH

然后保存退出。

[root@localhost local]# source /etc/profile使新修改的环境变量生效。

验证: java -version






五、下载并解压hadoop安装包(namenode-hadoop)

tar -zxvf /home/hadoop/hadoop-1.1.2.tar.gz 

5.1 解压后生成文件夹 hadoop-1.1.2 

5.2 如果hadoophome不放在 hadoop用户目录下, 也可以通过赋权限,来让hadoop用户可以操作hadoop-1.1.2文件夹 


chown -R hadoop/usr/local/hadoop-1.1.2/
chgrp -R hadoop /usr/local/hadoop-1.1.2/



5.3 设置Hadoop环境变量




vi /etc/profile
 
修改为
export JAVA_HOME=/usr/local/jdk1.6.0_24
export HADOOP_HOME=/home/hadoop/hadoop-1.1.2

export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH 
保存退出
 
source /etc/profile




验证: hadoop


六、配置hadoop-env.sh(namenode-hadoop)

修改 export JAVA_HOME=/usr/local/jdk1.6.0_24

七、conf文件夹下修改site文件(namenode-hadoop)

1、core-site.xml
 <configuration>
     <property>
<name>fs.default.name</name>
<value>hdfs://hadoop100:9000</value>
<description>change your own hostname</description>
     </property>
     <property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-1.1.2/tmp</value>
     </property> 
 </configuration>
 2、hdfs-site.xml
<configuration>
   <property>
<name>dfs.replication</name>
<value>2</value> 
 <property>
            <name>dfs.permissions</name>
            <value>false</value>
    </property>
</configuration>
 3、mapred-site.xml
 <configuration>
     <property>
<name>mapred.job.tracker</name>
<value>hadoop100:9001</value>
<description>change your own hostname</description>
     </property>
 </configuration>


八、conf文件夹下配置masters和slaves文件(namenode-hadoop)

master :   
hadoop100
slave:
hadoop101
hadoop102

九、向各节点复制jdk及hadoop(namenode-hadoop)

分发hosts到其他机器(root用户)

scp -r /etc/hosts root@hadoop101:/etc/
scp -r /etc/hosts root@hadoop102:/etc/分发java(root用户)scp -r /usr/local/jdk1.6.0_24 root@hadoop101:/usr/local/
scp -r /usr/local/jdk1.6.0_24 root@hadoop102:/usr/local/分发环境变量/etc/profile(root用户)scp -r /etc/profile root@hadoop101:/etc/
scp -r /etc/profile root@hadoop102:/etc/




分别执行source /etc/profile 
分别验证: java -version
hadoop101
ping hadoop100ping hadoop102
分发hadoop(切换为hadoop用户,可以免密码)
su hadoop
scp -r/home/hadoop/hadoop-1.1.2hadoop@hadoop102:/home/hadoop/scp -r/home/hadoop/hadoop-1.1.2/home/hadoop/



分别验证:hadoop




十、格式化hdfs(namenode/hadoop)

在hadoop100的hadoop用户下
执行命令 hadoop namenode -format 
都有提示 Storage directory /home/hadoop/hadoop-1.1.2/tmp/dfs/name has been successfully formatted.
才证明成功

十一、启动hadoop(namenode/hadoop)
在hadoop100 上执行 start-all.sh

十二、用jps检验各后台进程是否成功启动(all/hadoop)

请查看伪分布式