Hadoop 2.4.0完全分布式平台搭建、配置、安装
一:系统安装与配置
Hadoop选择下载2.4.0 http://hadoop.apache.org / http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.4.0/
JDK我用的是1.7u64 http://www.oracle.com/technetwork/java/javase/downloads/index.html
在安装系统时,每个虚拟机的用户名都应尽量设置为一样的。因为,ssh默认以当前用户名去登录另外的主机,如果“另外的主机”没有“当前用户名”这样一个用户,后果可想而知!我的用户名都设置为:Hadoop,登录名是hadoop
我的主机名:master节点的主机名是Master,slaves节点的主机名分别为:Node1
在每台主机上,
检测系统是否开启ipv6:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
如果结果显示0表示已开启,若为1表示已关闭
关闭ipv6:
sudo vim /etc/sysctl.conf
加入如下内容:
net.ipv6.conf.all.disable_ipv6 = net.ipv6.conf.default.disable_ipv6 = net.ipv6.conf.lo.disable_ipv6 =
重启系统
至于为什么要关闭ipv6,后面再说。
二、主机互Ping
编辑/etc/hosts文件:
在终端中输入:
sudo vim /etc/hosts
在其中以“ip地址主机名”的格式加入每个主机的信息,
我的Master主机中的hosts文件内容如下:
127.0.0.1 TENCENT64.site TENCENT64
127.0.0.1 Master
10.221.32.234 Node1
我的Node1主机中的hosts文件内容如下:
127.0.0.1 TENCENT64.site TENCENT64
10.207.160.34 Master
127.0.0.1 Node1
每台主机都添加相应的主机信息后,重启,测试:
每台上依次都ping一下,看是否是通的。
三:主机无密码登录节点
在master节点上执行:
ssh-keygen -t rsa -P ''
一直回车默认,生成的密钥对保存在~/.ssh目录下
root@VM_160_34_centos:~/tools> ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
:bd:1e:e4:d3:::f5:da:b1::::bf::3b root@VM_160_34_centos
The key's randomart image is:
+--[ RSA ]----+
| .oo|
| + . o .o|
| o = = oo.|
| + B o o+|
| S * + ...|
| . E |
| . . |
| |
| |
在slaves节点上执行:
mkdir ~/.ssh
生成用于保存密钥的文件夹
把公钥复制到所有Slave上(需要输入密码):
hadoop@VM_160_34_centos:~> scp /home/hadoop/.ssh/id_rsa.pub hadoop@Node1:~/
The authenticity of host 'node1 (10.221.32.234)' can't be established.
RSA key fingerprint is 4a:bc:1e:ca::::af:e4:dd:c4:ce:c1:7b:c7:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node1,10.221.32.234' (RSA) to the list of known hosts.
hadoop@node1's password:
id_rsa.pub % .4KB/s :
hadoop@VM_160_34_centos:~>
在Slave机上把把id_rsa.pub追加到授权的key里面去:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
测试是否成功:
ssh Node1
依次测试一下
默认以当前用户登录,所以要求Master机和Slave机的用户名一致,
若Master机需无密码登录自己:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
四:JAVA环境安装
见: Linux下配置jdk1.7 这里不多做解释,
五:Hadoop安装与配置
先在Master机上安装配置
安装和配置Hadoop需要以"root"的身份进行
把Hadoop包文件解压到/usr/local下
tar -zvxf hadoop-2.4..tar.gz -C /usr/local/
以hadoop在/usr/local/hadoop-2.4.0 下创建“tmp”、“dfs”文件夹,在“dfs”下创建“name”、“data”文件夹:
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.> mkdir tmp dfs
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.> cd dfs
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4./dfs> mkdir name data
加入 hadoop环境变量:
编辑 vi /etc/profile.d/hadoop-development.sh
export HADOOP_HOME=/usr/local/hadoop-2.4.
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
重启"/etc/profile":
source /etc/profile
配置Hadoop
这里要涉及到的配置文件有7个:
hadoop-env.sh
yarn-env.sh
slaves
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
配置文件说明如下:
都在/usr/local/hadoop-2.4.0/etc/hadoop目录下
以下行为以hadoop用户进行,切换到/usr/local/hadoop-2.4.0/etc/hadoop目录下
1.vim hadoop-env.sh
加入如下内容(这里要写上绝对路径, 不要看他里面有写 : export JAVA_HOME=${JAVA_HOME} ,但启动的时候还是告诉你,找不到JAVA_HOME):
export JAVA_HOME=/usr/local/java/jdk1.7.0_55
export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
添加JDK的环境变量和让Hadoop优先使用ipv4,因为后面的配置文件中的网络端口号系统默认是piv6的,而ipv6是不通的,所以之前已经关闭ipv6,否则,在进行Hadoop测试时会反复连接根本连不通的ipv6端口。
2.vim yarn-env.sh
加入如下内容:( 这里要写上绝对路径, 不要看他里面有写 : export JAVA_HOME=${JAVA_HOME} ,但启动的时候还是告诉你,找不到JAVA_HOME):):
export JAVA_HOME=/usr/local/java/jdk1.7.0_55
3.配置masters和slaves文件
把salve节点的主机名加入,把原来的“localhost”删掉。
root@VM_160_34_centos:/usr/local/hadoop-2.4./etc/hadoop> vim slaves localhost
改为:
node1
同理,在masters文件中填入:
master
接下来,需要对默认的core-site.xml、yarn-site.xml、hdfs-site.xml和mapred-site.xml进行适当的修改,否则仍然无法启动成功。
4.vim core-site.xml
该文件是 hadoop core的配置项,例如hdfs和mapreduce常用的i/o设置等,
详情见后面附表1;
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. -->
<!-- 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交互,以取得文件的块列表。master上这里最好写IP , 否则可能会出现 监听127.0.0.1 的情况-->
<value>hdfs://10.207.160.34:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!-- hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。 不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。 -->
<value>/usr/local/hadoop-2.4.0/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 添加httpfs的选项 -->
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property> <property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
</configuration>
5.vim hdfs-site.xml
这里配置的是HDFS的地址和端口号。
hadoop守护进程的配置项,包括namenode、辅助namenode和datanode等。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:9001</value>
</property> <property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property> <property>
<name>dfs.replication</name>
<!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。 对于一个实际的应用,它应该被设为3(这个 数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。 少于三个的备份,可能会影响到数据的 可靠性(系统故障时,也许会造成数据丢失) -->
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name> <value>/usr/local/hadoop-2.4.0/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>dfs.name.dir</name>
<!-- dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。 这个值只对NameNode有效,DataNode并不需要使用到它。 上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。 -->
<value>/usr/local/hadoop-2.4.0/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<!-- dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。 DataNode结点上 的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。 但如果每台机器上的这 个路径都是统一配置的话,会使工作变得简单一些。 默认的情况下,它的值hadoop.tmp.dir, 这 个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆 盖。 -->
<value>/usr/local/hadoop-2.4.0/dfs/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,
6.vim mapred-site.xml
mapreduce守护进程的配置项,包括jobtracker和tasktracker。
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
7.vim yarn-site.xml
<?xml version="1.0" encoding="utf-8"?> <!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<configuration>
<!-- Site specific YARN configuration properties -->
<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>
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Master:8088</value>
</property>
</configuration>
注意:原来文件中的<configuration></configuration>对是存在的,不要重复加入:
原来系统内的mapred-site.xml文件是mapred-site.xml.template应用下面的命令对其重命名:
mv mapred-site.xml.template mapred-site.xml
配置其余机器:
将 master节点上配置好的hadoop所在文件夹"/usr/local/hadoop"复制到所有的slave的"/usr/local"目录下(实际上Slave机器上的slavers文件是不必要的, 复制了也没问题)
scp -r /usr/local/hadoop root@Node1:/usr/local
以root用户登录"Slave
chown -R hadoop:hadoop(用户名:用户组) hadoop(文件夹)
启动及验证:
在启动前关闭集群中所有机器的防火墙
sudo ufw disable
在"Master"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh)
hadoop namenode -format
启动hadoop:
start-all.sh
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.> sbin/start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [Master]
Master: namenode running as process . Stop it first.
node1: starting datanode, logging to /usr/local/hadoop-2.4./logs/hadoop-hadoop-datanode-VM_32_234_centos.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: secondarynamenode running as process . Stop it first.
starting yarn daemons
resourcemanager running as process . Stop it first.
node1: starting nodemanager, logging to /usr/local/hadoop-2.4./logs/yarn-hadoop-nodemanager-VM_32_234_centos.out
查看已启用的服务:
jps
master
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.> jps
NodeManager
Jps
ResourceManager
SecondaryNameNode
node1
[root@VM_32_234_centos hadoop-2.4.0]# jps
10343 Jps
10322 NodeManager
10235 DataNode
当然 这个安装过程肯定不会很顺利,起码我的是这样, 出现了很多问题, 详细的请见我的其他hadoop底下的其他博文.
查看DataNode的信息:
hadoop dfsadmin -report
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4./etc> hadoop dfsadmin -report
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it. Configured Capacity: (7.87 GB)
Present Capacity: (4.50 GB)
DFS Remaining: (4.50 GB)
DFS Used: ( KB)
DFS Used%: 0.00%
Under replicated blocks:
Blocks with corrupt replicas:
Missing blocks: -------------------------------------------------
Datanodes available: ( total, dead) Live datanodes:
Name: 10.221.32.234: (Node1)
Hostname: TENCENT64.site
Decommission Status : Normal
Configured Capacity: (7.87 GB)
DFS Used: ( KB)
Non DFS Used: (3.37 GB)
DFS Remaining: (4.50 GB)
DFS Used%: 0.00%
DFS Remaining%: 57.18%
Configured Cache Capacity: ( B)
Cache Used: ( B)
Cache Remaining: ( B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Last contact: Fri Aug :: CST
输入 http://203.195.148.135:50070/
输入 http://203.195.148.135:8088/
停用Hadoop:
stop-all.sh
附表1 : core-site
该文件是 hadoop core的配置项,例如hdfs和mapreduce常用的i/o设置等,
属性 |
值 |
说明 |
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 |
机架感知脚本管理的主机数, |
附表2 : mapred-site
name | value | Description |
hadoop.job.history.location | job历史文件保存路径,无可配置参数,也不用写在配置文件里,默认在logs的history文件夹下。 | |
hadoop.job.history.user.location | 用户历史文件存放位置 | |
io.sort.factor | 30 | 这里处理流合并时的文件排序数,我理解为排序时打开的文件数 |
io.sort.mb | 600 | 排序所使用的内存数量,单位兆,默认1,我记得是不能超过mapred.child.java.opt设置,否则会OOM |
mapred.job.tracker | hadoopmaster:9001 | 连接jobtrack服务器的配置项,默认不写是local,map数1,reduce数1 |
mapred.job.tracker.http.address | 0.0.0.0:50030 | jobtracker的tracker页面服务监听地址 |
mapred.job.tracker.handler.count | 15 | jobtracker服务的线程数 |
mapred.task.tracker.report.address | 127.0.0.1:0 | tasktracker监听的服务器,无需配置,且官方不建议自行修改 |
mapred.local.dir | /data1/hdfs/mapred/local, /data2/hdfs/mapred/local, ... |
mapred做本地计算所使用的文件夹,可以配置多块硬盘,逗号分隔 |
mapred.system.dir | /data1/hdfs/mapred/system, /data2/hdfs/mapred/system, ... |
mapred存放控制文件所使用的文件夹,可配置多块硬盘,逗号分隔。 |
mapred.temp.dir | /data1/hdfs/mapred/temp, /data2/hdfs/mapred/temp, ... |
mapred共享的临时文件夹路径,解释同上。 |
mapred.local.dir.minspacestart | 1073741824 | 本地运算文件夹剩余空间低于该值则不在本地做计算。字节配置,默认0 |
mapred.local.dir.minspacekill | 1073741824 | 本地计算文件夹剩余空间低于该值则不再申请新的任务,字节数,默认0 |
mapred.tasktracker.expiry.interval | 60000 | TT在这个时间内没有发送心跳,则认为TT已经挂了。单位毫秒 |
mapred.map.tasks | 2 | 默认每个job所使用的map数,意思是假设设置dfs块大小为64M,需要排序一个60M的文件,也会开启2个map线程,当jobtracker设置为本地是不起作用。 |
mapred.reduce.tasks | 1 | 解释同上 |
mapred.jobtracker.restart.recover | true | false | 重启时开启任务恢复,默认false |
mapred.jobtracker.taskScheduler | org.apache.hadoop.mapred. CapacityTaskScheduler org.apache.hadoop.mapred. org.apache.hadoop.mapred. |
重要的东西,开启任务管理器,不设置的话,hadoop默认是FIFO调度器,其他可以使用公平和计算能力调度器 |
mapred.reduce.parallel.copies | 10 | reduce在shuffle阶段使用的并行复制数,默认5 |
mapred.child.java.opts |
-Xmx2048m -Djava.library.path= |
每个TT子进程所使用的虚拟机内存大小 |
tasktracker.http.threads | 50 | TT用来跟踪task任务的http server的线程数 |
mapred.task.tracker.http.address | 0.0.0.0:50060 | TT默认监听的httpIP和端口,默认可以不写。端口写0则随机使用。 |
mapred.output.compress | true | false | 任务结果采用压缩输出,默认false,建议false |
mapred.output.compression.codec | org.apache.hadoop.io. compress.DefaultCodec |
输出结果所使用的编解码器,也可以用gz或者bzip2或者lzo或者snappy等 |
mapred.compress.map.output | true | false | map输出结果在进行网络交换前是否以压缩格式输出,默认false,建议true,可以减小带宽占用,代价是会慢一些。 |
mapred.map.output.compression.codec | com.hadoop.compression. lzo.LzoCodec |
map阶段压缩输出所使用的编解码器 |
map.sort.class | org.apache.hadoop.util. QuickSort |
map输出排序所使用的算法,默认快排。 |
mapred.hosts | conf/mhost.allow | 允许连接JT的TT服务器列表,空值全部允许 |
mapred.hosts.exclude | conf/mhost.deny | 禁止连接JT的TT列表,节点摘除是很有作用。 |
mapred.queue.names | ETL,rush,default | 配合调度器使用的队列名列表,逗号分隔 |
mapred.tasktracker.map. tasks.maximum |
12 | 每服务器允许启动的最大map槽位数。 |
mapred.tasktracker.reduce. tasks.maximum |
6 | 每服务器允许启动的最大reduce槽位数 |
Hadoop 2.4.0完全分布式平台搭建、配置、安装的更多相关文章
- Hadoop 2.4.0全然分布式平台搭建、配置、安装
一:系统安装与配置 虚拟机软件:Virtualbox 4.3.10(已安装对应扩展包) 虚拟机:Ubuntu 13.04 LTS 32位(至于为什么选择13.04,是由于最新的版本号装上后开机会出现错 ...
- Hadoop 2.6.0 完全分布式平台搭建
一.准备软件环境: hadoop-2.6.0.tar.gz CentOS release 6.5 jdk-7u67-linux-x64.tar.gz 网络配置: master1 ...
- 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置
Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了.这是 ...
- hadoop伪分布式平台搭建(centos 6.3)
最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试.搭建hbase伪分布式平台,需要先搭建hadoop平台.本文主要介绍伪分布式平台搭建过程. 目录: 一.前言 二.环境搭建 三.命令测试 ...
- Spark2.4.0伪分布式环境搭建
一.搭建环境的前提条件 环境:ubuntu-16.04 hadoop-2.6.0 jdk1.8.0_161. spark-2.4.0-bin-hadoop2.6.这里的环境不一定需要和我一样,基本版 ...
- Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程
一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...
- Hadoop2.5.0伪分布式环境搭建
本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...
- 基于MyEclipse+9.0+++Tomcat+7.0的SSH+平台搭建
基于MyEclipse+9.0+++Tomcat+7.0的SSH+平台搭建 http://wenku.baidu.com/view/96fbfe0f581b6bd97f19ea1d.html 用MyE ...
- 基于认证的代理平台搭建配置squid-20130730
基于认证的代理平台搭建配置squid-20130730 功能:通过squid代理实现 (1)基于用户名密码认证的出口ip路由选择 (2)基于client源ip的出口ip路由选择 (3)基于连接本机ip ...
随机推荐
- 使用urllib进行网页爬取
# coding=gbk # 抓取开奖号码 # url:http://datachart.500.com/dlt/zoushi/jbzs_foreback.shtml ''' 对网页逐行迭代,找到目标 ...
- [转载]删除所有的.svn文件夹
Windows 下,在DOS窗口中运行如下命令 dos 代码 for /r <你项目的路径> %i in (.svn) do rd /s /q %i Linux 下,可以先运行 显示出当前 ...
- ruby sass Encoding::CompatibilityError for changes
在'compass create projectName','cd projectName'之后,show "Encoding::CompatibilityError on line [&q ...
- css3渐变、背景、倒影、变形
一.背景切割background-clip 语法:background-clip:border-box | padding-box | content-box: border-box 超出b ...
- java基础总结
/查看数组是否为空 String[] aorgPks = userRole.getAssignOrgPks(); if(ArrayUtils.isEmpty(aorgPks)){ //uapstudi ...
- Switch的表达式的要求
在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),在java1.7后支持了对string的判断.
- 解决Redis Cluster模式下的排序问题
通常的redis排序我们可以这么做: 比如按商品价格排序:sort goods_id_set by p_*_price 这样在非集群模式下是没问题的,但如果在集群模式下,就会报错: 说是在集群模式下不 ...
- C#基于AE组件二次开发常见问题
由于本人从事的是在.net平台下进行GIS的二次开发,所以第一篇博文就说一下:我最近在项目中出现的常见的问题,如果能够给大家增加一点点便利,也是我的荣幸,如果大家对于这次博文有什么意见和建议,欢迎大家 ...
- mina2.0 spring
Apache MINA是一个网络应用程序框架,它可以帮助用户开发的高性能.高扩展性的网络应用程序.它提供了一个抽象的事件驱动的异步API在不同传输如TCP/IP和UDP/IP通过java NIO. A ...
- Putty + Vim + Color
Putty + Vim + Color 参考: 1.Using colour schemes with vim and putty 2.Putty的颜色 3.Custom PuTTY Color Th ...