1. 创建虚拟机、安装CentOS6.5操作系统(此过程省略);
2. 将虚拟机克隆三个;
3. 把克隆出来的三个虚拟机修改主机名;vi /etc/sysconfig/network
4. 配置网卡:vi /etc/sysconfig/network-scripts/ifcfg-eth0
注意:在VMware里克隆出来的CentOS Linux,开机执行命令:ifconfig...没有看到eth0网卡。然后重启网卡又报以下错误:
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED]
解决办法:
首先,打开/etc/udev/rules.d/70-persistent-net.rules内容如下面所示:
记录下eth1网卡的mac地址
接下来,打开/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
将 DEVICE="eth0" 改成 DEVICE="eth1" ,
HWADDR="00:0c:29:8f:89:97" 改成上面的mac地址 HWADDR="00:0c:29:50:bd:17"
最后,重启网络# /etc/init.d/network restart正常了。
5. 添加主机名和IP地址映射关系:sudo vi /etc/hosts添加“主机名 IP地址”
192.168.46.120 hadoop0
192.168.46.121 hadoop1
192.168.46.122 hadoop2
192.168.46.123 hadoop3
6. 关闭防火墙:sudo service iptables stop
7. 检查防火墙关闭情况:service iptables status
8. 关闭防火墙自启动:chkconfig iptables off
9. 查看防火墙自启动情况:chkconfig iptables –list
10. 关闭Slinx:(修改配置文件需要重启机器)
修改/etc/selinux/config 文件(vi /etc/selinux/config )将SELINUX=enforcing改为SELINUX=disabled重启机器即可
11. 配置SSH免密码登录:
1) 查看是否安装ssh服务命令:yum list installed | grep ssh
2) 查看进程中是否启动了ssh:ps -Af | grep sshd
3) 生成当前用户下公私密钥对:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4) 复制粘贴主节点的公钥到其他三台主机(从节点)的authorized_keys(文件名位置固定就在~/.ssh下面)中(authorized_keys文件自建,也可以id_rsa.pub改名字为authorized_keys)
5) 修改authorized_keys权限为644:chmod 644 authorized_keys
12. 根目录下建个soft文件夹用来存放jdk和hadoop的安装包:mkdir /soft
13. 进入soft文件夹下面,上传jdk和hadoop的安装包:rz 文件名
14. 解压:tar -xzvf jdk-8u144-linux-x64.tar.gz
15. 解压:tar -xzvf hadoop-2.7.3.tar.gz
16. 可以删除压缩包hadoop-2.7.3.tar.gz 和jdk-8u144-linux-x64.tar.gz了:rm –rf hadoop-2.7.3.tar.gz,rm -rf hadoop-2.7.3.tar.gz 。jdk1.8.0_144、hadoop-2.7.3太长,配置环境变量的时候麻烦,修改一下名字:mv jdk1.8.0_144 jdk,mv hadoop-2.7.3 hadoop。
17. 在/soft/tmp创建一个文件夹,用来存放HDFS临时文件:mkdir tmp
18. 配置JDK环境变量:编辑/etc/profile文件:vi /etc/profile在文档的最后面添加
export JAVA_HOME=/soft/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
19. 配置生效:source /etc/profile
20. 配置core-site.xml文件(先建立文件夹/soft/hadoop/tmp): vi core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
</property>
</configuration>
21. 配置hdfs-site.xml文件:vi hdfs-site.xml
<configuration>
<property>
<name>dfs.http.address</name>
<value>hadoop0:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop0:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
22. 配置vi mapred-site.xml文件(先改名:mv mapred-site.xml.template mapred-site.xml)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
</property>
<property>
<name>mapred.map.tasks</name>
<value>20</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>4</value>
</property>
<property>
<name>mapreduce.framwork.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop0:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop0:19888</value>
</property>
</configuration>
23. 配置hadoop-env.sh:vi hadoop-env.sh
这个文件要修改的地方就是JAVA_HOME环境变量,刚才我们设置过JAVA_HOME的,在我的案例里改成如下——
# The java implementation to use.
export JAVA_HOME=/soft/jdk
24. 配置yarn-env.sh: vi yarn-env.sh
yarn的环境配置,同样只需要修改JAVA_HOME就行,找到下面这行——
# some Java parameters
export JAVA_HOME=/soft/jdk
25. 配置slaves: vi slaves
这是设置从节点hostname的地方,一行一个,我们的例子里只要在文件里写上如下两行就行了
hadoop1
hadoop2
hadoop3
26. 配置yarn-site.xml文件:vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop0:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop0:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop0:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop0:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop0:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
27. 格式化namenode: ./bin/hdfs namenode –format(在/soft/hadoop下进行)