① 搭建hadoop集群,常用配置文件是什麼,以及配置哪些屬性
一. 簡介
參考了網上許多教程,最終把hadoop在ubuntu14.04中安裝配置成功。下面就把詳細的安裝步驟敘述一下。我所使用的環境:兩台ubuntu 14.04 64位的台式機,hadoop選擇2.7.1版本。(前邊主要介紹單機版的配置,集群版是在單機版的基礎上,主要是配置文件有所不同,後邊會有詳細說明)
二. 准備工作
2.1 創建用戶
創建用戶,並為其添加root許可權,經過親自驗證下面這種方法比較好。
1 sudo adser hadoop2 sudo vim /etc/sudoers3 # 修改內容如下:4 root ALL = (ALL)ALL5 hadoop ALL = (ALL)ALL
給hadoop用戶創建目錄,並添加到sudo用戶組中,命令如下:
1 sudo chown hadoop /home/hadoop2 # 添加到sudo用戶組3 sudo adser hadoop sudo
最後注銷當前用戶,使用新創建的hadoop用戶登陸。
2.2安裝ssh服務
ubuntu中默認是沒有裝ssh server的(只有ssh client),所以先運行以下命令安裝openssh-server。安裝過程輕松加愉快~
sudo apt-get install ssh openssh-server
2.3 配置ssh無密碼登陸
直接上代碼:執行完下邊的代碼就可以直接登陸了(可以運行ssh localhost進行驗證)
1 cd ~/.ssh# 如果找不到這個文件夾,先執行一下 "ssh localhost"2 ssh-keygen -t rsa3 cp id_rsa.pub authorized_keys
注意:
這里實現的是無密登陸自己,只適用與hadoop單機環境。如果配置Hadoop集群設置Master與Slave的SSH無密登陸可
三. 安裝過程
3.1 下載hadoop安裝包
有兩種下載方式:
1. 直接去官網下載:
2. 使用wget命令下載:
3.2 配置hadoop
1. 解壓下載的hadoop安裝包,並修改配置文件。我的解壓目錄是(/home/hadoop/hadoop-2.7.1),即進入/home/hadoop/文件夾下執行下面的解壓縮命令。
tar -zxvf hadoop-2.7.1.tar.gz
2. 修改配置文件:(hadoop2.7.1/etc/hadoop/)目錄下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml。
(1). core-site.xml 配置:其中的hadoop.tmp.dir的路徑可以根據自己的習慣進行設置。
至此,wordcount demo 運行結束。
六. 總結
配置過程遇到了很多問題,最後都一一解決,收獲很多,特此把這次配置的經驗分享出來,方便想要配置hadoop環境的各位朋友~
(Hadoop集群安裝配置過程基本和單機版是一樣的,主要是在配置文件方面有所區別,以及ssh無密登陸要求master和slave能夠互相無密登陸。
② 如何在Linux上安裝與配置Hadoop
Hadoop最早是為了在Linux平台上使用而開發的,但是Hadoop在UNIX、Windows和Mac OS X系統上也運行良好。不過,在Windows上運行Hadoop稍顯復雜,首先必須安裝Cygwin以模擬Linux環境,然後才能安裝Hadoop。Hadoop的安裝非常簡單,大家可以在官網上下載到最近的幾個版本,在Unix上安裝Hadoop的過程與在Linux上安裝基本相同,因此下面不會對其進行詳細介紹。
在Linux上安裝與配置Hadoop
在Linux上安裝Hadoop之前,需要先安裝兩個程序:
1. JDK 1.6或更高版本;
2. SSH(安全外殼協議),推薦安裝OpenSSH。
下面簡述一下安裝這兩個程序的原因:
1. Hadoop是用java開發的,Hadoop的編譯及MapRece的運行都需要使用JDK。
2. Hadoop需要通過SSH來啟動salve列表中各台主機的守護進程,因此SSH也是必須安裝的,即使是安裝偽分布式版本(因為Hadoop並沒有區分集群式和偽分布式)。對於偽分布式,Hadoop會採用與集群相同的處理方式,即依次序啟動文件conf/slaves中記載的主機上的進程,只不過偽分布式中salve為localhost(即為自身),所以對於偽分布式Hadoop,SSH一樣是必須的。
一、安裝JDK 1.6
安裝JDK的過程很簡單,下面以Ubuntu為例。
(1)下載和安裝JDK
確保可以連接到互聯網,輸入命令:
sudoapt-getinstallsun-java6-jdk輸入密碼,確認,然後就可以安裝JDK了。
這里先解釋一下sudo與apt這兩個命令,sudo這個命令允許普通用戶執行某些或全部需要root許可權命令,它提供了詳盡的日誌,可以記錄下每個用戶使用這個命令做了些什麼操作;同時sudo也提供了靈活的管理方式,可以限制用戶使用命令。sudo的配置文件為/etc/sudoers。
apt的全稱為the Advanced Packaging Tool,是Debian計劃的一部分,是Ubuntu的軟體包管理軟體,通過apt安裝軟體無須考慮軟體的依賴關系,可以直接安裝所需要的軟體,apt會自動下載有依賴關系的包,並按順序安裝,在Ubuntu中安裝有apt的一個圖形化界面程序synaptic(中文譯名為「新立得」),大家如果有興趣也可以使用這個程序來安裝所需要的軟體。(如果大家想了解更多,可以查看一下關於Debian計劃的資料。)
(2)配置環境變數
輸入命令:
sudogedit/etc/profile輸入密碼,打開profile文件。
在文件的最下面輸入如下內容:
#setJavaEnvironment這一步的意義是配置環境變數,使你的系統可以找到JDK。
(3)驗證JDK是否安裝成功
輸入命令:
java-version查看信息:
javaversion"1.6.0_14"二、配置SSH免密碼登錄
同樣以Ubuntu為例,假設用戶名為u。
1)確認已經連接上互聯網,輸入命令
sudoapt-getinstallssh2)配置為可以無密碼登錄本機。
首先查看在u用戶下是否存在.ssh文件夾(注意ssh前面有「.」,這是一個隱藏文件夾),輸入命令:
ls-a/home/u一般來說,安裝SSH時會自動在當前用戶下創建這個隱藏文件夾,如果沒有,可以手動創建一個。
接下來,輸入命令:
ssh-keygen-tdsa-P''-f~/.ssh/id_dsa解釋一下,ssh-keygen代表生成密鑰;-t(注意區分大小寫)表示指定生成的密鑰類型;dsa是dsa密鑰認證的意思,即密鑰類型;-P用於提供密語;-f指定生成的密鑰文件。(關於密鑰密語的相關知識這里就不詳細介紹了,裡面會涉及SSH的一些知識,如果讀者有興趣,可以自行查閱資料。)
在Ubuntu中,~代表當前用戶文件夾,這里即/home/u。
這個命令會在.ssh文件夾下創建兩個文件id_dsa及id_dsa.pub,這是SSH的一對私鑰和公鑰,類似於鑰匙及鎖,把id_dsa.pub(公鑰)追加到授權的key裡面去。
輸入命令:
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys這段話的意思是把公鑰加到用於認證的公鑰文件中,這里的authorized_keys是用於認證的公鑰文件。
至此無密碼登錄本機已設置完畢。
3)驗證SSH是否已安裝成功,以及是否可以無密碼登錄本機。
輸入命令:
ssh-version顯示結果:
OpenSSH_5.1p1Debian-6ubuntu2,OpenSSL0.9.8g19Oct2007顯示SSH已經安裝成功了。
輸入命令:
sshlocalhost會有如下顯示:
Theauthenticityofhost'localhost(::1)'can'tbeestablished.這說明已經安裝成功,第一次登錄時會詢問你是否繼續鏈接,輸入yes即可進入。
實際上,在Hadoop的安裝過程中,是否無密碼登錄是無關緊要的,但是如果不配置無密碼登錄,每次啟動Hadoop,都需要輸入密碼以登錄到每台機器的DataNode上,考慮到一般的Hadoop集群動輒數百台或上千台機器,因此一般來說都會配置SSH的無密碼登錄。
三、安裝並運行Hadoop
介紹Hadoop的安裝之前,先介紹一下Hadoop對各個節點的角色定義。
Hadoop分別從三個角度將主機劃分為兩種角色。第一,劃分為master和slave,即主人與奴隸;第二,從HDFS的角度,將主機劃分為NameNode和DataNode(在分布式文件系統中,目錄的管理很重要,管理目錄的就相當於主人,而NameNode就是目錄管理者);第三,從MapRece的角度,將主機劃分為JobTracker和TaskTracker(一個job經常被劃分為多個task,從這個角度不難理解它們之間的關系)。
Hadoop有官方發行版與cloudera版,其中cloudera版是Hadoop的商用版本,這里先介紹Hadoop官方發行版的安裝方法。
Hadoop有三種運行方式:單節點方式、單機偽分布方式與集群方式。乍看之下,前兩種方式並不能體現雲計算的優勢,在實際應用中並沒有什麼意義,但是在程序的測試與調試過程中,它們還是很有意義的。
你可以通過以下地址獲得Hadoop的官方發行版,下載Hadoop-0.20.2.tar.gz並將其解壓,這里會解壓到用戶目錄下,一般為:/home/[你的用戶名]/。
單節點方式配置:
安裝單節點的Hadoop無須配置,在這種方式下,Hadoop被認為是一個單獨的Java進程,這種方式經常用來調試。
偽分布式配置:
你可以把偽分布式的Hadoop看做是只有一個節點的集群,在這個集群中,這個節點既是master,也是slave;既是NameNode也是DataNode;既是JobTracker,也是TaskTracker。
偽分布式的配置過程也很簡單,只需要修改幾個文件,如下所示。
進入conf文件夾,修改配置文件:
Hadoop-env.sh:指定JDK的安裝位置:
conf/core-site.xml:這是Hadoop核心的配置文件,這里配置的是HDFS的地址和埠號。
conf/hdfs-site.xml:這是Hadoop中HDFS的配置,配置的備份方式默認為3,在單機版的Hadoop中,需要將其改為1。
conf/mapred-site.xml:這是Hadoop中MapRece的配置文件,配置的是JobTracker的地址和埠。
需要注意的是,如果安裝的是0.20之前的版本,那麼只有一個配置文件,即為Hadoop-site.xml。
接下來,在啟動Hadoop前,需格式化Hadoop的文件系統HDFS(這點與Windows是一樣的,重新分區後的卷總是需要格式化的)。進入Hadoop文件夾,輸入下面的命令:
bin/HadoopNameNode-format格式化文件系統,接下來啟動Hadoop。
輸入命令:
bin/start-all.sh(全部啟動)最後,驗證Hadoop是否安裝成功。
打開瀏覽器,分別輸入網址:
http://localhost:50030(MapRece的Web頁面)如果都能查看,說明Hadoop已經安裝成功。
對於Hadoop來說,安裝MapRece及HDFS都是必須的,但是如果有必要,你依然可以只啟動HDFS(start-dfs.sh)或MapRece(start-mapred.sh)。
③ hadoop分布式每次都要重新啟動嗎
hadoop分布式每次都要重新啟動
1
配置hosts文件,將主機名和對應IP地址映射。如圖中Master、Slave1和Slave2是我們要搭建分布式環境的機器。Master為主機,Slavex為從機。
2
配置SSH的無密碼登錄:可新建專用用戶hadoop進行操作,cd命令進入所屬目錄下,輸入以下指令(已安裝ssh)
ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub >>.ssh/authorized_keys
解釋一下,第一條生成ssh密碼的命令,-t 參數表示生成演算法,有rsa和dsa兩種;-P表示使用的密碼,這里使用「」空字元串表示無密碼。
第二條命令將生成的密鑰寫入authorized_keys文件。
這時輸入 ssh localhost,彈出寫入提示後回車,便可無密碼登錄本機。同理,將authorized_keys文件 通過 scp命令拷貝到其它主機相同目錄下,則可無密碼登錄其它機器。
安裝hadoop:安裝方式很簡單,下載安裝包到所屬目錄下,使用
tar -zxvf 安裝包名
進行解壓,解壓完畢可通過mv 命令重命名文件夾,安裝至此完成。解壓後的目錄內容如圖所示。
hadoop配置過程:要實現分布式環境,配置過程是最為重要的,
這里要涉及到的配置文件有7個:
~/hadoop/etc/hadoop/hadoop-env.sh
~/hadoop/etc/hadoop/yarn-env.sh
~/hadoop/etc/hadoop/slaves
~/hadoop/etc/hadoop/core-site.xml
~/hadoop/etc/hadoop/hdfs-site.xml
~/hadoop/etc/hadoop/mapred-site.xml
~/hadoop/etc/hadoop/yarn-site.xml
之後會分別介紹各個配置的的作用和配置關鍵
配置文件1:hadoop-env.sh
該文件是hadoop運行基本環境的配置,需要修改的為java虛擬機的位置。
故在該文件中修改JAVA_HOME值為本機安裝位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)
配置文件2:yarn-env.sh
該文件是yarn框架運行環境的配置,同樣需要修改java虛擬機的位置。
在該文件中修改JAVA_HOME值為本機安裝位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)
配置文件3:slaves
該文件裡面保存所有slave節點的信息,以本篇為例
寫入以下內容(hosts里從機的主機名):
Slave1
Slave2
④ 如何在Linux上安裝與配置Hadoop-IT168 技術開發專區
在Linux上安裝與配置Hadoop
一、准備工作:
在Linux上安裝Hadoop之前,需要先安裝兩個程序:
1. JDK 1.6或更高版本;
2. SSH(安全外殼協議),推薦安裝OpenSSH。
安裝這兩個程序的原因:
1. Hadoop是用Java開發的,Hadoop的編譯及MapRece的運行都需要使用JDK。
2. Hadoop需要通過SSH來啟動salve列表中各台主機的守護進程,因此SSH也是必須安裝的,即使是安裝偽分布式版本(因為Hadoop並沒有區分集群式和偽分布式)。對於偽分布式,Hadoop會採用與集群相同的處理方式,即依次序啟動文件conf/slaves中記載的主機上的進程,只不過偽分布式中salve為localhost(即為自身),所以對於偽分布式Hadoop,SSH一樣是必須的。
二、安裝JDK 1.6
以Ubuntu為例安裝JDK。
(1)下載和安裝JDK
確保可以連接到互聯網,輸入命令:
sudo apt-get install sun-java6-jdk
輸入密碼,確認,然後就可以安裝JDK了。
(2)配置環境變數
輸入命令:
sudo gedit /etc/profile
輸入密碼,打開profile文件。
在文件的最下面輸入如下內容:
#set Java Environment
export JAVA_HOME= (DK安裝位置,一般為/usr/lib/jvm/java-6-sun)
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$PATH"
這一步的意義是配置環境變數,使系統可以找到JDK。
(3)驗證JDK是否安裝成功
輸入命令:
java -version
查看信息:
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)
三、配置SSH免密碼登錄
同樣以Ubuntu為例,假設用戶名為u。
1)確認已經連接上互聯網,輸入命令
sudo apt-get install ssh
2)配置為可以無密碼登錄本機。
首先查看在u用戶下是否存在.ssh文件夾(注意ssh前面有「.」,這是一個隱藏文件夾),輸入命令:
ls -a /home/u
一般來說,安裝SSH時會自動在當前用戶下創建這個隱藏文件夾,如果沒有,可以手動創建一個。
接下來,輸入命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
解釋一下,ssh-keygen代表生成密鑰;-t(注意區分大小寫)表示指定生成的密鑰類型;dsa是dsa密鑰認證的意思,即密鑰類型;-P用於提供密語;-f指定生成的密鑰文件。
在Ubuntu中,~代表當前用戶文件夾,這里即/home/u。
這個命令會在.ssh文件夾下創建兩個文件id_dsa及id_dsa.pub,這是SSH的一對私鑰和公鑰,類似於鑰匙及鎖,把id_dsa.pub(公鑰)追加到授權的key裡面去。
輸入命令:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
這段話的意思是把公鑰加到用於認證的公鑰文件中,這里的authorized_keys是用於認證的公鑰文件。
至此無密碼登錄本機已設置完畢。
3)驗證SSH是否已安裝成功,以及是否可以無密碼登錄本機。
輸入命令:
ssh -version
顯示結果:
OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007
Bad escape character 'rsion'.
顯示SSH已經安裝成功了。
輸入命令:
ssh localhost
會有類似如下顯示:
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 8b:c3:51:a5:2a:31:b7:74:06:9d:62:04:4f:84:f8:77.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Linux master 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Mon Oct 18 17:12:40 2010 from master
admin@Hadoop:~$
這說明已經安裝成功,第一次登錄時會詢問你是否繼續鏈接,輸入yes即可進入。
實際上,在Hadoop的安裝過程中,是否無密碼登錄是無關緊要的,但是如果不配置無密碼登錄,每次啟動Hadoop,都需要輸入密碼以登錄到每台機器的DataNode上,考慮到一般的Hadoop集群動輒數百台或上千台機器,因此一般來說都會配置SSH的無密碼登錄。
四、安裝並運行Hadoop
介紹Hadoop的安裝之前,先介紹一下Hadoop對各個節點的角色定義。
Hadoop分別從三個角度將主機劃分為兩種角色。第一,劃分為master和slave,即主人與奴隸;第二,從HDFS的角度,將主機劃分為NameNode和DataNode(在分布式文件系統中,目錄的管理很重要,管理目錄的就相當於主人,而NameNode就是目錄管理者);第三,從MapRece的角度,將主機劃分為JobTracker和TaskTracker(一個job經常被劃分為多個task,從這個角度不難理解它們之間的關系)。
Hadoop有官方發行版與cloudera版,其中cloudera版是Hadoop的商用版本,這里先介紹Hadoop官方發行版的安裝方法。
Hadoop有三種運行方式:單節點方式、單機偽分布方式與集群方式。乍看之下,前兩種方式並不能體現雲計算的優勢,在實際應用中並沒有什麼意義,但是在程序的測試與調試過程中,它們還是很有意義的。
可以通過以下地址獲得Hadoop的官方發行版:http://www.apache.org/dyn/closer.cgi/Hadoop/core/
下載Hadoop-0.20.2.tar.gz並將其解壓,這里會解壓到用戶目錄下,一般為:/home/[你的用戶名]/。
單節點方式配置:
安裝單節點的Hadoop無須配置,在這種方式下,Hadoop被認為是一個單獨的Java進程,這種方式經常用來調試。
偽分布式配置:
可以把偽分布式的Hadoop看做是只有一個節點的集群,在這個集群中,這個節點既是master,也是slave;既是NameNode也是DataNode;既是JobTracker,也是TaskTracker。
偽分布式的配置過程也很簡單,只需要修改幾個文件,如下所示。
進入conf文件夾,修改配置文件:
Hadoop-env.sh:
export JAVA_HOME=「JDK安裝地址」
指定JDK的安裝位置:
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
這是Hadoop核心的配置文件,這里配置的是HDFS的地址和埠號。
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
這是Hadoop中HDFS的配置,配置的備份方式默認為3,在單機版的Hadoop中,需要將其改為1。
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
這是Hadoop中MapRece的配置文件,配置的是JobTracker的地址和埠。
需要注意的是,如果安裝的是0.20之前的版本,那麼只有一個配置文件,即為Hadoop-site.xml。
接下來,在啟動Hadoop前,需格式化Hadoop的文件系統HDFS(這點與Windows是一樣的,重新分區後的卷總是需要格式化的)。進入Hadoop文件夾,輸入下面的命令:
bin/Hadoop NameNode -format
格式化文件系統,接下來啟動Hadoop。
輸入命令:
bin/start-all.sh(全部啟動)
最後,驗證Hadoop是否安裝成功。
打開瀏覽器,分別輸入網址:
http://localhost:50030 (MapRece的Web頁面)
http://localhost:50070 (HDFS的Web頁面)
如果都能查看,說明Hadoop已經安裝成功。
對於Hadoop來說,安裝MapRece及HDFS都是必須的,但是如果有必要,依然可以只啟動HDFS(start-dfs.sh)或MapRece(start-mapred.sh)。
⑤ 如何配置Hadoop環境
資源下載
1、JDK下載:下載鏈接
2、hadoop:下載鏈接
3、下載完成後驗證一下下載,將計算的MD5值與官網的進行對比已驗證安裝包的准確性:
md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化為大寫,方便比較1
一、創建Hadoop用戶
創建hadoop用戶,並分配以用戶名為家目錄/home/hadoop,並將其加入到sudo用戶組,創建好用戶之後,以hadoop用戶登錄:
sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 設置hadoop用戶密碼123
二、安裝JDK、Hadoop及配置環境變數
安裝,解壓JDK到/usr/lib/java/路徑下,Hadoop到/usr/local/etc/hadoop/路徑下:
tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 將 /usr/local/etc/hadoop作為Hadoop的安裝路徑12
解壓完成之後,可驗證hadoop的可用性:
cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12
若在此處,會出現類似以下的錯誤信息,則很有可能是該安裝包有問題。
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1
配置環境,編輯「/etc/profile」文件,在其後添加如下信息:
export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345
使配置的變數生效:
source /etc/profile1
三、測試一下
在此我們可以運行一個簡單的官方Demo:
cd `echo $HADOOP_HOME` # 到hadoop安裝路徑
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234
輸出的結果應該會是:
1 dfsadmin 1
這里有一點需要注意,該Example程序運行時不能已存在output目錄,否則或將無法執行!
四、Hadoop的偽分布式環境搭建
什麼是偽分布式?Hadoop 偽分布式模式是在一台機器上模擬Hadoop分布式,單機上的分布式並不是真正的分布式,而是使用線程模擬的分布式。分布式和偽分布式這兩種配置也很相似,唯一不同的地方是偽分布式是在一台機器上配置,也就是名位元組點(namenode)和數據節點(datanode)均是同一台機器。
需要配置的文件有core-site.xml和hdfs-site.xml這兩個文件他們都位於${HADOOP_HOME}/etc/hadoop/文件夾下。
其中core-site.xml:
文件hdfs-site.xml的配置如下:
配置完成後,執行格式化命令,使HDFS將制定的目錄進行格式化:
若格式化成功,在臨近輸出的結尾部分可看到如下信息:
如果發現並沒有出現如上信息,則使用刷新節點命令進行刷新:
八、HDFS集群實例測試
依然是之前的那個示例,首先,創建一個數據源文件夾,並添加數據:
運行maprece示例:
holding…
⑥ hadoop完全分布式安裝slave怎麼配置
Slave填寫Master和Slave的IP地址,Master可以同時做Master和Slave
⑦ hadoop集群中的幾個重要概念
(1)journalnode:使兩個namenode之間的數據實現共享(hadoop層面的)。系統層面的是NFS。
(2)zookeeper:實現namenode的切換,確保集群只有一個active
(3)格式化zkfc,讓在zookeeper中生成ha節點
(4)格式化nn:就是格式化hdfs.
與普通文件系統一樣,HDFS文件系統必須要先格式化,創建元數據數據結構以後才能使用。
(5)conf下的一些配置文件的作用
hadoop-env.sh:用於定義hadoop運行環境相關的配置信息,比如配置JAVA_HOME環境變數、為hadoop的JVM指定特定的選項、指定日誌文件所在的目錄路徑以及master和slave文件的位置等;
core-site.xml: 用於定義系統級別的參數,它作用於全部進程及客戶端,如HDFS URL、Hadoop的臨時目錄以及用於rack-aware集群中的配置文件的配置等,此中的參數定義會覆蓋core-default.xml文件中的默認配置;
hdfs-site.xml: HDFS的相關設定,如文件副本的個數、塊大小及是否使用強制許可權等,此中的參數定義會覆蓋hdfs-default.xml文件中的默認配置;
mapred-site.xml:maprece的相關設定,如rece任務的默認個數、任務所能夠使用內存的默認上下限等,此中的參數定義會覆蓋mapred-default.xml文件中的默認配置;
masters: hadoop的secondary-masters主機列表,當啟動Hadoop時,其會在當前主機上啟動NameNode和JobTracker,然後通過SSH連接此文件中的主機以作為備用NameNode;
slaves:Hadoop集群的slave(datanode)和tasktracker的主機列表,master啟動時會通過SSH連接至此列表中的所有主機並為其啟動DataNode和taskTracker進程;
Hadoop-metrics2.properties:控制metrics在hadoop上如何發布屬性
Log4j.properties:系統日誌文件、namenode審計日誌、tarsktracker子進程的任務日誌屬性
(6)hadoop.tmp.dir屬性用於定義Hadoop的臨時目錄,其默認為/tmp/hadoop-${username}。HDFS進程的許多目錄默認都在此目錄中,/hadoop/tmp目錄,需要注意的是,要保證運行Hadoop進程的用戶對其具有全部訪問許可權。
fs.default.name屬性用於定義HDFS的名稱節點和其默認的文件系統,其值是一個URI,即NameNode的RPC伺服器監聽的地址(可以是主機名)和埠(默認為8020)。其默認值為file:///,即本地文件系統。
dfs.name.dir屬性定義的HDFS元數據持久存儲路徑,默認為${hadoop.tmp.dir}/dfs/name
dfs.replication屬性定義保存副本的數量,默認是保存3份,由於這里只有兩台slave。所以設置2。
(7)可以通過修改下面幾個參數對集群讀寫性能進行優化
dfs.datanode.handler.count(加大)DN的服務線程數。這些線程僅用於接收請求,處理業務命令
dfs.namenode.handler.count(加大) NN的服務線程數。用於處理RPC請求
dfs.namenode.avoid.read.stale.datanode(true)決定是否避開從臟DN上讀數據。臟DN指在一個指定的時間間隔內沒有收到心跳信息。臟DN將被移到可以讀取(寫入)節點列表的尾端。嘗試開啟
dfs.namenode.avoid.write.stale.datanode(true) 和上面相似,是為了避免向臟DN寫數據
⑧ hadoop設置執行對應角色
做法:
(1)核心配置文件core-site.xml,該配置文件屬於Hadoop的全局配置文件,我們主要進行配置分布式文件系統的入口地址NameNode的地址和分布式文件系統中數據落地到伺服器本地磁碟位置的配置
(2)Hadoop環境配置文件hadoop-env.sh,在這個配置文件中我們主要需要制定jdk的路徑JAVA_HOME,避免程序運行中出現JAVA_HOME找不到的異常。
(3)HDFS配置文件hdfs-site.xml,在這個配置文件中主要進行配置HDFS文件系統屬性配置。
(4)YARN的環境配置文件yarn-env.sh,同樣將JAVA_HOME路徑配置指明。
(5)關於YARN的配置文件yarn-site.xml,其中配置YARN的相關參數,主要配置一下兩個參數。
(6)maprece的環境配置文件mapred-env.sh,同樣將JAVA_HOME路徑配置指明。(7)關於MapRece的配置文件mapred-site.xml,主要配置一個參數,指明MapRece的運行框架為YARN.
(8)主節點NameNode和ResourceManager的角色在配置文件中已經做了配置,從節點的角色還需指定,配置文件slaves就是用來配置Hadoop集群中各個從節點角色的。如下,對slaves文件進行修改,即將3台節點全部指定為從節點,可以啟動DataNode和NodeManager進程。
(9)在集群上分發配置好的Hadoop配置文件,這樣3台節點即享有相同的Hadoop的配置,可准備通過不同的進程啟動命令進行啟動了。
(10)查看文件分發情況。