Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
25. 集群搭建
25.1 HADOOP集群搭建
25.1.1集群簡(jiǎn)介
HADOOP集群具體來(lái)說(shuō)包含兩個(gè)集群:HDFS集群和YARN集群,兩者邏輯上分離,但物理上常在一起
HDFS集群:
負(fù)責(zé)海量數(shù)據(jù)的存儲(chǔ),集群中的角色主要有NameNode / DataNode
YARN集群:
負(fù)責(zé)海量數(shù)據(jù)運(yùn)算時(shí)的資源調(diào)度,集群中的角色主要有 ResourceManager /NodeManager
25.1.2服務(wù)器準(zhǔn)備
本案例使用虛擬機(jī)服務(wù)器來(lái)搭建HADOOP集群,所用軟件及版本:
ü?Vmware 11.0
ü?Centos? 6.7?64bit
25.1.3網(wǎng)絡(luò)環(huán)境準(zhǔn)備
ü?采用NAT方式聯(lián)網(wǎng)
ü?網(wǎng)關(guān)地址:192.168.106.2
ü?3個(gè)服務(wù)器節(jié)點(diǎn)IP地址:192.168.106.80、192.168.106.81、192.168.106.82 (均為虛擬機(jī))
ü?子網(wǎng)掩碼:255.255.255.0
ü?注意防火墻關(guān)閉hadoop相關(guān)的一些端口
ü?需要下載hadoop2.8.0-src.tar.gz進(jìn)行源碼編譯
?
針對(duì)自己Linux版本的hadoop-2.8.0.tar.gz的獲取方式:http://blog.csdn.net/tototuzuoquan/article/details/72796632(本博文中還是使用官網(wǎng)提供的hadoop-2.8.0.tar.gz進(jìn)行安裝,然后安裝過(guò)程的錯(cuò)誤用自己編譯的hadoop-2.8.0.tar.gz中的部分文件進(jìn)行替換,注意的是下面的安裝文件都是從網(wǎng)上下來(lái)的hadoop-2.8.0.tar.gz中的內(nèi)容,唯獨(dú)用到的緊緊是解壓后的hadoop-2.8.0/lib/native,也就是說(shuō)用編譯出來(lái)的native替換從網(wǎng)上下載下來(lái)的:hadoop-2.8.0/lib/native)
?
?
25.1.4服務(wù)器系統(tǒng)設(shè)置
在整個(gè)集群部署過(guò)程中需要經(jīng)過(guò)以下幾個(gè)步驟:
1、配置hosts文件,并設(shè)置ssh免密登錄(ssh免密登錄時(shí)必須的,因?yàn)樵?/span>hadoop中需要用到) 2、建立hadoop運(yùn)行帳號(hào) 3、下載并解壓hadoop安裝包,并在安裝前裝好JDK 4、配置namenode,修改site文件 5、配置hadoop-env.sh文件 6、?配置masters和slaves文件(Linux下的Hadoop的集群安裝,也相當(dāng)于是主從的集群) 7、向各節(jié)點(diǎn)復(fù)制hadoop 8、格式化namenode 9、啟動(dòng)hadoop 10、用jps檢驗(yàn)各后臺(tái)進(jìn)程是否成功啟動(dòng) 11、通過(guò)網(wǎng)站查看集群情況 |
?
1、修改Linux的hostname,配置后的內(nèi)容如下(如192.168.106.80機(jī)器,配置后的效果如下,同樣的配置192.168.106.81,192.168.106.82):
[root@hadoop1 zookeeper]# cat /etc/hosts 127.0.0.1?? localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1???????? localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.106.80????? hadoop 192.168.106.81????? hadoop2 192.168.106.82????? hadoop3 [root@hadoop1 zookeeper]# |
?? ?經(jīng)過(guò)以上配置之后,可以通過(guò)以下命令在80機(jī)器上ping 81,82這些服務(wù)器。
?
?? 設(shè)置后的狀態(tài)為:
ü?設(shè)置主機(jī)名
n?hadoop
n?hadoop2
n?hadoop3
ü?配置內(nèi)網(wǎng)域名映射:
n?192.168.106.80????????? hadoop
n?192.168.106.81????????? hadoop2
n?192.168.106.82????????? hadoop3
?
配置ssh免密登錄(可以參考的網(wǎng)址是:http://blog.csdn.net/ab198604/article/details/8250461),每個(gè)節(jié)點(diǎn)要分別產(chǎn)生公私密鑰,參考命令如下:
1) [toto@hadoop hadoop-2.8.0]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa Generating public/private dsa key pair. Your identification has been saved in /home/toto/.ssh/id_dsa. Your public key has been saved in /home/toto/.ssh/id_dsa.pub. The key fingerprint is: 33:9d:e6:a4:a4:99:5a:af:e2:b6:46:ac:59:a8:41:10 toto@hadoop The key's randomart image is: +--[ DSA 1024]----+ |E.?????????????? | |.??????????????? | |.??????????????? | | .?????? . .???? | |.? o??? S =????? | |. . +? = B?????? | | o =? = . .????? | |. o +o .???????? | |?? ++o...??????? | +-----------------+ ?(注意:如果執(zhí)行上面的命令出現(xiàn)open /home/toto/.ssh/id_dsa failed: Permission denied.,則用root用戶(hù)執(zhí)行:[root@hadoop1 ~]# chmod 777 /home/toto/.ssh) 以上是產(chǎn)生公私密鑰,產(chǎn)生目錄在用戶(hù)主目錄下的.ssh目錄中,如下: [toto@hadoop hadoop-2.8.0]$ cd /home/toto/.ssh [toto@hadoop .ssh]$ ls id_dsa? id_dsa.pub? known_hosts [toto@hadoop .ssh]$ 其中id_dsa.pub為私鑰,id_dsa為私鑰,緊接著將公鑰文件復(fù)制成authorized_keys文件,這個(gè)步驟是必須的,過(guò)程如下: [toto@hadoop .ssh]$ cat id_dsa.pub >> authorized_keys [toto@hadoop .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts ? 2):單機(jī)回環(huán)ssh免密碼登陸測(cè)試 即在單機(jī)節(jié)點(diǎn)上用ssh進(jìn)行登錄,看看是否能夠登陸成功。登陸成功后注銷(xiāo)退出,過(guò)程如下: [toto@hadoop .ssh]$ ssh localhost The authenticity of host 'localhost (::1)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (RSA) to the list of known hosts. [toto@hadoop ~]$ ssh Hadoop ?(如果是hadoop2,hadoop3這里分別寫(xiě)成這兩個(gè)名字即可) Last login: Sun May 28 19:47:27 2017 from localhost ? 有以上信息表示操作成功,這將為后續(xù)跨子節(jié)點(diǎn)ssh遠(yuǎn)程免密登錄做好準(zhǔn)備。用上述同樣的方法在剩下的兩個(gè)節(jié)點(diǎn)如法炮制即可。 ? 3) 讓主結(jié)點(diǎn)hadoop(master)能夠通過(guò)ssh免密登錄兩個(gè)子節(jié)點(diǎn)hadoop1,hadoop2(slave) 為了實(shí)現(xiàn)這個(gè)功能,兩個(gè)slave節(jié)點(diǎn)的公鑰文件中必須包含主結(jié)點(diǎn)的公鑰信息,這樣當(dāng)master就可以順利安全地當(dāng)問(wèn)兩個(gè)slave結(jié)點(diǎn)了,操作過(guò)程如下: ? [toto@hadoop2 ~]$ cd ~/.ssh/ [toto@hadoop2 .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts [toto@hadoop2 .ssh]$ scp toto@hadoop:~/.ssh/id_dsa.pub ./master_dsa.pub The authenticity of host 'hadoop (192.168.106.80)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop,192.168.106.80' (RSA) to the list of known hosts. toto@hadoop's password: ?????這里輸入123456 Permission denied, please try again. toto@hadoop's password: ?????這里輸入123456 id_dsa.pub?????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????100%? 601???? 0.6KB/s?? 00:00??? [toto@hadoop2 .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts? master_dsa.pub [toto@hadoop2 .ssh]$ cat master_dsa.pub >> authorized_keys [toto@hadoop2 .ssh]$ ? 說(shuō)明:如上過(guò)程顯示了hadoop2結(jié)點(diǎn)通過(guò)scp命令遠(yuǎn)程登錄master結(jié)點(diǎn),并復(fù)制master的公鑰到當(dāng)前的目錄下,這一過(guò)程需要密碼驗(yàn)證。接著,將master結(jié)點(diǎn)的公鑰文件追加至authorized_keys文件中,通過(guò)這步驟,如果不出現(xiàn)問(wèn)題,master結(jié)點(diǎn)就可以通過(guò)ssh遠(yuǎn)程密碼連接hadoop2結(jié)點(diǎn)了。在master(hadoop)結(jié)點(diǎn)中操作如下: ? [toto@hadoop .ssh] cd ~/.ssh/???? (一定要在這個(gè)目錄下進(jìn)行才可以) [toto@hadoop .ssh]$ ssh hadoop2??? (如果是進(jìn)入hadoop配置hadoop3,這里寫(xiě)成:ssh hadoop3) The authenticity of host 'hadoop2 (192.168.106.81)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop2,192.168.106.81' (RSA) to the list of known hosts. Last login: Sun May 28 19:58:56 2017 from hadoop2 [toto@hadoop2 ~]$ exit logout Connection to hadoop2 closed. [toto@hadoop .ssh]$ ssh hadoop2 Last login: Sun May 28 20:12:06 2017 from hadoop [toto@hadoop2 ~]$ ? 由上圖可以看出,node1結(jié)點(diǎn)首次連接時(shí)需要”YES”確認(rèn)連接,這意味著master結(jié)點(diǎn)連接hadoop2(slave)結(jié)點(diǎn)時(shí)需要人工詢(xún)問(wèn),無(wú)法自動(dòng)連接,輸入yes后成功接入,緊接著注銷(xiāo)退出至master(hadoop)結(jié)點(diǎn)。要實(shí)現(xiàn)ssh免密碼連接至其它結(jié)點(diǎn),還差一步,只需執(zhí)行ssh hadoop2,如果沒(méi)有要求你輸入”yes”,就算成功了,上述過(guò)程已經(jīng)演示過(guò)。 ? 4):進(jìn)入hadoop3,執(zhí)行3)這樣步驟 [toto@hadoop3 ~]$ cd ~/.ssh/ [toto@hadoop3 .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts [toto@hadoop3 .ssh]$ scp toto@hadoop:~/.ssh/id_dsa.pub ./master_dsa.pub The authenticity of host 'hadoop (192.168.106.80)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop,192.168.106.80' (RSA) to the list of known hosts. toto@hadoop's password: id_dsa.pub???????????????????????????????????????????????????????????????????????????????????????????????????? ??????????????100%? 601???? 0.6KB/s?? 00:00??? [toto@hadoop3 .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts? master_dsa.pub [toto@hadoop3 .ssh]$ cat master_dsa.pub >> authorized_keys [toto@hadoop3 .ssh]$ ? 進(jìn)入hadoop機(jī)器,登錄hadoop3 [toto@hadoop .ssh]$ ssh hadoop3 The authenticity of host 'hadoop2 (192.168.106.81)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop2,192.168.106.81' (RSA) to the list of known hosts. Last login: Sun May 28 19:58:56 2017 from hadoop2 [toto@hadoop3 ~]$ exit logout Connection to hadoop3 closed. [toto@hadoop .ssh]$ ssh hadoop3 Last login: Sun May 28 20:12:06 2017 from hadoop [toto@hadoop3 ~]$ ? 經(jīng)過(guò)上述過(guò)程,可以通過(guò)hadoop免密登錄hadoop2,hadoop3了。 ? 表面上看,這兩個(gè)節(jié)點(diǎn)的ssh免密登錄已經(jīng)配置成功,但是我們還需要對(duì)主結(jié)點(diǎn)master也要進(jìn)行上面的同樣工作,具體原因現(xiàn)在也說(shuō)不太好,據(jù)說(shuō)是真實(shí)物理節(jié)點(diǎn)時(shí)需要做這項(xiàng)工作,因?yàn)?/span>jobtracker有可能會(huì)分布在其它的結(jié)點(diǎn)上,jobtracker有不存在master結(jié)點(diǎn)上可能性。 [toto@hadoop root]$cd ~/.ssh/ [toto@hadoop .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts [toto@hadoop .ssh]$ scp toto@hadoop:~/.ssh/id_dsa.pub ./master_dsa.pub id_dsa.pub??????????????????????????????????????????????????????????????????????? 100%? 601???? 0.6KB/s?? 00:00??? [toto@hadoop .ssh]$ ls authorized_keys? id_dsa? id_dsa.pub? known_hosts? master_dsa.pub [toto@hadoop .ssh]$ cat master_dsa.pub >> authorized_keys [toto@hadoop .ssh]$ ssh hadoop Last login: Sun May 28 19:59:13 2017 from hadoop [toto@hadoop ~]$ |
?
?? 2、建立hadoop運(yùn)行賬號(hào)(3臺(tái)服務(wù)器都配置)
[root@hadoop1 zookeeper]# groupadd hadoop?? //設(shè)置hadoop用戶(hù)組 groupadd: group 'hadoop' already exists //添加一個(gè)toto用戶(hù),此用戶(hù)屬于hadoop組,并且擁有root的權(quán)限 [root@hadoop1 zookeeper]# useradd -s /bin/bash -d /home/toto -m toto -g hadoop -G root [root@hadoop1 zookeeper]# passwd toto 更改用戶(hù) toto 的密碼。 新的密碼:??????????? ?????????(假設(shè)這里的密碼為123456) 無(wú)效的密碼:過(guò)于簡(jiǎn)單化/系統(tǒng)化? (假設(shè)這里的密碼為123456) 無(wú)效的密碼:過(guò)于簡(jiǎn)單 重新輸入新的密碼: passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。 [root@hadoop1 zookeeper]# su toto??????????????? (切換到toto用戶(hù)) [toto@hadoop1 zookeeper] ? 進(jìn)入/home,ls以下,發(fā)現(xiàn)已經(jīng)有了一個(gè)叫toto的用戶(hù)對(duì)應(yīng)的文件夾 [toto@hadoop1 home]$ pwd /home [toto@hadoop1 home]$ ls hadoop? lost+found? mysql? test? tom? toto? tuzq [toto@hadoop1 home]$ ? 上述3個(gè)虛機(jī)結(jié)點(diǎn)均需要進(jìn)行以上步驟來(lái)完成hadoop運(yùn)行帳號(hào)的建立。 |
?
3、安裝JDK
ü?上傳jdk安裝包,安裝jdk包,這里默認(rèn)安裝是jdk1.8.0_73
ü?規(guī)劃安裝目錄? /usr/local/java/jdk1.8.0_73
ü?解壓安裝包
ü?配置環(huán)境變量/etc/profile?? 然后source /etc/profile
?
可以看一下配置的/etc/profile的信息:
export JAVA_HOME=/usr/local/java/jdk1.8.0_73 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ZOOKEEPER_HOME=/home/tuzq/software/zookeeper export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin |
清除Linux緩存的方式是(在root用戶(hù)下執(zhí)行以下命令):
sync
echo ? 3 > /proc/sys/vm/drop_caches
?
25.1.6 HADOOP安裝部署
?? 可供參考的網(wǎng)址:http://hadoop.apache.org/docs/r1.0.4/cn/cluster_setup.html(里面介紹了各種參數(shù)配置的含義)
?? 參考網(wǎng)址2:http://blog.csdn.net/ab198604/article/details/8250461(這里是網(wǎng)上的安裝配置方式)
?
?? 經(jīng)過(guò)以上步驟,準(zhǔn)備工作已經(jīng)完成了,下面開(kāi)始修改hadoop的配置文件。
ü? 下載最新的hadoop-2.8.0.tar.gz,下載地址:http://hadoop.apache.org/releases.html#Download
ü?上傳HADOOP安裝包,上傳位置:
[toto@hadoop1 software]$ pwd /home/toto/software [toto@hadoop1 software]$ ls hadoop-2.8.0.tar.gz [toto@hadoop1 software]$ |
?
ü?規(guī)劃安裝目錄? /home/toto/software/hadoop-2.8.0
ü?解壓安裝包?? tar -zxvf hadoop-2.8.0.tar.gz
ü?修改配置文件? $HADOOP_HOME/etc/hadoop/
最簡(jiǎn)化配置如下:
[toto@hadoop2 hadoop]$ cd /home/toto/software/hadoop-2.8.0/etc/hadoop
vim?hadoop-env.sh
# The java implementation to use. export JAVA_HOME=/usr/local/java/jdk1.8.0_73 |
?
vi? core-site.xml
<configuration> ??? <!—指定namenode的地址--> <property> <name>fs.defaultFS</name> <!—查看namenode,可以在瀏覽器上進(jìn)行查看,下面配置的瀏覽器的url地址,注意下面的紅字表示的是80機(jī)器的,hadoop2表示81機(jī)器的,hadoop3表示的是機(jī)器82的--> <value>hdfs://hadoop:9000</value> </property> <!—用來(lái)指定使用hadoop時(shí)產(chǎn)生的存放目錄--> <property> <name>hadoop.tmp.dir</name> <value>/home/toto/software/hadoop-2.8.0/tmp</value> </property> </configuration> |
注意:
??? A:? fs.default.name是NameNode的URI。hdfs://主機(jī)名:端口/
??? B:? hadoop.tmp.dir:Hadoop的默認(rèn)臨時(shí)路徑,這個(gè)最好配置,如果在新增節(jié)點(diǎn)或者其它情況下莫名其妙的DataNode啟動(dòng)不了,就刪除此文件中的tmp目錄即可。不過(guò)如果刪除了NameNode機(jī)器的此目錄,那么就需要重新執(zhí)行NameNode格式的命令。
?
vim? hdfs-site.xml
<?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> ??????? <!-- ?????????????????? ??? 指定namenode鏡像文件存放的目錄,namenode存儲(chǔ)數(shù)據(jù)信息,在內(nèi)存里面,但 ?????????????????? ??? 是不能一直存在內(nèi)存里面。如果不指定則默認(rèn)為core-site中配置的tmp目錄 ???????? ??? --> ??????? <name>dfs.namenode.name.dir</name> ??????? <value>/home/toto/software/hadoop-2.8.0/data/name</value> ??? </property> ??? <!-- ???????? ??? namenode配置多個(gè)目錄和datanode配置多個(gè)目錄,datenode中的數(shù)據(jù)主要是 ???????? ??? 用戶(hù)上傳的文件的block塊,如果不寫(xiě)默認(rèn)為core-site中配置的tmp目錄 ??? --> ??? <property> ? ??????<name>dfs.datanode.data.dir</name> ??????? <value>/home/toto/software/hadoop-2.8.0/data/data</value> ??? </property> ? ??? <!--指定hdfs保存數(shù)據(jù)的副本數(shù)量--> ??? <property> ??????? <name>dfs.replication</name> ??????? <value>3</value> ??? </property> ??? ??? <!--SNN的web訪(fǎng)問(wèn)地址--> ???????? <property> ???????? ??? <name>dfs.secondary.http.address</name> ???????? ??? <value>hadoop:50090</value> ???????? </property> ? ??? <!--是否需要角色權(quán)限驗(yàn)證,上傳文件時(shí)會(huì)用到,如果為true,需要綁定hadoop用戶(hù)角色--> ??? <property> ??????? <name>dfs.permissions</name>? ??????? <value>false</value>??????????? ??? </property> </configuration> |
?
注意:
A:? dfs.name.dir是NameNode持久存儲(chǔ)名字空間及事務(wù)日志的本地文件系統(tǒng)路徑。當(dāng)這個(gè)值是一個(gè)逗號(hào)分割的目錄列表時(shí),nametable數(shù)據(jù)將會(huì)被復(fù)制到所有目錄中做冗余備份。
B:? dfs.data.dir是DataNode存放塊數(shù)據(jù)的本地文件系統(tǒng)路徑,逗號(hào)分割的列表。當(dāng)這個(gè)值是逗號(hào)分割的目錄列表時(shí),數(shù)據(jù)將被存儲(chǔ)在所有目錄下,通常分布在不同設(shè)備上。
C:? dfs.replication是數(shù)據(jù)需要備份的數(shù)量,默認(rèn)是3,如果此數(shù)大于集群的機(jī)器數(shù)會(huì)出錯(cuò)。
注意:上面的目錄不需要手動(dòng)創(chuàng)建,hadoop格式化時(shí)會(huì)自動(dòng)創(chuàng)建,如果預(yù)先創(chuàng)建反而會(huì)有問(wèn)題。
?
vi? mapred-site.xml
告訴是運(yùn)行在哪個(gè)資源調(diào)度平臺(tái)上的,下面的意思是指定yarn為運(yùn)算資源調(diào)度平臺(tái),注意在hadoop的包中,它的名字叫做:mapred-site.xml.template,最后要將名字改成mapred-site.xml
[toto@hadoop1 hadoop]$ pwd
/home/toto/software/hadoop-2.8.0/etc/Hadoop
[toto@hadoop1 hadoop]$ mvmapred-site.xml.template mapred-site.xml
?
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
?
?
vi? yarn-site.xml
在yarn-site中要指定老大是誰(shuí),這里是hadoop
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop</value> </property> ??? <!—yarn中的nodemanager是否要提供一些輔助的服務(wù) -à <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> |
?
vi? salves(列出哪些作為dataNode,這里把hadoop,hadoop2,hadoop3都變成dataNode)
hadoop hadoop2 hadoop3 |
?
上面的文件都配置好之后,將上面的文件通過(guò)scp命令將hadoop文件拷貝到hadoop2、hadoop3相應(yīng)的文件夾下。
?
[toto@hadoop software]$ cd /home/toto/software [toto@hadoop software]$ scp -r /home/toto/software/hadoop-2.8.0 toto@hadoop2:/home/toto/software [toto@hadoop software]$ scp -r /home/toto/software/hadoop-2.8.0 toto@hadoop3:/home/toto/software |
?
?
25.1.7 啟動(dòng)集群
注意,下面的命令都是在hadoop機(jī)器下執(zhí)行的,hadoop可以免密訪(fǎng)問(wèn)hadoop2,hadoop3
初始化HDFS,要先初始化namenode的工作目錄(第一次使用的時(shí)候要進(jìn)行的工作,注意這個(gè)工作是在hadoop這臺(tái)機(jī)器上進(jìn)行的)
[toto@hadoop1 hadoop-2.8.0]$ cd /home/toto/software/hadoop-2.8.0 [toto@hadoop1 hadoop-2.8.0]$ bin/hadoop namenode -format |
執(zhí)行成功的標(biāo)識(shí)是:
?
啟動(dòng)HDFS (注意:一定要在hadoop機(jī)器下,因?yàn)?/span>hadoop可以免密訪(fǎng)問(wèn)hadoop2,hadoop3)
[toto@hadoop hadoop-2.8.0]$ sbin/start-dfs.sh 17/05/28 21:25:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [hadoop] hadoop: starting namenode, logging to /home/toto/software/hadoop-2.8.0/logs/hadoop-toto-namenode-hadoop.out hadoop: starting datanode, logging to /home/toto/software/hadoop-2.8.0/logs/hadoop-toto-datanode-hadoop.out hadoop3: starting datanode, logging to /home/toto/software/hadoop-2.8.0/logs/hadoop-toto-datanode-hadoop3.out hadoop2: starting datanode, logging to /home/toto/software/hadoop-2.8.0/logs/hadoop-toto-datanode-hadoop2.out Starting secondary namenodes [hadoop] hadoop: starting secondarynamenode, logging to /home/toto/software/hadoop-2.8.0/logs/hadoop-toto-secondarynamenode-hadoop.out 17/05/28 21:25:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable [toto@hadoop hadoop-2.8.0]$ 注意:上圖出現(xiàn)了下面這個(gè)錯(cuò)誤(同樣因?yàn)檫@個(gè)錯(cuò)誤,還會(huì)導(dǎo)致后續(xù)的一些東西錯(cuò)誤,解決辦法是用源碼編譯生成的hadoop-2.8.0/lib/native替換直接從網(wǎng)絡(luò)上下載的hadoop-2.8.0/lib/native): 17/05/28 21:25:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [hadoop] |
通過(guò)上面的提示,說(shuō)明hadoop可以啟動(dòng)hadoop2,hadoop3的datanode節(jié)點(diǎn)。
?
啟動(dòng)YARN
[toto@hadoop hadoop-2.8.0]$ sbin/start-yarn.sh starting yarn daemons starting resourcemanager, logging to /home/toto/software/hadoop-2.8.0/logs/yarn-toto-resourcemanager-hadoop.out hadoop: starting nodemanager, logging to /home/toto/software/hadoop-2.8.0/logs/yarn-toto-nodemanager-hadoop.out hadoop3: starting nodemanager, logging to /home/toto/software/hadoop-2.8.0/logs/yarn-toto-nodemanager-hadoop3.out hadoop2: starting nodemanager, logging to /home/toto/software/hadoop-2.8.0/logs/yarn-toto-nodemanager-hadoop2.out [toto@hadoop hadoop-2.8.0]$ |
yarn的管理界面是:http://hadoop:8088/cluster
注意,如果想要啟動(dòng)namenode,訪(fǎng)問(wèn)地址是:
[toto@hadoop sbin]$ cd /home/toto/software/hadoop-2.8.0/sbin [toto@hadoop sbin]$ ./hadoop-daemon.sh start namenode namenode running as process 3874. Stop it first. [toto@hadoop sbin]$ jps?????(通過(guò)這個(gè)命令查看啟動(dòng)了哪些進(jìn)程) 4607 NodeManager 4498 ResourceManager 5774 Jps 4278 SecondaryNameNode 3874 NameNode [toto@hadoop sbin]$ |
?
NameNode提供一個(gè)網(wǎng)頁(yè)版本的訪(fǎng)問(wèn)地址:http://hadoop:50070/dfshealth.html#tab-overview,這個(gè)是配置的地址
?
配置HADOOP的環(huán)境變量,進(jìn)入root用戶(hù),編輯/etc/profile命令
vim/etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_73 export HADOOP_HOME=/home/toto/software/hadoop-2.8.0 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ZOOKEEPER_HOME=/home/tuzq/software/zookeeper export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin |
最后執(zhí)行:
source/etc/profile
25.1.8 測(cè)試
1、上傳文件到HDFS
假設(shè)在/home/toto/software有:apache-hive-2.0.0-bin.tar.gz,將apache-hive-2.0.0-bin.tar.gz上傳到hdfs下的/hive目錄下,創(chuàng)建方式是:
[toto@hadoop software]$ hadoop fs -mkdir -p /hive 創(chuàng)建完成后的效果如下:
然后上傳一個(gè)文件到hive里面,操作方式如下: [toto@hadoop software]$ cd /home/tuzq/software [toto@hadoop software]$ ls apache-hive-2.0.0-bin.tar.gz? findbugs-1.3.9? hadoop-2.8.0??????????????? hadoop-2.8.0-src???????? hadoop-2.8.0.tar.gz? repo apache-maven-3.3.9??????????? hadoop-2.6.4??? hadoop-2.8.0-latest-by-src? hadoop-2.8.0-src.tar.gz? protobuf-2.5.0 [toto@hadoop software]$ hadoop fs -put apache-hive-2.0.0-bin.tar.gz /hive 再次刷新http://hadoop:50070/explorer.html#/ |
?
再如案例:從本地上傳一個(gè)文本文件到hdfs的/wordcount/input目錄下
[HADOOP@hdp-node-01 ~]$ HADOOP fs -mkdir -p /wordcount/input [HADOOP@hdp-node-01 ~]$ HADOOP fs -put /home/HADOOP/somewords.txt? /wordcount/input |
?
?
2、運(yùn)行一個(gè)mapreduce程序
在HADOOP安裝目錄下,運(yùn)行一個(gè)示例mr程序
cd $HADOOP_HOME/share/hadoop/mapreduce/ hadoop jar mapredcue-example-2.6.1.jar wordcount /wordcount/input ?/wordcount/output |
?
3、其它
常見(jiàn)錯(cuò)誤:
異常描述 ? 在對(duì)HDFS格式化,執(zhí)行Hadoop?namenode -format命令時(shí),出現(xiàn)未知的主機(jī)名的問(wèn)題,異常信息如下所示: [plain]?view plain?copy 我們通過(guò)執(zhí)行hostname命令可以看到: [plain]?view plain?copy 也就是說(shuō),Hadoop在格式化HDFS的時(shí)候,通過(guò)hostname命令獲取到的主機(jī)名是localhost.localdomain,然后在/etc/hosts文件中進(jìn)行映射的時(shí)候,沒(méi)有找到,看下我的/etc/hosts內(nèi)容: [plain]?view plain?copy 也就說(shuō),通過(guò)localhost.localdomain根本無(wú)法映射到一個(gè)IP地址,所以報(bào)錯(cuò)了。 此時(shí),我們查看一下/etc/sysconfig/network文件: [plain]?view plain?copy 可見(jiàn),執(zhí)行hostname獲取到這里配置的HOSTNAME的值。 ? 解決方法 ? 修改/etc/sysconfig/network中HOSTNAME的值為localhost,或者自己指定的主機(jī)名,保證localhost在/etc/hosts文件中映射為正確的IP地址,然后重新啟動(dòng)網(wǎng)絡(luò)服務(wù): [plain]?view plain?copy 這時(shí),再執(zhí)行格式化HDFS命令,以及啟動(dòng)HDFS集群就正常了。 格式化: [plain]?view plain?copy 啟動(dòng): [plain]?view plain?copy ? 查看: [plain]?view plain?copy ? |
? 錯(cuò)誤二: --- hadoop2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1242ms rtt min/avg/max/mdev = 0.674/0.695/0.716/0.021 ms [toto@hadoop hadoop-2.8.0]$ sbin/start-dfs.sh 17/05/28 19:11:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [hadoop] toto@hadoop's password: hadoop: namenode running as process 3943. Stop it first. The authenticity of host 'hadoop3 (192.168.106.82)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? The authenticity of host 'hadoop2 (192.168.106.81)' can't be established. RSA key fingerprint is 23:da:24:9c:b9:82:fa:f2:52:3c:30:2c:98:1e:4a:d7. Are you sure you want to continue connecting (yes/no)? toto@hadoop's password: ? ? 解決辦法: ? |
?
配置文件參數(shù)說(shuō)明:
注意:core-site的說(shuō)明
?name | value? | Description? |
?fs.default.name | hdfs://hadoopmaster:9000 | 定義HadoopMaster的URI和端口 |
?fs.checkpoint.dir | /opt/data/hadoop1/hdfs/namesecondary1 | 定義hadoop的name備份的路徑,官方文檔說(shuō)是讀取這個(gè),寫(xiě)入dfs.name.dir |
?fs.checkpoint.period | 1800 | 定義name備份的備份間隔時(shí)間,秒為單位,只對(duì)snn生效,默認(rèn)一小時(shí) |
?fs.checkpoint.size | 33554432 | 以日志大小間隔做備份間隔,只對(duì)snn生效,默認(rèn)64M |
?io.compression.codecs | org.apache.hadoop.io.compress.DefaultCodec, | Hadoop所使用的編解碼器,gzip和bzip2為自帶,lzo需安裝hadoopgpl或者kevinweil,逗號(hào)分隔,snappy也需要單獨(dú)安裝 |
?io.compression.codec.lzo.class | com.hadoop.compression.lzo.LzoCodec | LZO所使用的壓縮編碼器? |
?topology.script.file.name | /hadoop/bin/RackAware.py | 機(jī)架感知腳本位置? |
?topology.script.number.args | 1000 | 機(jī)架感知腳本管理的主機(jī)數(shù),IP地址? |
?fs.trash.interval | 10800 | HDFS垃圾箱設(shè)置,可以恢復(fù)誤刪除,分鐘數(shù),0為禁用,添加該項(xiàng)無(wú)需重啟hadoop |
?hadoop.http.filter.initializers | org.apache.hadoop.security. | 需要jobtracker,tasktracker |
?hadoop.http.authentication.type | simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# | 驗(yàn)證方式,默認(rèn)為簡(jiǎn)單,也可自己定義class,需配置所有節(jié)點(diǎn) |
?hadoop.http.authentication. | 36000 | 驗(yàn)證令牌的有效時(shí)間,需配置所有節(jié)點(diǎn) |
?hadoop.http.authentication. | 默認(rèn)可不寫(xiě)參數(shù) | 默認(rèn)不寫(xiě)在hadoop啟動(dòng)時(shí)自動(dòng)生成私密簽名,需配置所有節(jié)點(diǎn) |
?hadoop.http.authentication.cookie.domain | domian.tld | http驗(yàn)證所使用的cookie的域名,IP地址訪(fǎng)問(wèn)則該項(xiàng)無(wú)效,必須給所有節(jié)點(diǎn)都配置域名才可以。 |
?hadoop.http.authentication. | true | false | 簡(jiǎn)單驗(yàn)證專(zhuān)用,默認(rèn)允許匿名訪(fǎng)問(wèn),true |
?hadoop.http.authentication. | HTTP/localhost@$LOCALHOST | Kerberos驗(yàn)證專(zhuān)用,參加認(rèn)證的實(shí)體機(jī)必須使用HTTP作為K的Name |
?hadoop.http.authentication. | /home/xianglei/hadoop.keytab | Kerberos驗(yàn)證專(zhuān)用,密鑰文件存放位置 |
?hadoop.security.authorization | true|false | Hadoop服務(wù)層級(jí)驗(yàn)證安全驗(yàn)證,需配合hadoop-policy.xml使用,配置好以后用dfsadmin,mradmin -refreshServiceAcl刷新生效 |
?io.file.buffer.size | 131072 | 用作序列化文件處理時(shí)讀寫(xiě)buffer的大小 |
?hadoop.security.authentication | simple | kerberos | hadoop本身的權(quán)限驗(yàn)證,非http訪(fǎng)問(wèn),simple或者kerberos |
?hadoop.logfile.size | 1000000000 | 設(shè)置日志文件大小,超過(guò)則滾動(dòng)新日志 |
?hadoop.logfile.count | 20 | 最大日志數(shù) |
?io.bytes.per.checksum | 1024 | 每校驗(yàn)碼所校驗(yàn)的字節(jié)數(shù),不要大于io.file.buffer.size |
?io.skip.checksum.errors | true | false | 處理序列化文件時(shí)跳過(guò)校驗(yàn)碼錯(cuò)誤,不拋異常。默認(rèn)false |
?io.serializations | org.apache.hadoop.io. (排版需要。實(shí)際配置不要回車(chē)) | 序列化的編解碼器 |
?io.seqfile.compress.blocksize | 1024000 | 塊壓縮的序列化文件的最小塊大小,字節(jié) |
?webinterface.private.actions | true | false | 設(shè)為true,則JT和NN的tracker網(wǎng)頁(yè)會(huì)出現(xiàn)殺任務(wù)刪文件等操作連接,默認(rèn)是false |
?
?
hdfs-site的配置說(shuō)明:
?name | ?value | Description? |
dfs.default.chunk.view.size | 32768 | namenode的http訪(fǎng)問(wèn)頁(yè)面中針對(duì)每個(gè)文件的內(nèi)容顯示大小,通常無(wú)需設(shè)置。 |
dfs.datanode.du.reserved | 1073741824 | 每塊磁盤(pán)所保留的空間大小,需要設(shè)置一些,主要是給非hdfs文件使用,默認(rèn)是不保留,0字節(jié) |
dfs.name.dir | /opt/data1/hdfs/name, | NN所使用的元數(shù)據(jù)保存,一般建議在nfs上保留一份,作為1.0的HA方案使用,也可以在一臺(tái)服務(wù)器的多塊硬盤(pán)上使用 |
dfs.web.ugi | nobody,nobody | NN,JT等所使用的web tracker頁(yè)面服務(wù)器所使用的用戶(hù)和組 |
dfs.permissions | true | false | dfs權(quán)限是否打開(kāi),我一般設(shè)置false,通過(guò)開(kāi)發(fā)工具培訓(xùn)別人界面操作避免誤操作,設(shè)置為true有時(shí)候會(huì)遇到數(shù)據(jù)因?yàn)闄?quán)限訪(fǎng)問(wèn)不了。 |
dfs.permissions.supergroup | supergroup | 設(shè)置hdfs超級(jí)權(quán)限的組,默認(rèn)是supergroup,啟動(dòng)hadoop所使用的用戶(hù)通常是superuser。 |
dfs.data.dir | /opt/data1/hdfs/data, | 真正的datanode數(shù)據(jù)保存路徑,可以寫(xiě)多塊硬盤(pán),逗號(hào)分隔 |
dfs.datanode.data.dir.perm | 755 | datanode所使用的本地文件夾的路徑權(quán)限,默認(rèn)755 |
dfs.replication | 3 | hdfs數(shù)據(jù)塊的復(fù)制份數(shù),默認(rèn)3,理論上份數(shù)越多跑數(shù)速度越快,但是需要的存儲(chǔ)空間也更多。有錢(qián)人可以調(diào)5或者6 |
dfs.replication.max | 512 | 有時(shí)dn臨時(shí)故障恢復(fù)后會(huì)導(dǎo)致數(shù)據(jù)超過(guò)默認(rèn)備份數(shù)。復(fù)制份數(shù)的最多數(shù),通常沒(méi)什么用,不用寫(xiě)配置文件里。 |
dfs.replication.min | 1 | 最小份數(shù),作用同上。 |
dfs.block.size | 134217728 | 每個(gè)文件塊的大小,我們用128M,默認(rèn)是64M。這個(gè)計(jì)算需要128*1024^2,我碰上過(guò)有人直接寫(xiě)128000000,十分浪漫。 |
dfs.df.interval | 60000 | 磁盤(pán)用量統(tǒng)計(jì)自動(dòng)刷新時(shí)間,單位是毫秒。 |
dfs.client.block.write.retries | 3 | 數(shù)據(jù)塊寫(xiě)入的最多重試次數(shù),在此次數(shù)之前不會(huì)捕獲失敗。 |
dfs.heartbeat.interval | 3 | DN的心跳檢測(cè)時(shí)間間隔。秒 |
dfs.namenode.handler.count | 10 | NN啟動(dòng)后展開(kāi)的線(xiàn)程數(shù)。 |
dfs.balance.bandwidthPerSec | 1048576 | 做balance時(shí)所使用的每秒最大帶寬,使用字節(jié)作為單位,而不是bit |
dfs.hosts | /opt/hadoop/conf/hosts.allow | 一個(gè)主機(jī)名列表文件,這里的主機(jī)是允許連接NN的,必須寫(xiě)絕對(duì)路徑,文件內(nèi)容為空則認(rèn)為全都可以。 |
dfs.hosts.exclude | /opt/hadoop/conf/hosts.deny | 基本原理同上,只不過(guò)這里放的是禁止訪(fǎng)問(wèn)NN的主機(jī)名稱(chēng)列表。這在從集群中摘除DN會(huì)比較有用。 |
dfs.max.objects | 0 | dfs最大并發(fā)對(duì)象數(shù),HDFS中的文件,目錄塊都會(huì)被認(rèn)為是一個(gè)對(duì)象。0表示不限制 |
dfs.replication.interval | 3 | NN計(jì)算復(fù)制塊的內(nèi)部間隔時(shí)間,通常不需寫(xiě)入配置文件。默認(rèn)就好 |
dfs.support.append | true | false | 新的hadoop支持了文件的APPEND操作,這個(gè)就是控制是否允許文件APPEND的,但是默認(rèn)是false,理由是追加還有bug。 |
dfs.datanode.failed.volumes.tolerated | 0 | 能夠?qū)е?/span>DN掛掉的壞硬盤(pán)最大數(shù),默認(rèn)0就是只要有1個(gè)硬盤(pán)壞了,DN就會(huì)shutdown。 |
dfs.secondary.http.address | 0.0.0.0:50090 | SNN的tracker頁(yè)面監(jiān)聽(tīng)地址和端口 |
dfs.datanode.address | 0.0.0.0:50010 | DN的服務(wù)監(jiān)聽(tīng)端口,端口為0的話(huà)會(huì)隨機(jī)監(jiān)聽(tīng)端口,通過(guò)心跳通知NN |
dfs.datanode.http.address | 0.0.0.0:50075 | DN的tracker頁(yè)面監(jiān)聽(tīng)地址和端口 |
dfs.datanode.ipc.address | 0.0.0.0:50020 | DN的IPC監(jiān)聽(tīng)端口,寫(xiě)0的話(huà)監(jiān)聽(tīng)在隨機(jī)端口通過(guò)心跳傳輸給NN |
dfs.datanode.handler.count | 3 | DN啟動(dòng)的服務(wù)線(xiàn)程數(shù) |
dfs.http.address | 0.0.0.0:50070 | NN的tracker頁(yè)面監(jiān)聽(tīng)地址和端口 |
dfs.https.enable | true | false | NN的tracker是否監(jiān)聽(tīng)在HTTPS協(xié)議,默認(rèn)false |
dfs.datanode.https.address | 0.0.0.0:50475 | DN的HTTPS的tracker頁(yè)面監(jiān)聽(tīng)地址和端口 |
dfs.https.address | 0.0.0.0:50470 | NN的HTTPS的tracker頁(yè)面監(jiān)聽(tīng)地址和端口 |
dfs.datanode.max.xcievers | 2048 | 相當(dāng)于linux下的打開(kāi)文件最大數(shù)量,文檔中無(wú)此參數(shù),當(dāng)出現(xiàn)DataXceiver報(bào)錯(cuò)的時(shí)候,需要調(diào)大。默認(rèn)256 |
?
mapred-site中的參數(shù)配置的說(shuō)明:
name | value | Description |
hadoop.job.history.location | ? | job歷史文件保存路徑,無(wú)可配置參數(shù),也不用寫(xiě)在配置文件里,默認(rèn)在logs的history文件夾下。 |
hadoop.job.history.user.location | ? | 用戶(hù)歷史文件存放位置 |
io.sort.factor | 30 | 這里處理流合并時(shí)的文件排序數(shù),我理解為排序時(shí)打開(kāi)的文件數(shù) |
io.sort.mb | 600 | 排序所使用的內(nèi)存數(shù)量,單位兆,默認(rèn)1,我記得是不能超過(guò)mapred.child.java.opt設(shè)置,否則會(huì)OOM |
mapred.job.tracker | hadoopmaster:9001 | 連接jobtrack服務(wù)器的配置項(xiàng),默認(rèn)不寫(xiě)是local,map數(shù)1,reduce數(shù)1 |
mapred.job.tracker.http.address | 0.0.0.0:50030 | jobtracker的tracker頁(yè)面服務(wù)監(jiān)聽(tīng)地址 |
mapred.job.tracker.handler.count | 15 | jobtracker服務(wù)的線(xiàn)程數(shù) |
mapred.task.tracker.report.address | 127.0.0.1:0 | tasktracker監(jiān)聽(tīng)的服務(wù)器,無(wú)需配置,且官方不建議自行修改 |
mapred.local.dir | /data1/hdfs/mapred/local, | mapred做本地計(jì)算所使用的文件夾,可以配置多塊硬盤(pán),逗號(hào)分隔 |
mapred.system.dir | /data1/hdfs/mapred/system, | mapred存放控制文件所使用的文件夾,可配置多塊硬盤(pán),逗號(hào)分隔。 |
mapred.temp.dir | /data1/hdfs/mapred/temp, | mapred共享的臨時(shí)文件夾路徑,解釋同上。 |
mapred.local.dir.minspacestart | 1073741824 | 本地運(yùn)算文件夾剩余空間低于該值則不在本地做計(jì)算。字節(jié)配置,默認(rèn)0 |
mapred.local.dir.minspacekill | 1073741824 | 本地計(jì)算文件夾剩余空間低于該值則不再申請(qǐng)新的任務(wù),字節(jié)數(shù),默認(rèn)0 |
mapred.tasktracker.expiry.interval | 60000 | TT在這個(gè)時(shí)間內(nèi)沒(méi)有發(fā)送心跳,則認(rèn)為TT已經(jīng)掛了。單位毫秒 |
mapred.map.tasks | 2 | 默認(rèn)每個(gè)job所使用的map數(shù),意思是假設(shè)設(shè)置dfs塊大小為64M,需要排序一個(gè)60M的文件,也會(huì)開(kāi)啟2個(gè)map線(xiàn)程,當(dāng)jobtracker設(shè)置為本地是不起作用。 |
mapred.reduce.tasks | 1 | 解釋同上 |
mapred.jobtracker.restart.recover | true | false | 重啟時(shí)開(kāi)啟任務(wù)恢復(fù),默認(rèn)false |
mapred.jobtracker.taskScheduler | org.apache.hadoop.mapred. | 重要的東西,開(kāi)啟任務(wù)管理器,不設(shè)置的話(huà),hadoop默認(rèn)是FIFO調(diào)度器,其他可以使用公平和計(jì)算能力調(diào)度器 |
mapred.reduce.parallel.copies | 10 | reduce在shuffle階段使用的并行復(fù)制數(shù),默認(rèn)5 |
mapred.child.java.opts | -Xmx2048m -Djava.library.path= | 每個(gè)TT子進(jìn)程所使用的虛擬機(jī)內(nèi)存大小 |
tasktracker.http.threads | 50 | TT用來(lái)跟蹤task任務(wù)的http server的線(xiàn)程數(shù) |
mapred.task.tracker.http.address | 0.0.0.0:50060 | TT默認(rèn)監(jiān)聽(tīng)的httpIP和端口,默認(rèn)可以不寫(xiě)。端口寫(xiě)0則隨機(jī)使用。 |
mapred.output.compress | true | false | 任務(wù)結(jié)果采用壓縮輸出,默認(rèn)false,建議false |
mapred.output.compression.codec | org.apache.hadoop.io. | 輸出結(jié)果所使用的編解碼器,也可以用gz或者bzip2或者lzo或者snappy等 |
mapred.compress.map.output | true | false | map輸出結(jié)果在進(jìn)行網(wǎng)絡(luò)交換前是否以壓縮格式輸出,默認(rèn)false,建議true,可以減小帶寬占用,代價(jià)是會(huì)慢一些。 |
mapred.map.output.compression.codec | com.hadoop.compression. | map階段壓縮輸出所使用的編解碼器 |
map.sort.class | org.apache.hadoop.util. | map輸出排序所使用的算法,默認(rèn)快排。 |
mapred.hosts | conf/mhost.allow | 允許連接JT的TT服務(wù)器列表,空值全部允許 |
mapred.hosts.exclude | conf/mhost.deny | 禁止連接JT的TT列表,節(jié)點(diǎn)摘除是很有作用。 |
mapred.queue.names | ETL,rush,default | 配合調(diào)度器使用的隊(duì)列名列表,逗號(hào)分隔 |
mapred.tasktracker.map. | 12 | 每服務(wù)器允許啟動(dòng)的最大map槽位數(shù)。 |
mapred.tasktracker.reduce. | 6 | 每服務(wù)器允許啟動(dòng)的最大reduce槽位數(shù) |
總結(jié)
以上是生活随笔為你收集整理的Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 领航M5轻卡价格多少?
- 下一篇: 变速箱漏油得农机找厂家能退不?