"hadoop"的身份进行。
一、Master上安装hadoop
解压hadoop安装包
删除安装文件 rm hadoop-2.6.0.tar.gz
修改配置文件:一共有7个文件要修改
$HADOOP_HOME/etc/hadoop/hadoop-env.sh
$HADOOP_HOME/etc/hadoop/yarn-env.sh
$HADOOP_HOME/etc/hadoop/core-site.xml
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
$HADOOP_HOME/etc/hadoop/mapred-site.xml
$HADOOP_HOME/etc/hadoop/yarn-site.xml
$HADOOP_HOME/etc/hadoop/slaves
/home/hadoop/hadoop-2.6.0
配置文件1:hadoop-env.sh
该文件是hadoop运行基本环境的配置。需要修改JAVA_HOME的配置,改成实际本机JDK所在目录位置。
另外 hadoop-env.sh中 , 建议加上这句:export HADOOP_PREFIX=/home/hadoop/hadoop-2.6.0
配置文件2:yarn-env.sh
该文件是yarn框架运行环境的配置,同样需要修改JAVA_HOME的配置,改成实际本机JDK所在目录位置。
配置文件3:slaves
该文件里面保存所有slave节点的信息,以本篇为例写入以下内容(hosts里从机的主机名):slave01,slave02
core-site.xml
这个是hadoop的核心配置文件,这里需要配置的就这两个属性,fs.default.name(hadoop2.2.0以后采用新的属性名:fs.defaultFS)配置了hadoop的HDFS系统的命名,位置为主机master的9000端口;hadoop.tmp.dir配置了hadoop的tmp目录的根位置。这里使用了一个文件系统中没有的位置,所以要先用mkdir命令新建一下。
属性”fs.defaultFS“表示NameNode节点地址,由”hdfs://主机名(或ip):端口号”组成。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.aboutyun.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.aboutyun.groups</name>
<value>*</value>
</property>
</configuration>
配置文件5: hdfs-site.xml
这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,一般不大于从机slave的个数。
属性“dfs.namenode.name.dir”表示NameNode存储命名空间和操作日志相关的元数据信息的本地文件系统目录,该项默认本地路径为”/tmp/hadoop-{username}/dfs/name”;
属性”dfs.datanode.data.dir“表示DataNode节点存储HDFS文件的本地文件系统目录,由”file://本地目录”组成,该项默认本地路径为”/tmp/hadoop-{username}/dfs/data”。
属性“dfs.namenode.secondary.http-address”表示SecondNameNode主机及端口号(如果无需额外指定SecondNameNode角色,可以不进行此项配置);
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置文件6:mapred-site.xml
这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。
默认情况下mapred-site.xml不存在,我们需要复制mapred-site.xml.template,并重新命名为mapred-site.xml。
cp mapred-site.xml.template mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
配置文件7:yarn-site.xml
该文件为yarn框架的配置,主要是一些任务的启动位置。
属性”yarn.nodemanager.aux-service“表示MR applicatons所使用的shuffle工具类。
<?xml version="1.0"?>
<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>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
二、将master上配置好的haoop整个目录拷贝到其他slave机器上。
scp -r hadoop2.6.0 hadoop/@slave01:/home/hadoop
三、关闭所有机器的防火墙
service iptables stop 关闭防火墙
chkconfig iptables off 关闭防火墙开机启动
service iptables status 查看防火墙状态
四、添加HADOOP_HOME环境变量
五、格式化NameNode
一定要使用hadoop用户格式化
格式化命令:hdfs namenode -format
六、启动HDFS:start-dfs.sh
此时在master上面运行的进程有:namenode secondarynamenode
slave节点上面运行的进程有:datanode
七、启动yarn:start-yarn.sh
slave1有如下进程
此时hadoop集群已全部配置完成!!!
http://master:8088/