分享

Hadoop1.x安装配置文件及参数说明

pig2 2014-2-22 16:06:10 发表于 常识型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 19768
本帖最后由 pig2 于 2014-3-2 02:42 编辑
阅读本文可以带着下面问题:
1.hadoop安装配置那些文件?
2.配置文件的配置参数,该如何设置?
3.Core-site.xml配置文件的作用是什么?
4.hdfs-site.xml 配置文件的作用是什么?
5.Mapred-site.xml 配置文件的作用是什么?
6.提供的默认端口是否可以改变?

此配置文件是针对Hadoop伪分布安装过程:Hadoop单机环境搭建指南(ubuntu)的文件说明:
一、常用文件及参数说明
Core-site.xml       配置Common组件的属性

hdfs-site.xml         配置hdfs参数,比如备份数目,镜像存放路径

Mapred-site.xml     配置map-reduce组件的属性

1.conf/core-site.xml
  1. <configuration>
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://localhost:9000</value>
  5. </property>
  6. </configuration>
复制代码
fs.default.name:代表配置NN节点地址和端口号

hdfs://localhost:9000:其中localhost替换为ip或则映射主机名


2.conf/hdfs-site.xml:
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/home/work/hadoop_tmp</value>
  9. </property>
  10. </configuration>
复制代码
说明:
dfs.replication:hdfs数据块的复制份数,默认3,理论上份数越多跑数速度越快,但是需要的存储空间也更多。有钱人可以调5或者6。
上面alue值为1,代表是一份。因为安装的时候,如果是伪分布,则此值为1

hadoop.tmp.dir:
指定name镜像文件存放目录,如不指定则
默认为core-site中配置的tmp目录


3.conf/mapred-site.xml
  1. <configuration>
  2. <property>
  3. <name>mapred.job.tracker</name>
  4. <value>localhost:9001</value>
  5. </property>
  6. </configuration>
复制代码
说明:
mapred.job.tracker:连接jobtrack服务器的配置项,默认不写,是localhost,map数1,reduce数1

---------------------------------------------------------------------------------------------------------------------------------------------------

看到另外的帖子对此解释的也很好,贴出来给大家欣赏:


   1. 在conf/hadoop-env.sh文件中增加:
  1. export JAVA_HOME=/home/Java/jdk1.6
复制代码



   2.  在conf/core-site.xml文件中增加如下内容:
<!--  fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。-->
  1. <property>
  2.               <name>fs.default.name</name>
  3.               <value>hdfs://localhost:9000</value>
  4.         </property>
复制代码
<!—hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配                     置namenode和datanode的存放位置,默认就放在这个路径中-->
  1.   <property>
  2.       <name>hadoop.tmp.dir</name>
  3.        <value>/home/hdfs/tmp</value>
  4.    </property>
复制代码
3.  在conf/hdfs-site.xml中增加如下内容:
       <!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)-->
  1. <property>
  2.          <name>dfs.replication</name>
  3.          <value>1</value>
  4.      </property>
复制代码
<!--  dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这             个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆 盖。dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。-->
  1.        <property>
  2.              <name>dfs.name.dir</name>
  3.              <value>/home/hdfs/name</value>
  4.         </property>
  5.        <property>
  6.         <name>dfs.data.dir</name>
  7.         <value>/home/hdfs/data</value>
  8.    </property>
复制代码
<!—解决:org.apache.hadoop.security.AccessControlException:Permission                                                 denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x 。
因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/hadoop ,  由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方法为:放开 hadoop 目录的权限, 命令如下 :$ hadoop fs -chmod 777 /user/hadoop -->
  1.       <property>
  2.                    <name>dfs.permissions</name>
  3.                    <value>false</value>
  4. <description> If "true", enable permission checking in HDFS. If "false", permission checking is turned off,   but all other behavior is unchanged. Switching from one parameter value to   the other does   not change the mode, owner or group of files or directories
  5.               </description>
  6.         </property>
