共计 16424 个字符,预计需要花费 42 分钟才能阅读完成。
依赖项
Java
1. 从 http://www.Oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载 tar.gz 格式的,32 位和 64 位机器对应下载,这里下的是 64 位的
wget http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.tar.gz
2. 解压到 /usr/local
tar -jxvf jdk-7u51-linux-x64.tar.gz -C /usr/local
3. 配置符号链接:cd /usr/local; ln -snf jdk1.7.0_45/ jdk
4. 配置环境变量到~/.bashrc
export JAVA_HOME=”/usr/local/jdk”
export PATH=”$JAVA_HOME/bin:$PATH”
5. 命令行下使用 java、javax 命令判断是否安装成功。
6. 在其他机器上
Hosts
所有的节点都修改 /etc/hosts,使彼此之间都能把主机名解析为 ip
————————————– 分割线 ————————————–
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm
Hadoop 集群上使用 Lzo 压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm
————————————– 分割线 ————————————–
SSH 无密码登陆
首先要配置本机的 SSH 服务器,运行 ps -e | grep ssh,查看是否有 sshd 进程,如果没有,说明 server 没启动,通过 /etc/init.d/ssh -start 启动 server 进程,如果提示 ssh 不存在 那么就是没安装 server。Ubuntu 下通过 sudo apt-get install openssh-server 命令安装即可。
(1)生成当前用户的 SSH 公钥。
$ ssh-keygen -t rsa -P ”
它在 /home/[你当前登录的用户名] 下生成.ssh 目录(root 用户即是在 /root 目录下),.ssh 下有 id_rsa 和 id_rsa.pub。id_rsa.pub 即是本地 SSH 生成的公钥文件。客户端机器将 id_rsa.pub 文件添加到自己的~/.ssh/authorized_keys 文件中即可免密码登录到本机。
(2)将~/.ssh/id_rsa.pub 添加到目标机器的~/.ssh/authorized_keys 文件中
•如果是本机的操作,则使用
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将要登录的机器的公钥添加到本地的认证密钥库中。注意这里必须要用 >> 操作符进行追加操作。
使用
ssh localhost
命令即可免密码登录到本地。
•如果是将自己的公钥发送到别的机器上。
可以使用
scp ~/.ssh/id_rsa.pub root@172.24.253.2:.ssh/id_rsa.pub
这条 scp 命令进行文件上传操作。
安装 Hadoop
下载 Hadoop
最新版本 hadoop-2.4.0 安装包为 hadoop-2.4.0.tar.gz
下载官网地址 :http://www.apache.org/dyn/closer.cgi/hadoop/common/
下载到 /opt/hadoop/source 目录下
wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.4.0/hadoop-2.4.0.tar.gz
解压目录
tar zxvf hadoop-2.4.0.tar.gz
最终是这样子:
环境配置项
配置环境变量:
vim /etc/profile
添加
export HADOOP_DEV_HOME=/opt/hadoop/source
export PATH=$PATH:$HADOOP_DEV_HOME/bin
export PATH=$PATH:$HADOOP_DEV_HOME/sbin
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/101693p2.htm
文件配置
配置之前,需要在 Cluster 文件系统创建以下文件夹,用于存放命名空间以及数据信息。
~/dfs/name
~/dfs/data
~/temp
这里要涉及到的配置文件有 7 个:
~/Hadoop-2.4.0/etc/hadoop/hadoop-env.sh
~/hadoop-2.4.0/etc/hadoop/yarn-env.sh
~/hadoop-2.4.0/etc/hadoop/slaves
~/hadoop-2.4.0/etc/hadoop/core-site.xml
~/hadoop-2.4.0/etc/hadoop/hdfs-site.xml
~/hadoop-2.4.0/etc/hadoop/mapred-site.xml
~/hadoop-2.4.0/etc/hadoop/yarn-site.xml
以上个别文件默认不存在的,可以复制相应的 template 文件获得。
~/ect/hadoop/hadoop-env.sh 与 yarn-env.sh
原文件中设置 Java 环境:export JAVA_HOME=${JAVA_HOME},如果你环境变量中未配置 JAVA_HOME, 那么这里 JAVA_HOME 设置指向你的 JAVA 配置路径。
譬如:export JAVA_HOME=”/usr/local/jdk”
~/etc/hadoop/slave
slaves(这个文件里面保存所有 slave 节点)
写入以下内容:
Slave1
Slave2
~/etc/hadoop/core-site.xml
在 configuration 节点里面添加属性
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
</property>
添加 httpfs 的选项
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
~/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.dataname.data.dir</name>
<value>file:/opt/hadoop/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
~/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Master:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
依赖项
Java
1. 从 http://www.Oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载 tar.gz 格式的,32 位和 64 位机器对应下载,这里下的是 64 位的
wget http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.tar.gz
2. 解压到 /usr/local
tar -jxvf jdk-7u51-linux-x64.tar.gz -C /usr/local
3. 配置符号链接:cd /usr/local; ln -snf jdk1.7.0_45/ jdk
4. 配置环境变量到~/.bashrc
export JAVA_HOME=”/usr/local/jdk”
export PATH=”$JAVA_HOME/bin:$PATH”
5. 命令行下使用 java、javax 命令判断是否安装成功。
6. 在其他机器上
Hosts
所有的节点都修改 /etc/hosts,使彼此之间都能把主机名解析为 ip
————————————– 分割线 ————————————–
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm
Hadoop 集群上使用 Lzo 压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm
————————————– 分割线 ————————————–
SSH 无密码登陆
首先要配置本机的 SSH 服务器,运行 ps -e | grep ssh,查看是否有 sshd 进程,如果没有,说明 server 没启动,通过 /etc/init.d/ssh -start 启动 server 进程,如果提示 ssh 不存在 那么就是没安装 server。Ubuntu 下通过 sudo apt-get install openssh-server 命令安装即可。
(1)生成当前用户的 SSH 公钥。
$ ssh-keygen -t rsa -P ”
它在 /home/[你当前登录的用户名] 下生成.ssh 目录(root 用户即是在 /root 目录下),.ssh 下有 id_rsa 和 id_rsa.pub。id_rsa.pub 即是本地 SSH 生成的公钥文件。客户端机器将 id_rsa.pub 文件添加到自己的~/.ssh/authorized_keys 文件中即可免密码登录到本机。
(2)将~/.ssh/id_rsa.pub 添加到目标机器的~/.ssh/authorized_keys 文件中
•如果是本机的操作,则使用
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将要登录的机器的公钥添加到本地的认证密钥库中。注意这里必须要用 >> 操作符进行追加操作。
使用
ssh localhost
命令即可免密码登录到本地。
•如果是将自己的公钥发送到别的机器上。
可以使用
scp ~/.ssh/id_rsa.pub root@172.24.253.2:.ssh/id_rsa.pub
这条 scp 命令进行文件上传操作。
安装 Hadoop
下载 Hadoop
最新版本 hadoop-2.4.0 安装包为 hadoop-2.4.0.tar.gz
下载官网地址 :http://www.apache.org/dyn/closer.cgi/hadoop/common/
下载到 /opt/hadoop/source 目录下
wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.4.0/hadoop-2.4.0.tar.gz
解压目录
tar zxvf hadoop-2.4.0.tar.gz
最终是这样子:
环境配置项
配置环境变量:
vim /etc/profile
添加
export HADOOP_DEV_HOME=/opt/hadoop/source
export PATH=$PATH:$HADOOP_DEV_HOME/bin
export PATH=$PATH:$HADOOP_DEV_HOME/sbin
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/101693p2.htm
Hadoop 测试
HDFS
格式化 NameNode
执行命令:hadoop namenode -format,可以格式化 NameNode。
l 可能错误:出现未知的主机名问题。
java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
at org.apache.hadoop.metrics.MetricsUtil.getHostName(MetricsUtil.java:91)
at org.apache.hadoop.metrics.MetricsUtil.createRecord(MetricsUtil.java:80)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.initialize(FSDirectory.java:73)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.<init>(FSDirectory.java:68)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:370)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:853)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:947)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:964)
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
************************************************************/
使用 hostname 命令,可以发现当前的主机名为 hadoop_master(Ubuntu 系统下在 /etc/hostname,CentOS 系统在 /etc/sysconfig/network 文件中设置),而 hosts 文件中信息如下:
127.0.0.1 localhost
127.0.1.1 ubuntu
192.168.198.133 Master
192.168.198.134 Slave1
即无法解析 hadoop_master 的信息,将 hosts 文件信息改为如下:
127.0.0.1 hadoop_master
127.0.1.1 ubuntu
192.168.198.133 Master
192.168.198.134 Slave1
Hadoop 集群
启动集群
~/sbin/start-all.sh 启动 Hadoop 集群,最好使用~/sbin/start-dfs.sh 与~/sbin/start-yarn.sh 来代替。
若正常启动:
NameNode 上使用 jps 查询会显示如下:
DataNode 上使用 jps 查询会显示如下:
.1 64 位平台不兼容错误
Starting namenodes on [Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop/source/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
在 /etc/profile 或者 ~/.bash_profile 中添加:
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_DEV_HOME}/lib/native
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_DEV_HOME/lib”
Command Lines
Hadoop
* start-all.sh 启动所有的 Hadoop 守护。包括 namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的 Hadoop
* start-mapred.sh 启动 Map/Reduce 守护。包括 Jobtracker 和 Tasktrack
* stop-mapred.sh 停止 Map/Reduce 守护
* start-dfs.sh 启动 Hadoop DFS 守护 Namenode 和 Datanode
* stop-dfs.sh 停止 DFS 守护
HDFS
1. 查看文件列表
查看 hdfs 中 /user/admin/hdfs 目录下的文件。
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs -ls /user/admin/hdfs
查看 hdfs 中 /user/admin/hdfs 目录下的所有文件(包括子目录下的文件)。
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs -lsr /user/admin/hdfs
2. 创建文件目录
查看 hdfs 中 /user/admin/hdfs 目录下再新建一个叫做 newDir 的新目录。
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs -mkdir /user/admin/hdfs/newDir
3. 删除文件
删除 hdfs 中 /user/admin/hdfs 目录下一个名叫 needDelete 的文件
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs -rm /user/admin/hdfs/needDelete
删除 hdfs 中 /user/admin/hdfs 目录以及该目录下的所有文件
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs -rmr /user/admin/hdfs
4. 上传文件
上传一个本机 /home/admin/newFile 的文件到 hdfs 中 /user/admin/hdfs 目录下
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs–put /home/admin/newFile /user/admin/hdfs/
5. 下载文件
下载 hdfs 中 /user/admin/hdfs 目录下的 newFile 文件到本机 /home/admin/newFile 中
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs –get /user/admin/hdfs/newFile /home/admin/newFile
6. 查看文件内容
查看 hdfs 中 /user/admin/hdfs 目录下的 newFile 文件
a. 进入 HADOOP_HOME 目录。
b. 执行 sh bin/hadoop fs–cat /home/admin/newFile
配置文件详解
Core
Hadoop-env.sh
记录脚本要用的环境变量,以运行hadoop。
文件位于 ~/hadoop/etc/hadoop/core-site.xml 目录下。
# 设置 JDK 的位置
export JAVA_HOME=${JAVA_HOME}
如果你的环境变量中没有设置JAVA_HOME,这里即可设置为:
exportJAVA_HOME=/home/java/jdk/jdk1.7.0_51
另外,鉴于 Hadoop 默认的是 32 位系统,还需要加上 64 位支持:
exportHADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_DEV_HOME}/lib/native
exportHADOOP_OPTS=“-Djava.library.path=$HADOOP_DEV_HOME/lib”
core-site.xml
该文件是 hadoop core的配置项,例如 hdfs 和mapreduce常用的 i/o 设置等,位于 ~/hadoop/etc/hadoop/core-site.xml 目录下。
属性 | 值 | 说明 |
fs.default.name | hdfs://master:9000 | 定义 master 的 URI 和端口 |
fs.checkpoint.dir | ${hadoop.tmp.dir}(默认) | SNN 的元数据以, 号隔开,hdfs 会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
fs.checkpoint.period | 1800 | 定义 ND 的备份间隔时间,秒为单位,只对 SNN 效,默认一小时 |
fs.checkpoint.size | 33554432 | 以日志大小间隔做备份间隔,只对 SNN 生效,默认 64M |
fs.checkpoint.edits.dir | ${fs.checkpoint.dir}(默认) | SNN 的事务文件存储的目录, 以, 号隔开,hdfs 会把事务文件冗余复制到这些目录 |
fs.trash.interval | 10800 | HDFS 垃圾箱设置,可以恢复误删除,分钟数,0 为禁用,添加该项无需重启 hadoop |
hadoop.tmp.dir | /tmp/hadoop | 临时文件夹,指定后需将使用到的所有子级文件夹都要手动创建出来,否则无法正常启动服务。 |
hadoop.http.filter.initializers | org.apache.hadoop.security. | 需要 jobtracker,tasktracker |
hadoop.http.authentication.type | simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# | 验证方式,默认为简单,也可自己定义 class, 需配置所有节点 |
hadoop.http.authentication.token.validity | 36000 | 验证令牌的有效时间, 需配置所有节点 |
hadoop.http.authentication.signature.secret | 默认可不写参数 | 默认不写在 hadoop 启动时自动生成私密签名, 需配置所有节点 |
hadoop.http.authentication.cookie.domain | domian.tld | http 验证所使用的 cookie 的域名,IP 地址访问则该项无效,必须给所有节点都配置域名才可以。 |
hadoop.http.authentication. simple.anonymous.allowed | true | false | 简单验证专用,默认允许匿名访问,true |
hadoop.http.authentication.kerberos.principal | HTTP/localhost@$LOCALHOST | Kerberos 验证专用,参加认证的实体机必须使用 HTTP 作为 K 的 Name |
hadoop.http.authentication.kerberos.keytab | /home/xianglei/hadoop.keytab | Kerberos 验证专用,密钥文件存放位置 |
hadoop.security.authorization | true|false | Hadoop 服务层级验证安全验证,需配合 hadoop-policy.xml 使用,配置好以后用 dfsadmin,mradmin -refreshServiceAcl 刷新生效 |
hadoop.security.authentication | simple | kerberos | hadoop 本身的权限验证,非 http 访问,simple 或者 kerberos |
hadoop.logfile.size | 1000000000 | 设置日志文件大小,超过则滚动新日志 |
hadoop.logfile.count | 20 | 最大日志数 |
io.bytes.per.checksum | 1024 | 每校验码所校验的字节数,不要大于 io.file.buffer.size |
io.skip.checksum.errors | true | false | 处理序列化文件时跳过校验码错误,不抛异常。默认 false |
io.serializations | org.apache.hadoop.io.serializer.WritableSerialization | 序列化的编解码器 |
io.seqfile.compress.blocksize | 1024000 | 块压缩的序列化文件的最小块大小,字节 |
io.compression.codecs | org.apache.hadoop.io.compress.DefaultCodec, org.apache.hadoop.io.compress.SnappyCodec | Hadoop 所使用的编解码器,gzip、bzip2 为自带,lzo 需安装 hadoopgpl 或者 kevinweil,逗号分隔。 |
io.compression.codec.lzo.class | com.hadoop.compression.lzo.LzoCodec | LZO 所使用的压缩编码器 |
io.file.buffer.size | 131072 | 用作序列化文件处理时读写 buffer 的大小 |
webinterface.private.actions | true | false | 设为 true,则 JT 和 NN 的 tracker 网页会出现杀任务删文件等操作连接,默认是 false |
topology.script.file.name | /hadoop/bin/RackAware.py | 机架感知脚本位置 |
topology.script.number.args | 1000 | 机架感知脚本管理的主机数, |
<?xml version=“1.0”?>
<?xml-stylesheet type=“text/xsl” href=“http://wsysisibeibei.blog.163.com/blog/configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>fs.default.name</name>
<!– fs.default.name –这是一个描述集群中 NameNode 结点的 URI( 包括协议、主机名称、端口号 ),集群里面的每一台机器都需要知道NameNode 的地址。DataNode结点会先在 NameNode 上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个 URI 跟DataNode交互,以取得文件的块列表。–>
<value>hdfs://localhost:9100</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!–
hadoop.tmp.dir 是 hadoop 文件系统依赖的基础配置,很多路径都依赖它。如果 hdfs-site.xml 中不配 置 namenode 和datanode的存放位置,默认就放在这个路径中 Hadoop 的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的 DataNode 启动不了,就删除此文件中的 tmp 目录即可。
不过如果删除了 NameNode 机器的此目录,那么就需要重新执行 NameNode 格式化的命令了。
–>
<value>/data/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
这里配置的是 HDFS 的地址和端口号。
Node
HDFS
hdfs-site.xml
hadoop守护进程的配置项,包括 namenode、辅助namenode 和datanode等。
该文件位于 ~/hadoop/etc/hadoop/ 目录下。
<?xml version=“1.0”?>
<?xml-stylesheet type=“text/xsl” href=“http://wsysisibeibei.blog.163.com/blog/configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>dfs.replication</name>
<!–
dfs.replication –它决定着 系统里面的文件块的数据备份个数。
对于一个实际的应用,它应该被设为3(这个 数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。
少于三个的备份,可能会影响到数据的 可靠性 ( 系统故障时,也许会造成数据丢失)
–>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<!–
dfs.name.dir – 这是 NameNode 结点存储 hadoop 文件系统信息的本地系统路径。
这个值只对 NameNode 有效,DataNode并不需要使用到它。
上面对于 /temp 类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。
–>
<value>/home/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<!– dfs.data.dir –
这是 DataNode 结点被指定要存储数据的本地文件系统路径。
DataNode结点上 的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。
但如果每台机器上的这 个路径都是统一配置的话,会使工作变得简单一些。
默认的情况下,它的值 hadoop.tmp.dir, 这 个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆 盖。
–>
<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>
</configuration>
在 Hadoop 中HDFS的默认备份方式为3,这里将其改为1。
Map/Reduce
mapred-site.xml
mapreduce守护进程的配置项,包括 jobtracker 和tasktracker。
<?xml version=“1.0”?>
<?xml-stylesheet type=“text/xsl” href=“http://wsysisibeibei.blog.163.com/blog/configuration.xsl“?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9101</value>
</property>
</configuration>
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13