Hadoop 2.4.0徹底分佈式平臺搭建、配置、安裝

一:系統安裝與配置

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  這裏很少作解釋,

 

五:Hadoop安裝與配置

先在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

 

配置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.0/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.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}(默認)
/dfs/namesecondary

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.
AuthenticationFilterInitializer
(排版調整,實際配置不要回車)

須要jobtracker,tasktracker
NN,DN等http訪問端口用戶驗證使用,需配置全部節點

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,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec,
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec,

org.apache.hadoop.io.compress.SnappyCodec
(排版調整,實際配置不要回車)

Hadoop所使用的編解碼器,gzip、bzip2爲自帶,lzo需安裝hadoopgpl或者kevinweil,逗號分隔。
snappy須要單獨安裝並修改hadoop-env.sh配置LD_LIBRARY_PATH=snappy類庫位置

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

機架感知腳本管理的主機數,

詳細參見:  http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

附表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=
/opt/hadoopgpl/native/
Linux-amd64-64

每一個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槽位數
相關文章
相關標籤/搜索