复制代码
4.  在conf/mapred-site.xml中增加如下内容:
  1. <!-- mapred.job.tracker -JobTracker的主机(或者IP)和端口。-->
  2.       <property>
  3.        <name>mapred.job.tracker</name>
  4.       <value>localhost:9001</value>
  5. </property>
复制代码
---------------------------------------------------------------------------------------------------------------------------------------------------
上面是对常用文件和配置项目的说明,下面详细说一下。
二、详细参数说明

因为我们在配置文件的时候,配置文件都是空的,所以我们该如何从网上获取配置文件可以,
    浏览apache官网,三个配置文件链接如下:
   http://hadoop.apache.org/common/docs/r0.20.2/core-default.html
   http://hadoop.apache.org/common/docs/r0.20.2/hdfs-default.html
   http://hadoop.apache.org/common/docs/r0.20.0/mapred-default.html
   这里是浏览hadoop当前版本号的默认配置文件,其他版本号,要另外去官网找。
其中第一个方法找到默认的配置是最好的,因为每个属性都有说明,可以直接使用。
另外,core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置。
常用的端口配置对于下面端口我们是可以只定义的,仅供参考。
HDFS端口
参数描述默认配置文件例子值
fs.default.namenamenode RPC交互端口9000core-site.xmlhdfs://master:8020/
dfs.http.address NameNode web管理端口50070 hdfs-site.xml 0.0.0.0:50070
dfs.datanode.addressdatanode 控制端口50010 hdfs-site.xml 0.0.0.0:50010
dfs.datanode.ipc.addressdatanode的RPC服务器地址和端口 50020hdfs-site.xml0.0.0.0:50020
dfs.datanode.http.addressdatanode的HTTP服务器和端口 50075hdfs-site.xml 0.0.0.0:50075

MR端口
参数描述默认 配置文件例子值
mapred.job.trackerjob tracker交互端口 9001mapred-site.xmlhdfs://master:8021/
mapred.job.tracker.http.addressjob tracker的web管理端口50030mapred-site.xml 0.0.0.0:50030
mapred.task.tracker.http.addresstask tracker的HTTP端口50060mapred-site.xml0.0.0.0:50060

其他端口
参数描述 默认 配置文件例子值
dfs.secondary.http.address secondary NameNode web管理端口 50090hdfs-site.xml0.0.0.0:28680

集群目录配置
参数描述 默认 配置文件例子值
dfs.name.dirname node的元数据,以,号隔开,hdfs会把元数据
冗余复制到这些目录,一般这些目录是不同的块
设备,不存在的目录会被忽略掉
{hadoop.tmp.dir}
/dfs/name
hdfs-site.xm/hadoop/hdfs/name
dfs.name.edits.dir node node的事务文件存储的目录,以,号隔开,
hdfs会把事务文件冗余复制到这些目录,一般
这些目录是不同的块设备,不存在的目录会被
忽略掉
${dfs.name.dir}hdfs-site.xm${dfs.name.dir}
fs.checkpoint.dirsecondary NameNode的元数据以,号隔开,hdfs
会把元数据冗余复制到这些目录,一般这些目
录是不同的块设备,不存在的目录会被忽略掉
${hadoop.tmp.dir}
/dfs/namesecondary
core-site.xml/hadoop/hdfs/namesecondary
fs.checkpoint.edits.dirsecondary NameNode的事务文件存储的目录,
以,号隔开,hdfs会把事务文件冗余复制到这些目录
${fs.checkpoint.dir}core-site.xml${fs.checkpoint.dir}
hadoop.tmp.dir临时目录,其他临时目录的父目录/tmp/hadoop-${user.name}core-site.xml/hadoop/tmp/hadoop-${user.name}
dfs.data.dirdata node的数据目录,以,号隔开,hdfs会把数据
存在这些目录下,一般这些目录是不同的块设备,
不存在的目录会被忽略掉
${hadoop.tmp.dir}
/dfs/data
hdfs-site.xm
/hadoop/hdfs/data1/data,
/hadoop/hdfs/data2/data
mapred.local.dirMapReduce产生的中间数据存放目录,以,号隔开,
hdfs会把数据存在这些目录下,一般这些目录是
不同的块设备,不存在的目录会被忽略掉
${hadoop.tmp.dir}
/mapred/local
mapred-site.xml
/hadoop/hdfs/data1/mapred/local,
/hadoop/hdfs/data2/mapred/local
mapred.system.dirMapReduce的控制文件
${hadoop.tmp.dir}
/mapred/system
mapred-site.xml/hadoop/hdfs/data1/system

