本文是将三台电脑用路由器搭建本地局域网,系统为centos6.5,已经实验验证,搭建成功。
一、设置静态IP&修改主机名&关闭防火墙(all-root)(对三台电脑都需要进行操作)
0.将三台电脑安装centos6.5系统
1.设置静态ip(便于机器之间的通信,防止路由器电脑重启后,ip变化,导致不能通信)
vim/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0#描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static#设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255#对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4#对应的网卡物理地址
在文件最后面添加一下代码
IPADDR=192.168.80.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
里面的IPADDR地址设置你想要的,我这里是192.168.80.100。
设置好后,需要让IP地址生效,运行下面命令:
servicenetworkrestartShuttingdowninterface
然后运行ifconfig就可以看到静态ip是否生效。
2.修改主机名(每台电脑都要修改,建议使用hadoop100,hadoop101,hadoop102,对应于ip地址最后面三位数)
vi/etc/sysconfig/network
hostname=hadoop100
重启一下网络servicenetworkrestart
验证reboot-hnow立刻重启然后hostname
3.关闭防火墙
关闭已经启动的防火墙:serviceiptablesstop(只能关闭当前)
验证:serviceiptablesstatus
Firewallisnotrunning
关闭防火墙开机自动启动功能:
(1).先查看查看:chkconfig--list|grepiptables
iptables0:off1:off2:on3:on4:on5:on6:off
(2).关闭chkconfigiptablesoff
验证:chkconfig--list|grepiptables
4.建立hadoop运行帐号
最好不要使用root操作hadoop,root是超级管理员权限,不推荐各个机器之间使用root访问,
useraddhadoop增加用户
passwdhadoop设置密码
二、配置hosts文件(只需要对主机192.168.80.100(hadoop100)进行操作,然后通过scp命令将这些配置分发给其他电脑即可)
操作192.168.80.100机器
vi/etc/hosts添加下面内容
192.168.80.100hadoop100
192.168.80.101hadoop101
192.168.80.102hadoop102
验证:pinghadoop100
pinghadoop101
pinghadoop102
三、为hadoop账户配置ssh免密码连入
操作hadoop100,hadoop101,hadoop102机器
①ssh-keygen-trsa会在~/.ssh/文件夹下生成id_rsaid_rsa.pub两个文件
②根据ip分别执行(对hadoop100,101,102三台机器分别生成公钥)
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
③将hadoop101,hadoop102的公钥传输到hadoop100的机器上
scp-r~/.ssh/id_rsa.pub.101hadoop@hadoop100:/home/hadoop/.ssh
scp-r~/.ssh/id_rsa.pub.102hadoop@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
验证sshhadoop101发现无效,提示还是需要密码。
⑤修改authorized_keys的权限,组用户不能有写(W)权限,不然ssh由于安全问题不生效
authorized_keys权限改为644就OK
命令chmodg-wauthorized_keys
然后分发给101和102
scp-r~/.ssh/authorized_keyshadoop@hadoop101:/home/hadoop/.ssh
scp-r~/.ssh/authorized_keyshadoop@hadoop102:/home/hadoop/.ssh
验证:sshhadoop101...
然后神奇的事情发生了。3台机器彼此之间可以互联。
四、下载并解压jdk(只需对hadoop100操作)
使用root用户进行操作,把jdk解压到/usr/local/文件夹中。
[root@hadoop100local]#cd/usr/local
[root@hadoop100local]#./jdk-6u30-linux-x64.bin解压jdk后,生成jdk1.6.0_30文件夹
配置环境变量
[root@hadoop100local]#vi/etc/profile在最后面加上下面两行
exportJAVA_HOME=/usr/local/jdk1.6.0_30
exportPATH=.:$JAVA_HOME/bin:$PATH
保存退出
[root@hadoop100local]#source/etc/profile使新修改的环境变量生效。
验证:java-version
五、下载并解压hadoop安装包(仅对hadoop100操作)
5.1解压hadoop并重命名
使用root用户进行以下操作
tar-zxvf/usr/local/hadoop-1.1.2.tar.gz
解压后生成文件夹hadoop-1.1.2。
重命名mvhadoop-1.1.2hadoop
5.2修改权限,使得hadoop用户可以操作hadoop文件夹
chown-Rhadoop/usr/local/hadoop/
chgrp-Rhadoop/usr/local/hadoop/
5.3设置hadoop环境变量
vi/etc/profile
修改为
exportJAVA_HOME=/usr/local/jdk1.6.0_30
exportHADOOP_HOME=/usr/local/hadoop
exportPATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出
source/etc/profile
验证:hadoop
六、设置hadoop参数
进入usr/local/hadoop/conf文件夹,即可看到以下文件
6.1配置hadoop-env.sh
找到exportJAVA_HOME这一行,去除前面的#号注释符。
修改exportJAVA_HOME=/usr/local/jdk1.6.0_30
6.2配置core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop100:9000</value>
<description>changeyourownhostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
6.3配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
6.4配置mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop100:9001</value>
<description>changeyourownhostname</description>
</property>
</configuration>
6.5配置masters文件
将masters里的localhost改成hadoop100
6.6配置slaves文件
将slaves里的localhost改成
hadoop101
hadoop102
七、向其他机器复制jdk以及hadoop和一些配置
7.1分发hosts到其他机器(root用户)
scp-r/etc/hostsroot@hadoop101:/etc/
scp-r/etc/hostsroot@hadoop102:/etc/
7.2分发java(root用户)
scp-r/usr/local/jdk1.6.0_30root@hadoop101:/usr/local/
scp-r/usr/local/jdk1.6.0_30root@hadoop102:/usr/local/
7.3分发环境变量/etc/profile(root用户)
scp-r/etc/profileroot@hadoop101:/etc/
scp-r/etc/profileroot@hadoop102:/etc/
分别通过ssh远程登录其他电脑
执行source/etc/profile
分别验证:java-version
pinghadoop101
pinghadoop100
7.4分发hadoop(root用户)
scp-r/usr/local/hadoop/root@hadoop101:/usr/local/hadoop/
scp-r/usr/local/hadoop/root@hadoop102:/usr/local/hadoop/
再通过ssh远程登录其他电脑修改hadoop权限,如5.2所示。
再分别验证:hadoop
八、格式化hdfs
在hadoop100,hadoop101,hadoop102的hadoop用户下
执行命令hadoopnamenode-format
九、启动hadoop
在hadoop100上执行start-all.sh
用jps检验
hadoop100上有
32387Jps
32283JobTracker
32198SecondaryNameNode
32021NameNode
hadoop101和hadoop102上有
30770TaskTracker
30866Jps
30666DataNode
说明运行成功,。,这时你可以运行个wordcount这个小例子体验一下、。
一、设置静态IP&修改主机名&关闭防火墙(all-root)(对三台电脑都需要进行操作)
0.将三台电脑安装centos6.5系统
1.设置静态ip(便于机器之间的通信,防止路由器电脑重启后,ip变化,导致不能通信)
vim/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0#描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static#设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255#对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4#对应的网卡物理地址
在文件最后面添加一下代码
IPADDR=192.168.80.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
里面的IPADDR地址设置你想要的,我这里是192.168.80.100。
设置好后,需要让IP地址生效,运行下面命令:
servicenetworkrestartShuttingdowninterface
然后运行ifconfig就可以看到静态ip是否生效。
2.修改主机名(每台电脑都要修改,建议使用hadoop100,hadoop101,hadoop102,对应于ip地址最后面三位数)
vi/etc/sysconfig/network
hostname=hadoop100
重启一下网络servicenetworkrestart
验证reboot-hnow立刻重启然后hostname
3.关闭防火墙
关闭已经启动的防火墙:serviceiptablesstop(只能关闭当前)
验证:serviceiptablesstatus
Firewallisnotrunning
关闭防火墙开机自动启动功能:
(1).先查看查看:chkconfig--list|grepiptables
iptables0:off1:off2:on3:on4:on5:on6:off
(2).关闭chkconfigiptablesoff
验证:chkconfig--list|grepiptables
4.建立hadoop运行帐号
最好不要使用root操作hadoop,root是超级管理员权限,不推荐各个机器之间使用root访问,
useraddhadoop增加用户
passwdhadoop设置密码
二、配置hosts文件(只需要对主机192.168.80.100(hadoop100)进行操作,然后通过scp命令将这些配置分发给其他电脑即可)
操作192.168.80.100机器
vi/etc/hosts添加下面内容
192.168.80.100hadoop100
192.168.80.101hadoop101
192.168.80.102hadoop102
验证:pinghadoop100
pinghadoop101
pinghadoop102
三、为hadoop账户配置ssh免密码连入
操作hadoop100,hadoop101,hadoop102机器
①ssh-keygen-trsa会在~/.ssh/文件夹下生成id_rsaid_rsa.pub两个文件
②根据ip分别执行(对hadoop100,101,102三台机器分别生成公钥)
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
③将hadoop101,hadoop102的公钥传输到hadoop100的机器上
scp-r~/.ssh/id_rsa.pub.101hadoop@hadoop100:/home/hadoop/.ssh
scp-r~/.ssh/id_rsa.pub.102hadoop@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
验证sshhadoop101发现无效,提示还是需要密码。
⑤修改authorized_keys的权限,组用户不能有写(W)权限,不然ssh由于安全问题不生效
authorized_keys权限改为644就OK
命令chmodg-wauthorized_keys
然后分发给101和102
scp-r~/.ssh/authorized_keyshadoop@hadoop101:/home/hadoop/.ssh
scp-r~/.ssh/authorized_keyshadoop@hadoop102:/home/hadoop/.ssh
验证:sshhadoop101...
然后神奇的事情发生了。3台机器彼此之间可以互联。
四、下载并解压jdk(只需对hadoop100操作)
使用root用户进行操作,把jdk解压到/usr/local/文件夹中。
[root@hadoop100local]#cd/usr/local
[root@hadoop100local]#./jdk-6u30-linux-x64.bin解压jdk后,生成jdk1.6.0_30文件夹
配置环境变量
[root@hadoop100local]#vi/etc/profile在最后面加上下面两行
exportJAVA_HOME=/usr/local/jdk1.6.0_30
exportPATH=.:$JAVA_HOME/bin:$PATH
保存退出
[root@hadoop100local]#source/etc/profile使新修改的环境变量生效。
验证:java-version
五、下载并解压hadoop安装包(仅对hadoop100操作)
5.1解压hadoop并重命名
使用root用户进行以下操作
tar-zxvf/usr/local/hadoop-1.1.2.tar.gz
解压后生成文件夹hadoop-1.1.2。
重命名mvhadoop-1.1.2hadoop
5.2修改权限,使得hadoop用户可以操作hadoop文件夹
chown-Rhadoop/usr/local/hadoop/
chgrp-Rhadoop/usr/local/hadoop/
5.3设置hadoop环境变量
vi/etc/profile
修改为
exportJAVA_HOME=/usr/local/jdk1.6.0_30
exportHADOOP_HOME=/usr/local/hadoop
exportPATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出
source/etc/profile
验证:hadoop
六、设置hadoop参数
进入usr/local/hadoop/conf文件夹,即可看到以下文件
6.1配置hadoop-env.sh
找到exportJAVA_HOME这一行,去除前面的#号注释符。
修改exportJAVA_HOME=/usr/local/jdk1.6.0_30
6.2配置core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop100:9000</value>
<description>changeyourownhostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
6.3配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
6.4配置mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop100:9001</value>
<description>changeyourownhostname</description>
</property>
</configuration>
6.5配置masters文件
将masters里的localhost改成hadoop100
6.6配置slaves文件
将slaves里的localhost改成
hadoop101
hadoop102
七、向其他机器复制jdk以及hadoop和一些配置
7.1分发hosts到其他机器(root用户)
scp-r/etc/hostsroot@hadoop101:/etc/
scp-r/etc/hostsroot@hadoop102:/etc/
7.2分发java(root用户)
scp-r/usr/local/jdk1.6.0_30root@hadoop101:/usr/local/
scp-r/usr/local/jdk1.6.0_30root@hadoop102:/usr/local/
7.3分发环境变量/etc/profile(root用户)
scp-r/etc/profileroot@hadoop101:/etc/
scp-r/etc/profileroot@hadoop102:/etc/
分别通过ssh远程登录其他电脑
执行source/etc/profile
分别验证:java-version
pinghadoop101
pinghadoop100
7.4分发hadoop(root用户)
scp-r/usr/local/hadoop/root@hadoop101:/usr/local/hadoop/
scp-r/usr/local/hadoop/root@hadoop102:/usr/local/hadoop/
再通过ssh远程登录其他电脑修改hadoop权限,如5.2所示。
再分别验证:hadoop
八、格式化hdfs
在hadoop100,hadoop101,hadoop102的hadoop用户下
执行命令hadoopnamenode-format
九、启动hadoop
在hadoop100上执行start-all.sh
用jps检验
hadoop100上有
32387Jps
32283JobTracker
32198SecondaryNameNode
32021NameNode
hadoop101和hadoop102上有
30770TaskTracker
30866Jps
30666DataNode
说明运行成功,。,这时你可以运行个wordcount这个小例子体验一下、。