Hadoop選擇下載2.4.0 http://hadoop.apache.org / http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.4.0/html
JDK我用的是1.7u64 http://www.oracle.com/technetwork/java/javase/downloads/index.htmljava
在安裝系統時,每一個虛擬機的用戶名都應儘可能設置爲同樣的。由於,ssh默認以當前用戶名去登陸另外的主機,若是「另外的主機」沒有「當前用戶名」這樣一個用戶,後果可想而知!個人用戶名都設置爲:Hadoop,登陸名是hadoopnode
個人主機名:master節點的主機名是Master,slaves節點的主機名分別爲:Node1web
在每臺主機上,算法
檢測系統是否開啓ipv6:express
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
若是結果顯示0表示已開啓,若爲1表示已關閉apache
關閉ipv6:vim
sudo vim /etc/sysctl.conf
加入以下內容:centos
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
重啓系統安全
至於爲何要關閉ipv6,後面再說。
2、主機互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: 91:bd:1e:e4:d3:25:56:f5:da:b1:11:29:22:bf:94:3b root@VM_160_34_centos The key's randomart image is: +--[ RSA 2048]----+ | .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:18:87:39:af:e4:dd:c4:ce:c1:7b:c7:66. 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 100% 405 0.4KB/s 00:00 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 這裏很少作解釋,
先在Master機上安裝配置
安裝和配置Hadoop須要以"root"的身份進行
把Hadoop包文件解壓到/usr/local下
tar -zvxf hadoop-2.4.0.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.0> mkdir tmp dfs hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.0> cd dfs hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.0/dfs> mkdir name data
加入 hadoop環境變量:
編輯 vi /etc/profile.d/hadoop-development.sh
export HADOOP_HOME=/usr/local/hadoop-2.4.0 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
這裏要涉及到的配置文件有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目錄下
加入以下內容(這裏要寫上絕對路徑, 不要看他裏面有寫 : 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端口。
加入以下內容:( 這裏要寫上絕對路徑, 不要看他裏面有寫 : export JAVA_HOME=${JAVA_HOME} ,但啓動的時候仍是告訴你,找不到JAVA_HOME):):
export JAVA_HOME=/usr/local/java/jdk1.7.0_55
把salve節點的主機名加入,把原來的「localhost」刪掉。
root@VM_160_34_centos:/usr/local/hadoop-2.4.0/etc/hadoop> vim slaves localhost
改成:
node1
同理,在masters文件中填入:
master
接下來,須要對默認的core-site.xml、yarn-site.xml、hdfs-site.xml和mapred-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>
這裏配置的是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,
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>
<?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.0> 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 31449. Stop it first. node1: starting datanode, logging to /usr/local/hadoop-2.4.0/logs/hadoop-hadoop-datanode-VM_32_234_centos.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: secondarynamenode running as process 31624. Stop it first. starting yarn daemons resourcemanager running as process 31771. Stop it first. node1: starting nodemanager, logging to /usr/local/hadoop-2.4.0/logs/yarn-hadoop-nodemanager-VM_32_234_centos.out
查看已啓用的服務:
jps
master
hadoop@VM_160_34_centos:/usr/local/hadoop-2.4.0> jps 4506 NodeManager 4811 Jps 4406 ResourceManager 4258 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.0/etc> hadoop dfsadmin -report DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Configured Capacity: 8452341760 (7.87 GB) Present Capacity: 4833107968 (4.50 GB) DFS Remaining: 4833079296 (4.50 GB) DFS Used: 28672 (28 KB) DFS Used%: 0.00% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 ------------------------------------------------- Datanodes available: 1 (1 total, 0 dead) Live datanodes: Name: 10.221.32.234:50010 (Node1) Hostname: TENCENT64.site Decommission Status : Normal Configured Capacity: 8452341760 (7.87 GB) DFS Used: 28672 (28 KB) Non DFS Used: 3619233792 (3.37 GB) DFS Remaining: 4833079296 (4.50 GB) DFS Used%: 0.00% DFS Remaining%: 57.18% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Last contact: Fri Aug 29 15:57:15 CST 2014
輸入 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. JobQueueTaskScheduler org.apache.hadoop.mapred. FairScheduler |
重要的東西,開啓任務管理器,不設置的話,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槽位數 |