1.准备
1.jdk安装
2.创建hadoop运行用户
2.安装
下载,解压缩: tar -zxvf 安装包名
7个关键配置文件:
/hadoop/etc/hadoop/hadoop-env.sh
/hadoop/etc/hadoop/yarn-env.sh
/hadoop/etc/hadoop/slaves
/hadoop/etc/hadoop/core-site.xml
/hadoop/etc/hadoop/hdfs-site.xml
/hadoop/etc/hadoop/mapred-site.xml
/hadoop/etc/hadoop/yarn-site.xml
配置文件1:hadoop-env.sh
该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。故在该文件中修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)
配置文件2:yarn-env.sh
该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。
在该文件中修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)
在该文件中修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)
配置文件3:slaves
该文件里面保存所有slave节点的信息,以本篇为例
写入以下内容(hosts里从机的主机名):
node2
node3
写入以下内容(hosts里从机的主机名):
node2
node3
配置文件4:core-site.xml
这个是hadoop的核心配置文件,这里需要配置的就这两个属性,fs.default.name配置了hadoop的HDFS系统的
命名,位置为主机的9000端口;hadoop.tmp.dir配置了hadoop的tmp目录的根位置。这里使用了一个文件系统
中没有的位置,所以要先用mkdir命令新建一下。
参考:
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/djl/soft/hadoop/tmp</value>
<value>131072</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>200</value>
<description>The number of server threads for the namenode.</description>
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>100</value>
</property>
</configuration>
配置文件5:hdfs-site.xml
这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,
一般不大于从机的个数。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/djl/soft/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/djl/soft/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>107374182400</value>
<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
</description>
</property>
<property>
<name>dfs.client.socket-timeout</name>
<value>600000</value>
</property>
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>409600</value>
</property>
配置文件6:mapred-site.xml
这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须
在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别
为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<span style="white-space:pre"> </span><property>
<span style="white-space:pre"> </span><name>mapred.job.tracker</name>
<span style="white-space:pre"> </span><value>node1:9001</value>
<span style="white-space:pre"> </span></property>
<span style="white-space:pre"> </span><property>
<span style="white-space:pre"> </span><name>mapred.map.tasks</name>
<span style="white-space:pre"> </span><value>20</value>
<span style="white-space:pre"> </span></property>
<span style="white-space:pre"> </span><property>
<span style="white-space:pre"> </span><name>mapred.reduce.tasks</name>
<span style="white-space:pre"> </span><value>4</value>
<span style="white-space:pre"> </span></property>
<span style="white-space:pre"> </span><property>
<span style="white-space:pre"> </span><name>mapreduce.framework.name</name>
<span style="white-space:pre"> </span><value>yarn</value>
<span style="white-space:pre"> </span></property>
<span style="white-space:pre"> </span><property>
<span style="white-space:pre"> </span><name>mapreduce.jobhistory.address</name>
<span style="white-space:pre"> </span><value>node1:10020</value>
<span style="white-space:pre"> </span></property>
<span style="white-space:pre"> </span><property>
<span style="white-space:pre"> </span><name>mapreduce.jobhistory.webapp.address</name>
<span style="white-space:pre"> </span><value>node1:19888</value>
<span style="white-space:pre"> </span></property>
</configuration>
配置文件7:yarn-site.xml
该文件为yarn框架的配置,主要是一些任务的启动位置
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
</configuration>
将配置好的hadoop复制到其他节点
scp –r ~/hadoop hadoop@node2:~/
scp –r ~/hadoop hadoop@node3:~/
3.启动
1.格式化namenode:
./bin/hdfs namenode -format
成功标志:
2.启动服务:
./hadoop-2.7.1/sbin/start-all.sh
node1:主服务器
node2:从服务器2
node3:从服务器3
3.验证
检查启动结果
查看集群状态:./bin/hdfs dfsadmin -report
查看集群状态:./bin/hdfs dfsadmin -report
查看HDFS: http://192.168.1.198
:50070(主机IP)
查看RM: http:// 192.168.1.198:8088(主机IP)