java程序员的大数据之路(12):Hadoop的守护进程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/K_Ohaha/article/details/78660245

关键属性

Hadoop守护进程的关键属性大多标记为final,使作业的配置无法覆盖。

典型的core-site.xml配置文件

<?xml version="1.0">
<!-- core-site.xml -->
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://namenode/</value>
        <final>true</final>
    </property>
</configuration>

典型的hdfs-site.xml配置文件

<?xml version="1.0">
<!-- hdfs-site.xml -->
<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/disk1/hdfs/name,/remote/hdfs/name</value>
        <final>true</final>
    </property>

    <property>
        <name>dfs.data.dir</name>
        <value>/disk1/hdfs/data,/remote/hdfs/data</value>
        <final>true</final>
    </property>

    <property>
        <name>fs.checkpoint.dir</name>
        <value>/disk1/hdfs/namesecondary,/disk2/hdfs/namesecondary</value>
        <final>true</final>
    </property>
</configuration>

典型的mapred-site.xml配置文件

<?xml version="1.0">
<!-- mapred-site.xml -->
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>jobtracker:8021</value>
        <final>true</final>
    </property>

    <property>
        <name>mapred.local.dir</name>
        <value>/disk1/mapred/local,/disk2/mapred/local</value>
        <final>true</final>
    </property>

    <property>
        <name>mapred.system.dir</name>
        <value>/tmp/hadoop/mapred/system</value>
        <final>true</final>
    </property>

    <property>
        <name>mapred.tasktracker.map.tasks.maximum</name>
        <value>7</value>
        <final>true</final>
    </property>


    <property>
        <name>mapred.tasktracker.reduce.tasks.maximum</name>
        <value>7</value>
        <final>true</final>
    </property>

    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx400m</value>
    </property>
</configuration>

HDFS

运行HDFS需要将一台机器指定为namenode。上文中,fs.default.name描述HDFS文件系统的URI,其主机是namenode的主机名称或IP地址,端口号是namenode监听RPC的端口,默认是8020。
fs.default.name也指定了默认文件系统,可以解析相对路径。
属性项dfs.name.dir指定一系列目录来供namenode存储永久性的文件系统元数据。通常情况下,配置dfs.name.dir,将namenode的元数据写到一个(或两个)本地磁盘和一个远程磁盘之中。
属性项dfs.data.dir指定datanode存储数据的目录。dfs.name.dir描述一系列目录,其目的是支持冗余备份。但是dfs.data.dir描述一系列目录的目的是提高性能。
最后,还需要指定辅助namenode存储文件系统的检查点目录。属性项fs.checkpoint.dir指定一系列目录来保存检查点。与namenode类似,检查点映像文件也会分包存储在各个目录之中。

MapReduce

运行MapReduce需要用户指定一台机器为jobtracker。设置mapred.job.tracker属性,指定jobtracker的主机名或IP地址以及它在监听的端口。该属性并非URI格式,而是“主机:端口”格式,默认端口号为8021。
MapReduce作业在执行过程中,产生的中间数据和工作文件被写到临时本地文件中。这个数据量可能非常大,所以本地临时存储空间必须足够大。在设置mapred.local.dir属性时,使用一个逗号分隔的目录名列表,用户最好将这些目录分散到所以本地磁盘,以提升磁盘I/O效率。
属性项mapred.system.dir指定存储各个tasktracker共享文件的目录。
最后,属性mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum表示在tasktracker机器上有多少核是可用的,mapred.child.java.opts表示tasktracker子JVM的有效内存大小。

地址和端口

Hadoop守护进程一般同时运行RPC和HTTP两个服务器。RPC服务器支持守护进程间的通信,HTTP服务器则提供与用户交互的Web页面。当网络地址被设置为0.0.0.0时,Hadoop将与本机上的所有地址绑定。端口号0表示服务器会选择一个空闲的端口号,但这种做法与集群范围的防火墙策略不兼容,所以不推荐。

RPC服务器属性

属性名称 默认值 说明
fs.default.name file:// 被设为一个HDFS的URI时,该属性描述namenode的RPC服务器地址和端口,默认端口号是8020
dfs.datanode.ipc.address 0.0.0.0:50020 datanode的RPC服务器地址和端口
mapred.job.tracker local 被设为主机名和端口号时,该属性指定jobtracker的RPC服务器地址和端口号,默认端口号是8021
mapred.task.tracker.report.address 127.0.0.1:0 tasktracker的RPC服务器地址和端口号。tasktracker的子JVM利用它和tasktracker通信。

HTTP服务器的属性

属性名称 默认值 说明
mapred.job.tracker.http.address 0.0.0.0:50030 jobtracker的HTTP服务器地址和端口
mapred.task.tracker.http.addresss 0.0.0.0:50060 tasktracker的HTTP服务器地址和端口
dfs.http.address 0.0.0.0:50070 namenode的HTTP服务器地址和端口
dfs.datanode.http.address 0.0.0.0:50075 datanode的HTTP服务器地址和端口
dfs.secondary.http.address 0.0.0.0:50090 辅助namenode的HTTP服务器地址和端口

如果有多个网络接口时,可以选择其中某一个网络接口作为各个datanode和tasktracker的IP地址。可以通过修改dfs.datanode.dns.interface和mapred.tasktracker.dns.interface来变更网络接口的地址。

猜你喜欢

转载自blog.csdn.net/K_Ohaha/article/details/78660245