本文所涉及的Linux系统均为Ubuntu!
首先,准备必备的一些软件安装包。
1.下载jdk1.6,下载链接为http://pan.baidu.com/s/1sk4U1Yl
2.下载hadoop2.2.0.tar.gz,下载链接为http://pan.baidu.com/s/1mh4yXpI
3.下载Ubuntu,下载链接:http://pan.baidu.com/s/1numLYHj
按照我的步骤逐一安装即可。
步骤1:你想有几台集群,就去安装几个Ubuntu(下载地址已经给了)。当然我这里就安装两台,只要两台会安装了,那多台也就会了。即一台master,一台slave。IP你可以配,但是这里就直接让两台机器分别在网络配置里设置桥接即可,就是属于一个网段的IP了。如10.10.10.85和10.10.10.129 以下步骤均为root用户登录
步骤2:安装JDK,具体安装办法,请看我的BLOG:http://blog.csdn.net/yt_sports/article/details/50286693
步骤3:设置ssh免密码登录。即两台机器用ssh互连可以不用登录密码。请看我的BLOG:http://blog.csdn.net/yt_sports/article/details/50327873
步骤4:修改每台机器名。hostname可以在/etc/hostname中修改,例如root@Cloud001:~# Cloud001就是机器名,改成你想改的名。这里Cloud001是我的master。我的slave那台机器改的是Cloud002
步骤5:修改/etc/hosts 文件,增加这俩台机器的ip和hostname的映射关系,IP是根据的IP填的,机器名也写上你自己设定的。
10.10.10.85 Cloud001
10.10.10.129 Cloud002
步骤6:先配置Cloud001机器(master)。解压hadoop-2.2.0到/usr/local目录下,敲入:tar -zxvf hadoop-2.2.0.tar.gz -C /usr/local
步骤7:先创建几个文件夹:mkdir
/root/hdfs/namenode
/root/hdfs/datanode
/root/temp
步骤8:配置解压后的hadoop文件。进入/usr/local/hadoop2.2.0/etc/hadoop/目录下配置。
步骤9:配置文件1:敲入:vi hadoop-env.sh 在里面修改JAVA_HOME值(export JAVA_HOME=你配置的jdk路径)
步骤10:配置文件2:敲入:vi yarn-env.sh 在里面依然修改JAVA_HOME值(export JAVA_HOME=你配置的jdk路径)
步骤11:配置文件3:slaves (这个文件里面保存所有slave节点)
写入以下内容:
Cloud002 你有几个slav就写几个slave的机器名,我的只有一个slave,在slave机器上也这么写
步骤12:配置文件4:敲入:vi core-site.xml,在<configuration></configuration>内添加内容。以下红色内容均要写你自己的,其余照抄
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Cloud001:9000</value> 这里写你的master机器名
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/root/tmp</value> 这里写的和我一样就行
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name> 我是用root用户安装的,所以写root,如果你是别的普通用户,用你的用户名写在这就行
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name> 同上。
<value>*</value>
</property>
</configuration>
步骤13:配置文件5:敲入:vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Cloud001:9001</value> 还是写你的主机器名
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/root/hdfs/namenode</value> 这里是步骤7的路径
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/root/hdfs/datanode</value> 这里是步骤7的路径
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
步骤14:配置文件6:敲入: vi mapred-site.xml(你可能会发现没有这个文件,只有一个mapred-site.xml.template,那就先复制mapred-site.xml.template为mapred-site.xml,即配置文件6前先敲入:cp mapred-site.xml.template mapred-site.xml,然后执行步骤14)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Cloud001:10020</value> 写你自己的master机器名
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Cloud001:19888</value> 写你自己的master机器名
</property>
</configuration>
步骤15:配置文件7:敲入:vi yarn-site.xml
<configuration>
<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>
<property>
<name>yarn.resourcemanager.address</name>
<value>Cloud001:8032</value> 写你自己的master机器名
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Cloud001:8030</value> 写你自己的master机器名
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Cloud001:8031</value> 写你自己的master机器名
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Cloud001:8033</value> 写你自己的master机器名
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Cloud001:8088</value> 写你自己的master机器名
</property>
</configuration>
至此,在master机器上的所以配置文件就结束了。
步骤16:配置另一台机器即Cloud002.也是先把JDK,hadoop解压,ssh免密码登录等。跟master一样,最好这些安装路径都一样。好记!
步骤17:配置slave机器。
scp /root/hadoop-2.2.0/etc/hadoop/slaves root@Cloud002:/root/hadoop-2.2.0/etc/hadoop/slaves
scp /root/hadoop-2.2.0/etc/hadoop/core-site.xml root@Cloud002:/root/hadoop-2.2.0/etc/hadoop/core-site.xml
......
就是把从步骤11配置的文件都复制到slave上去,记住不用修改里面的内容,复制过去就好,scp复制是覆盖的,所以不用担心。前提是你得把slave那台机器按步骤10以前的弄好。
接下来就是启动验证了:都是在两台机器上同时输入命令的
进入安装目录: cd /usr/local/hadoop-2.2.0/
格式化namenode:./bin/hdfs namenode –format
启动hdfs: ./sbin/start-dfs.sh
敲入:jps
此时在001上面运行的进程有:namenode secondarynamenode
002上面运行的进程有:datanode
启动yarn: ./sbin/start-yarn.sh
此时在001上面运行的进程有:namenode secondarynamenoderesourcemanager
002上面运行的进程有:datanode nodemanager
查看集群状态:./bin/hdfs dfsadmin –report
查看HDFS: http://10.10.10.85:50070 写上你自己master机器的IP
slave机器
PS.配置hadoop环境变量:此时敲入hadoop version,在任何一个文件夹下是找不到hadoop命令的
配置hadoop环境变量 vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.2.0 这个路径是你安装hadoop的那个路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
成功后如下图: