【嵌牛导读】一个Linux小白的角度来讲述亲身经历安装Hadoop的全过程。虽说网上教程是有许多的,但是总感觉或因版本问题或因作者互抄不负责的原因,许多需要强调的细节并没有讲清楚。笔者自己在安装的过程中,由于对Linux不熟悉的原因还是踩了许多坑的,因此把整个过程分享出来。
【嵌牛鼻子】Hadoop
【嵌牛提问】Hadoop安装配置难吗?
【嵌牛正文】
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 hadoop0192.168.46.121 hadoop1192.168.46.122 hadoop2192.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 ssh2)查看进程中是否启动了ssh:ps -Af | grep sshd3)生成当前用户下公私密钥对:ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa4)复制粘贴主节点的公钥到其他三台主机(从节点)的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/jdkexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/binexport HADOOP_HOME=/soft/hadoopexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
19.配置生效:source /etc/profile
20.配置core-site.xml文件(先建立文件夹/soft/hadoop/tmp): vi core-site.xmlhadoop.tmp.dir/soft/tmpfs.default.namehdfs://hadoop0:9000
21.配置hdfs-site.xml文件:vi hdfs-site.xmldfs.http.addresshadoop0:50070dfs.namenode.secondary.http-addresshadoop0:50090dfs.replication3
22. 配置vi mapred-site.xml文件(先改名:mv mapred-site.xml.template mapred-site.xml)mapred.job.trackerhadoop0:9001mapred.map.tasks20mapred.reduce.tasks4mapreduce.framwork.nameyarnmapreduce.jobhistory.addresshadoop0:10020mapreduce.jobhistory.webapp.addresshadoop0:19888
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 parametersexport JAVA_HOME=/soft/jdk
25. 配置slaves: vi slaves这是设置从节点hostname的地方,一行一个,我们的例子里只要在文件里写上如下两行就行了hadoop1hadoop2hadoop3
26. 配置yarn-site.xml文件:vi yarn-site.xmlyarn.resourcemanager.addresshadoop0:8032yarn.resourcemanager.scheduler.addresshadoop0:8030yarn.resourcemanager.webapp.addresshadoop0:8088yarn.resourcemanager.resource-tracker.addresshadoop0:8031yarn.resourcemanager.admin.addresshadoop0:8033yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler
27. 格式化namenode: ./bin/hdfs namenode –format(在/soft/hadoop下进行)