一、Hadoop主要配置文件的作用
ps:有兴趣可以了解一下 HDFS 的配置文件及目录结构(这也是一开始接触一个新东西的一个重要重要的环节)
1,core-site.xml (Hadoop 核心配置,例如HDFS、MapReduce和YARN常用的I/O设置等)
属性 | 含义 |
fs.defaultFS | 描述集群中NameNode节点的URI(包括协议、主机名称/ip地址、端口号) |
● 文件系统的名字,通常是NameNode的hostname与port。 主机是NameNode的主机名称或IP地址,端口是NameNode监听RPC的端口,如果没有指定,默认是8020。 ● 集群里面的每一台机器都需要知道NameNode的地址,DataNode会先在NameNode上注册,这样它们的数据才可以被使用。 ● 独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。
例子:hdfs://master:9000
core-site.xml 主要配置
|
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 默认的文件系统,一般将其改为hdfs,描述集群中NameNode节点的URI(包括协议、主机名称/ip地址、端口号),也指定了namenode要放在哪台机器上 --> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.238.100:8020</value> </property> <!-- 临时数据存放的位置 --> <property> <name>hadoop.tmp.dir</name> <value>/export/servers/hadoop-3.1.3/hadoopDatas/tempDatas</value> </property> <!-- 缓冲区大小,实际工作中根据服务器性能动态调整 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 10080 相当与7天 60*24*7--> <property> <name>fs.trash.interval</name> <value>10080</value> </property> </configuration>
2,hdfs-site.xml (Hadoop守护(守护是后台的意思)进程的配置项,包括namenode、辅助namenode(即SecondNameNode)和datanode等)
✿ hadoop 守护进程一般同时运行RPC 和HTTP两个服务器,RPC服务器支持守护进程间的通信,HTTP服务器则提供与用户交互的Web页面。
需要分别为各个服务器配置网络地址和端口号。
hdfs-site.xml 主要配置
|
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- secondaryNameNode的访问地址 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>node01:50090</value> </property> <!-- NameNode的访问地址 --> <property> <name>dfs.namenode.http-address</name> <value>node01:50070</value> </property> <!-- df -lh 查看LINUX下磁盘的挂载路径 --> <!-- 定义nameNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后有多个目录用,进行分割 如 file:///one,file:///two fsimage的存放位置 --> <property> <name>dfs.namenode.name.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value> <description> namenode 存放name table(fsimage)本地目录 </description> </property> <!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <property> <name>dfs.datanode.data.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value> <description> datanode 存放文件块的本地目录 </description> </property> <!-- 定义我们的元数据的操作日志的存放位置 edits的存放位置 --> <property> <name>dfs.namenode.edits.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits</value> <description> namenode 存放 transaction file(edits)本地目录</description> </property> <!-- 元数据检查点保存的位置 --> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name</value> </property> <!-- edits文件的检查点保存位置 --> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value> </property> <!-- 文件的副本数,一份文件保存多少份 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!-- hdfs的权限控制 --> <property> <name>dfs.permissions</name> <value>false</value> </property> <!-- 文件存储的block块大小 --> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> </configuration>
3,mapred-site.xml ( MapReduce守护进程的配置项,包括作业历史服务器 )
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定我们mapreduce运行在yarn集群上面 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 开启mapreduce的小任务模式,用于调优 --> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <!-- 配置mapreduce 的jobhistory 可以查看我们所有运行完成的任务的一些情况 --> <property> <name>mapreduce.jobhistory.address</name> <value>node01:10020</value> </property> <!-- 配置mapreduce 的jobhistory的访问地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node01:19888</value> </property> </configuration>
4,yarn-site.xml ( YARN守护进程的配置项,包括资源管理器、web应用代理服务器和节点管理器 )
<?xml version="1.0"?> <configuration> <!--指定我们的resourceManager运行在哪台机器上面 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node01</value> </property> <!-- NodeManager的通信方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 日志的聚合功能,方便我们查看任务执行完成之后的日志记录 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 聚合日志的保存时长 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>