本帖最后由 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
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
复制代码
fs.default.name:代表配置NN节点地址和端口号
hdfs://localhost:9000:其中localhost替换为ip或则映射主机名
2.conf/hdfs-site.xml: <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/work/hadoop_tmp</value>
</property>
</configuration> 复制代码
说明:
dfs.replication:hdfs数据块的复制份数,默认3,理论上份数越多跑数速度越快,但是需要的存储空间也更多。有钱人可以调5或者6。
上面alue值为1,代表是一份。因为安装的时候,如果是伪分布,则此值为1
hadoop.tmp.dir:
指定name镜像文件存放目录,如不指定则
默认为core-site中配置的tmp目录
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
---------------------------------------------------------------------------------------------------------------------------------------------------
看到另外的帖子对此解释的也很好,贴出来给大家欣赏:
1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/jdk1.6 复制代码
2. 在conf/core-site.xml文件中增加如下内容:
<!-- fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。--><property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property> 复制代码
<!—hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中--> <property>
<name>hadoop.tmp.dir</name>
<value>/home/hdfs/tmp</value>
</property> 复制代码
3. 在conf/hdfs-site.xml中增加如下内容:
<!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)--> <property>
<name>dfs.replication</name>
<value>1</value>
</property> 复制代码
<!-- dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这 个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆 盖。dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。--> <property>
<name>dfs.name.dir</name>
<value>/home/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hdfs/data</value>
</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 --> <property>
<name>dfs.permissions</name>
<value>false</value>
<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
</description>
</property> 复制代码
4. 在conf/mapred-site.xml中增加如下内容:<!-- mapred.job.tracker -JobTracker的主机(或者IP)和端口。-->
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
复制代码
---------------------------------------------------------------------------------------------------------------------------------------------------
上面是对常用文件和配置项目的说明,下面详细说一下。
二、详细参数说明
因为我们在配置文件的时候,配置文件都是空的,所以我们该如何从网上获取配置文件可以,
常用的端口配置 对于下面端口我们是可以只定义的,仅供参考。
HDFS端口
参数 描述 默认 配置文件 例子值 fs.default.name namenode RPC交互端口 9000 core-site.xml hdfs://master:8020/ dfs.http.address NameNode web管理端口 50070 hdfs-site.xml 0.0.0.0:50070 dfs.datanode.address datanode 控制端口 50010 hdfs-site.xml 0.0.0.0:50010 dfs.datanode.ipc.address datanode的RPC服务器地址和端口 50020 hdfs-site.xml 0.0.0.0:50020 dfs.datanode.http.address datanode的HTTP服务器和端口 50075 hdfs-site.xml 0.0.0.0:50075
MR端口
参数 描述 默认 配置文件 例子值 mapred.job.tracker job tracker交互端口 9001 mapred-site.xml hdfs://master:8021/ mapred.job.tracker.http.address job tracker的web管理端口 50030 mapred-site.xml 0.0.0.0:50030 mapred.task.tracker.http.address task tracker的HTTP端口 50060 mapred-site.xml 0.0.0.0:50060
其他端口
参数 描述 默认 配置文件 例子值 dfs.secondary.http.address secondary NameNode web管理端口 50090 hdfs-site.xml 0.0.0.0:28680
集群目录配置 参数 描述 默认 配置文件 例子值 dfs.name.dir name 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.dir secondary NameNode的元数据以,号隔开,hdfs
会把元数据冗余复制到这些目录,一般这些目
录是不同的块设备,不存在的目录会被忽略掉 ${hadoop.tmp.dir}
/dfs/namesecondary
core-site.xml /hadoop/hdfs/namesecondary fs.checkpoint.edits.dir secondary 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.dir data node的数据目录,以,号隔开,hdfs会把数据
存在这些目录下,一般这些目录是不同的块设备,
不存在的目录会被忽略掉 ${hadoop.tmp.dir}
/dfs/data
hdfs-site.xm /hadoop/hdfs/data1/data,
/hadoop/hdfs/data2/data
mapred.local.dir MapReduce产生的中间数据存放目录,以,号隔开,
hdfs会把数据存在这些目录下,一般这些目录是
不同的块设备,不存在的目录会被忽略掉 ${hadoop.tmp.dir}
/mapred/local
mapred-site.xml /hadoop/hdfs/data1/mapred/local,
/hadoop/hdfs/data2/mapred/local
mapred.system.dir MapReduce的控制文件 ${hadoop.tmp.dir}
/mapred/system
mapred-site.xml /hadoop/hdfs/data1/system
其他配置 参数 描述 默认 配置文件 例子值 dfs.support.append 支持文件append,主要是支持hbase false hdfs-site.xml true dfs.replication 文件复制的副本数,如果创建时不指定这个参数,
就使用这个默认值作为复制的副本数 3 hdfs-site.xml 2
-------------------------------------------------------------------------------------------------------------------------------------------------三、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技术组