csee1601 / big_data_project

This is the project for Big Data class at HUST CSEE1601 by Yongxin Xu, Xiangyu Ye and Jiajie Chen
2 stars 1 forks source link

Hadoop配置文件 #12

Open VinStarry opened 5 years ago

VinStarry commented 5 years ago

任务

将对4个Hadoop集群特定配置文件3个守护进程文件配置进行说明。

Hadoop集群特定配置文件

Hadoop守护进程文件

VinStarry commented 5 years ago

Hadoop的配置文件与守护进程

Hadoop配置文件

Hadoop集群中每一个计算节点都有自己的配置文件,集群特定的配置文件如下:

配置文件作用
core-site.xml核心Hadoop配置文件
hdfs-site.xmlHDFS属性配置文件
mapred-site.xmlMapReduce属性配置文件
yarn.xmlYARN属性配置文件

Hadoop守护进程

除了上面提到的配置文件,Hadoop管理员还可以配置下面的脚本文件来配置Hadoop集群

这些脚本文件负责设置以下的属性

管理员可以使用下表的守护进程配置变量来配置各个守护进程

守护进程环境变量
名称节点HADOOP_NAMENODE_OPTS
数据节点HADOOP_DATANODE_OPTS
辅助名称节点HADOOP_SECONDARYNAMENODE_OPTS
资源管理器YARN_RESOURCEMANAGER_OPTS
节点管理器YARN_NODEMANAGER_OPTS

配置文件明细

core-default.xml和core-site.xml配置的Hadoop系统的一些通用属性,网址点击左侧,一些摘要也可以参阅《深入理解Hadoop》第54-55页

hdfs-default.xml和hdfs-site.xml用于配置HDFS属性

mapred-site.xml配置资源管理器(Resource Manager,调度器组件等)

yarn-site.xml配置YARN框架提供的通用服务进程属性,如Resource Manager和Node Manager

注意

我们在查阅网上配置集群的时候,一定要对应的找到每一条关键配置语句的意义!

VinStarry commented 5 years ago

仅仅列出了这些东西是干什么的,明细较为复杂,还没有仔细地去看,用到哪个就查哪个吧。

csunclechen commented 5 years ago

core-site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://xu:9000</value>
        <description>
            fs.default.name用于设置默认文件系统的URL,URL用于确定文件系统的主机, 端口等。
            本集群系统中hdfs://xu:9000为集群中主节点namenode的URL。
        </description>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop/data/nameNode</value>
            <description>
                dis.namenode.dir用于确定在本地文件系统上的DFS名称节点应存储名称表(fsimage)。                
                fsimage的内容会被存储到以逗号分隔的列表的目录中,然后在所有的目录中复制名称表目录,用于冗余。
                fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
            </description>
    </property>

    <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/data/dataNode</value>
            <description>
                dis.datanode.dir用于确定datanode在本地文件系统上的DFS数据节点应存储名称表。
            </description>
    </property>

    <property>
            <name>dfs.replication</name>
            <value>2</value>
            <description>
                dfs.replication用于设置hdfs副本系数。
            </description>
    </property>
    <property>
            <name>dfs.datanode.handler.count</name>
            <value>10</value>
            <description>
                datanode上用于处理RPC的线程数。
            </description>
    </property>
    <property>
            <name>dfs.block.size</name>
            <value>33554432</value>
            <description>
                HDFS中数据block大小。
            </description>
    </property>
    <property>
        <name>dfs.namenode.handler.count</name>
            <value>30</value>
            <description>
                namenode中用于处理RPC的线程数。
            </description>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>
            使用yarn运行mapreduce,作为资源管理框架。
        </description>
    </property>
    <property>
         <name>io.sort.factor</name>
         <value>5</value>
        <description>
            执行merge sort时,每次同时打开spill文件的数量。
        </description>
    </property>
    <property>
    <name>mapred.reduce.parallel.copies</name>
    <value>20</value>
        <description>
            Reduce shuffle阶段copier线程数。
        </description>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.resource.mb</name>
        <value>8192</value>
        <description>
            MR ApplicationMaster占用的内存量
        </description>
    </property>

    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>8192</value>
        <description>
            每个Map Task需要的内存量
        </description>
    </property>

    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>8192</value>
        <description>
            每个Reduce Task需要的内存量
        </description>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.acl.enable</name>
        <value>0</value>
        <description>
            类似客户端和管理员等的请求这样面向用户的API,查看访问的ACL决定谁可以通过RPC接口查看一些所有应用程序的相关细节,WEB UI服务及WEB服务。
        </description>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>xu</value>
        <description>
            设置resourcemanager的主机名称。
        </description>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>
            NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce。
        </description>
    </property>

    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>8196</value>
        <description>
            NodeManager总的可用物理内存。
            注意,该参数是不可修改的,一旦设置,整个运行过程中不可动态修改。
        </description>
    </property>

    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8196</value>
        <description>
            单个可申请的最大内存资源量。比如设置为1536,则运行MapRedce作业时,每个Task最多可申请1536MB内存。
        </description>
    </property>

    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>64</value>
        <description>
            单个可申请的最小内存资源量。比如设置为128,则运行MapRedce作业时,每个Task最少可申请128MB内存。
        </description>
    </property>

    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>
            是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
        </description>
    </property>
</configuration>
csunclechen commented 5 years ago

在修改mapreduce任务的内存时,在mapred-site.xml中修改mapreduce.reduce.memory.mb或者mapreduce.map.memory.mb后记得注意yarn-site.xml中yarn.scheduler.maximum-allocation-mb的值。 前者不能超过后者。因为是用yarn来运行mapreduce的。