其他配置
参数描述 默认 配置文件例子值
dfs.support.append 支持文件append,主要是支持hbase falsehdfs-site.xmltrue
dfs.replication 文件复制的副本数,如果创建时不指定这个参数,
就使用这个默认值作为复制的副本数
3hdfs-site.xml2


-------------------------------------------------------------------------------------------------------------------------------------------------三、hadoop配置文件说明

1、dfs.hosts 记录即将作为datanode加入集群的机器列表
2、mapred.hosts 记录即将作为tasktracker加入集群的机器列表
3、dfs.hosts.exclude mapred.hosts.exclude 分别包含待移除的机器列表
4、master 记录运行辅助namenode的机器列表
5、slave 记录运行datanode和tasktracker的机器列表
6、hadoop-env.sh 记录脚本要用的环境变量,以运行hadoop
7、core-site.xml hadoop core的配置项,例如hdfs和mapreduce常用的i/o设置等
8、hdfs-site.xml hadoop守护进程的配置项,包括namenode、辅助namenode和datanode等
9、mapred-site.xml mapreduce守护进程的配置项,包括jobtracker和tasktracker
10、hadoop-metrics.properties 控制metrics在hadoop上如何发布的属性
11、log4j.properties 系统日志文件、namenode审计日志、tasktracker子进程的任务日志的属性








来自群组: Hadoop技术组

已有(8)人评论

跳转到指定楼层
ZWSciscoccie 发表于 2014-4-5 19:20:23
回复

使用道具 举报

pig2 发表于 2014-4-27 10:58:50
这里在补充一些:
  Hadoop有很多参数,其默认配置大多数仅适用于standalone模式,虽然大多情况下在完全分布式(Fully distributed)模式中也没有问题,但距最优化的运行模式去相去甚远。在生产环境中通常需要调整的参数有:

  1. dfs.name.dir —— NameNode节点用于存储HDFS元数据的本地目录,官方建议为/home/hadoop/dfs/name;

  2. dfs.data.dir —— DataNode节点用于存储HDFS文件数据块的本地目录,官方建议为/home/hadoop/dfs/data;

  3. mapred.system.dir —— HDFS中用于存储共享的MapReduce系统文件的目录,官方建议为/hadoop/mapred/system;

  4. mapred.local.dir —— TaskNode节点用于存储临时数据的本地文件目录;

  5. mapred.tasktracker.{map|reduce}.tarks.maximum —— 在TaskTracker上可同时运行的的map或reduce任务的最大数目;

  6. hadoop.tmp.dir —— Hadoop临时目录;

  7. mapred.child.java.opts —— 每个子任务可申请使用的heap大小;官方建议为-Xmx512m;

  8. mapred.reduce.tasks —— 每任务的reduce数量;

回复

使用道具 举报

shlmw 发表于 2014-10-13 15:45:51
3.conf/mapred-site.xml

    <configuration>
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
    </property>
    </configuration>

复制代码
说明:
mapred.job.tracker:连接jobtrack服务器的配置项,默认不写,是localhost,map数1,reduce数1
----------------------------------------------------------------------------
map 数,reduce数 怎么设置的?
回复

使用道具 举报

pig2 发表于 2014-10-13 15:51:31
回复

使用道具 举报

about_1 发表于 2019-1-25 16:52:01

点评

1.x时间太长了,失效正常的,建议看2.x和3.x.目前官网都有文档的  发表于 2019-1-26 07:40
回复

使用道具 举报

about_1 发表于 2019-1-28 08:46:01
about_1 发表于 2019-1-25 16:52
http://hadoop.apache.org/common/docs/r0.20.2/core-default.html
   http://hadoop.apache.org/commo ...

好的,谢谢提醒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条