目录
4 . mapred-site.xml:(注意要将mapred-site.xml.template重命名为 .xml的文件)
1 . slaves
把所有从节点的主机名写到这儿就可以,这是告诉hadoop进程哪些机器是从节点。每行写一个,例如:
-
hadoop02
-
hadoop03
-
hadoop04
注:前提是你已经为每个节点进行了hostname的命名。而且每个节点的hosts文件你修改了本地dns的指向,让这些主机指向约定好的IP。然后每个节点的hosts文件保持同步。
2 . core-site.xml
2317384986 yxxy1717
-
<configuration>
-
<!-- 这个属性用来指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口,也可以指定为一个namenode服务(这个服务内部可以有多台namenode实现ha的namenode服务) -->
-
<property>
-
<name>fs.defaultFS</name>
-
<value>hdfs://hadoop01:9000</value>
-
</property>
-
<!-- 指定hadoop临时目录,前面用file:表示是本地目录。有的教程上直接使用/usr/local,我估计不加file:应该也可以。hadoop在运行过程中肯定会有临时文件或缓冲之类的,必然需要一个临时目录来存放,这里就是指定这个的。当然这个目录前面我们已经创建好了。 -->
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/usr/local/hadoop-2.8.3/tmp</value>
-
</property>
-
</configuration>
额外的,有的人在core-site.xml中加了如下属性:
-
<configuration>
-
<!-- 这个属性用来执行文件IO缓冲区的大小-->
-
<property>
-
<name>io.file.buffer.size</name>
-
<value>131072</value>
-
</property>
-
<property>
-
<name>hadoop.proxyuser.myusrname.hosts</name>
-
<value>*</value>
-
</property>
-
<property>
-
<name>hadoop.proxyuser.myusrname.groups</name>
-
<value>*</value>
-
</property>
-
<!-- 也有人使用zookeeper,因此,需要在hadoop核心配置文件core-site.xml中加入zookeeper的配置:指定zookeeper地址 。zookeeper可以感知datanode工作状态,并且提供一些高可用性的特性。-->
-
<property>
-
<name>ha.zookeeper.quorum</name>
-
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181,hadoop04:2181</value>
-
</property>
-
</configuration>
暂时不了解zookeeper,后续再说。先不加入这个配置了暂时。
3 . hdfs-site.xml
-
<configuration>
-
<!-- namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据-->
-
<property>
-
<name>dfs.namenode.name.dir</name>
-
<value>/usr/local/hadoop-2.8.3/data/name</value>
-
</property>
-
<!-- datanode数据的存放地点。也就是block块存放的目录了-->
-
<property>
-
<name>dfs.datanode.data.dir</name>
-
<value>/usr/local/hadoop-2.8.3/data/data</value>
-
</property>
-
<!-- hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数-->
-
<property>
-
<name>dfs.replication</name>
-
<value>3</value>
-
</property>
-
<!-- secondary namenode的http通讯地址-->
-
<property>
-
<name>dfs.secondary.http.address</name>
-
<value>hadoop01:50090</value>
-
</property>
-
</configuration>
-
<configuration>
-
<property>
-
<!-- 开启hdfs的web访问接口。默认端口是50070 , 一般不配 , 使用默认值-->
-
<name>dfs.webhdfs.enabled</name>
-
<value>true</value>
-
</property>
-
</configuration>
4 . mapred-site.xml:(注意要将mapred-site.xml.template重命名为 .xml的文件)
-
<configuration>
-
<!---- 指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 -->
-
<property>
-
<name>mapreduce.framework.name</name>
-
<value>yarn</value>
-
</property>
-
</configuration>
-
<configuration>
-
<property>
-
<!---- 指定mr框架jobhistory的内部通讯地址。目前还不知道是做什么的 -->
-
<name>mapreduce.jobhistory.address</name>
-
<value>singlehost:10020</value>
-
</property>
-
<property>
-
<!---- 指定mr框架web查看的地址 -->
-
<name>mapreduce.jobhistory.webapp.address</name>
-
<value>singleshost:19888</value>
-
</property>
-
</configuration>
通过,mapred-site.xml,我们又出现了2个访问地址:
MapReduce内部的一个通讯地址:hadoop01:10020
MapReduce外部web访问的地址:hadoop02:19888
5.Yarn-Site.xml
-
<configuration>
-
<property>
-
<name>yarn.resourcemanager.hostname</name>
-
<value>hadoop01</value>
-
</property>
-
<property>
-
<name>yarn.nodemanager.aux-services</name>
-
<value>mapreduce_shuffle</value>
-
</property>
-
</configuration>
这个文件就是配置资源管理系统yarn了,其中主要指定了一些节点资源管理器nodemanager,以及总资源管理器resourcemanager的配置。 可以看到这个配置中,跟mapreduce框架是相关的。
可见yarn首先是为了支持mapreduce这个模型,之后很多其他的框架都是基于mapreduce以及yarn的功能基础上开发出来的。
-
<property>
-
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
-
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
-
</property>
-
<property>
-
<!--yarn总管理器的IPC通讯地址-->
-
<name>yarn.resourcemanager.address</name>
-
<value>hadoop01:8032</value>
-
</property>
-
<property>
-
<!--yarn总管理器调度程序的IPC通讯地址-->
-
<name>yarn.resourcemanager.scheduler.address</name>
-
<value>hadoop01:8030</value>
-
</property>
-
<property>
-
<!--yarn总管理器的IPC通讯地址-->
-
<name>yarn.resourcemanager.resource-tracker.address</name>
-
<value>hadoop01:8031</value>
-
</property>
-
<property>
-
<!--yarn总管理器的IPC管理地址-->
-
<name>yarn.resourcemanager.admin.address</name>
-
<value>hadoop01:8033</value>
-
</property>
-
<property>
-
<!--yarn总管理器的web http通讯地址-->
-
<name>yarn.resourcemanager.webapp.address</name>
-
<value>singlehost:8088</value>
-
</property>
可以看到,yarn-site.xml 配置了很多通讯地址,除了8088都是IPC协议的通讯地址,是为了yarn的多个进程之间进行通讯的。
小知识拓展:如果2个进程在同一台机子且在同一个操作平台,可以选择IPC或TCPIP两种通讯协议,但IPC效率高于TCPIP。因为IPC通讯,2个进程直接发送通讯包,而采用TCPIP,进程要把通讯包先发给LO本地环路接口,再通过LO发给进程2.
如果2个进程在不同物理机器或不同操作平台上,则不能用IPC,只能用TCPIP了。
6 . hadoop-env.sh
-
# The java implementation to use.
-
export JAVA_HOME=/usr/local/jdk1.8.0_102
注:每个配置文件的第一个代码块为本人自己电脑所配置