概述
目录
1 . slaves
2 . core-site.xml
3 . hdfs-site.xml
4 . mapred-site.xml:(注意要将mapred-site.xml.template重命名为 .xml的文件)
5.Yarn-Site.xml
6 . hadoop-env.sh
1 . slaves
把所有从节点的主机名写到这儿就可以,这是告诉hadoop进程哪些机器是从节点。每行写一个,例如:
hadoop02
hadoop03
hadoop04
注:前提是你已经为每个节点进行了hostname的命名。而且每个节点的hosts文件你修改了本地dns的指向,让这些主机指向约定好的IP。然后每个节点的hosts文件保持同步。
2 . core-site.xml
<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
注:每个配置文件的第一个代码块为本人自己电脑所配置 , 第二个代码块为参考其他博客
关于Hadoop的三大核心技术 :
分布式文件管理系统HDFS,分布式计算框架MapReduce,以及分布式资源管理调度平台YARN的文章请参考:
HDFS个人浅谈 : https://blog.csdn.net/weixin_35353187/article/details/82047892
MapReduce个人浅谈 : https://blog.csdn.net/weixin_35353187/article/details/82108388
YARN个人浅谈 : https://blog.csdn.net/weixin_35353187/article/details/82112174
Hadoop的各配置文件的配置以及参数的意义请参考文章 :
Hadoop的各个配置文件的配置 : https://blog.csdn.net/weixin_35353187/article/details/81780439
最后
以上就是开心煎蛋为你收集整理的彷徨 | Hadoop各配置文件的配置及其作用的全部内容,希望文章能够帮你解决彷徨 | Hadoop各配置文件的配置及其作用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复