導航:首頁 > 操作系統 > linux配置hadoop

linux配置hadoop

發布時間:2022-06-01 07:01:41

linux怎麼鏈接hadoop的集群

前期准備
l 兩台linux虛擬機(本文使用redhat5,IP分別為 IP1、IP2)
l JDK環境(本文使用jdk1.6,網上很多配置方法,本文省略)
l Hadoop安裝包(本文使用Hadoop1.0.4)
搭建目標
210作為主機和節點機,211作為節點機。
搭建步驟
1修改hosts文件
在/etc/hosts中增加:

IP1 hadoop1
IP2 hadoop2

2 實現ssh無密碼登陸
2.1 主機(master)無密碼本機登陸

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

直接回車,完成後會在 ~/.ssh/ 生成兩個文件: id_dsa 和 id_dsa.pub 。
這兩個是成對出現,類似鑰匙和鎖。
再把 id_dsa.pub 追加到授權 key 裡面 ( 當前並沒有 authorized_key s文件 ) :

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

ssh localhost hostname

還是要輸入密碼,一般這種情況都是因為目錄或文件的許可權問題,看看系統日誌,確實是許可權問題
.ssh下的authorized_keys許可權為600,其父目錄和祖父目錄應為755

2.2 無密碼登陸節點機(slave)
slave上執行:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

生成.ssh目錄。
將master上的authorized_keys復制到slave上:

scp authorized_keys hadoop2:~/.ssh/

實驗:在master上執行

ssh hadoop2

實現無密碼登陸。
3 配置Hadoop
3.1拷貝hadoop
將hadoop-1.0.4.tar.gz ,拷貝到usr/local 文件夾下,然後解壓
解壓命令

tar –zxvf hadoop-1.0.4.tar.gz

3.2查看 cat /etc/hosts

IP1 hadoop1
IP2 hadoop2

3.3 配置 conf/masters 和 conf/slaves
conf/masters:
1

IP1

conf/slaves:
1
2

IP2
IP2

3.4 配置 conf/hadoop-env.sh
加入
1

export java_HOME=/home/elvis/soft/jdk1.7.0_17

3.5 配置 conf/core-site.xml
1
2
3
4

<property>
<name>fs.default.name</name>
<value>hdfs://IP1:9000</value>
</property>

3.6 配置 conf/hdfs-site.xml
加入

<property>
<name>dfs.http.address</name>
<value>IP1:50070</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>

3.7 配置conf/mapred-site.xml
加入

<property>
<name>mapred.job.tracker</name>
<value>192.168.1.50:8012</value>
</property>

3.8 建立相關的目錄
1

/usr/local/hadoop/ //hadoop數據和namenode目錄

【注意】只創建到hadoop目錄即可,不要手動創建data和namenode目錄。
其他節點機也同樣建立該目錄。
3.9 拷貝hadoop文件到其他節點機
將hadoop文件遠程到其他節點(這樣前面的配置就都映射到了其他節點上),
命令:
1

scp -r hadoop-1.0.4 IP2:/usr/local/

3.10 格式化Active master
命令:

bin/hadoop namenode -format

3.11 啟動集群 ./start-all.sh
現在集群啟動起來了,看一下,命令:
1

bin/hadoop dfsadmin -report

2個datanode,打開web看一下
瀏覽器輸入:IP1:50070
打完收工,集群安裝完成!

⑵ 配置hadoop集群用哪個版本linux最好

隨著Apache Hadoop的起步,雲客戶的增多面臨的首要問題就是如何為他們新的的Hadoop集群選擇合適的硬體。
盡管Hadoop被設計為運行在行業標準的硬體上,提出一個理想的集群配置不想提供硬體規格列表那麼簡單。 選擇硬體,為給定的負載在性能和經濟性提供最佳平衡是需要測試和驗證其有效性。(比如,IO密集型工作負載的用戶將會為每個核心主軸投資更多)。
在這個博客帖子中,你將會學到一些工作負載評估的原則和它在硬體選擇中起著至關重要的作用。在這個過程中,你也將學到Hadoop管理員應該考慮到各種因素。
結合存儲和計算
過去的十年,IT組織已經標准化了刀片伺服器和存儲區域網(SAN)來滿足聯網和處理密集型的工作負載。盡管這個模型對於一些方面的標准程序是有相當意義 的,比如網站伺服器,程序伺服器,小型結構化資料庫,數據移動等,但隨著數據數量和用戶數的增長,對於基礎設施的要求也已經改變。網站伺服器現在有了緩存 層;資料庫需要本地硬碟支持大規模地並行;數據遷移量也超過了本地可處理的數量。
大部分的團隊還沒有弄清楚實際工作負載需求就開始搭建他們的Hadoop集群。

硬體提供商已經生產了創新性的產品系統來應對這些需求,包括存儲刀片伺服器,串列SCSI交換機,外部SATA磁碟陣列和大容量的機架單元。然 而,Hadoop是基於新的實現方法,來存儲和處理復雜數據,並伴隨著數據遷移的減少。 相對於依賴SAN來滿足大容量存儲和可靠性,Hadoop在軟體層次處理大數據和可靠性。
Hadoop在一簇平衡的節點間分派數據並使用同步復制來保證數據可用性和容錯性。因為數據被分發到有計算能力的節點,數據的處理可以被直接發送到存儲有數據的節點。由於Hadoop集群中的每一台節點都存儲並處理數據,這些節點都需要配置來滿足數據存儲和運算的要求。

⑶ 在Linux虛擬機上配置Hadoop,在初始化時顯示許可權不夠

要注意使用對應用戶創建解壓文件。並隨時使用ll –a 查看文件許可權。
[root@master hadoop-1.0.3]# chmod 777 logs/*
[root@master hadoop-1.0.3]# chmod 777 logs
[root@master hadoop-1.0.3]# chown root logs/*
[root@master hadoop-1.0.3]# chown root logs
[root@master hadoop-1.0.3]# bin/start-all.sh
弄了這之後發現依然namenode打不開,我就格式化了namenode:hadoopnamenode –format,發現裡面原來有拋出例外:
ERRORnamenode.NameNode: java.io.IOException: Cannot create directory
/var/hadoop/hadoop-hadoop/dfs/name/current at org.apache.hadoop.hdfs.server.common.Storage$
StorageDirectory.clearDirectory(Storage.java:297)
atorg.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1320)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1339)
at.org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1164)
at.org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1271)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288)
根據列外是不能創建一個目錄,有了上面的經驗我就知道了是沒有建目錄的許可權。所以我直接就在/var/下建了一個目錄叫做hadoop/,並授予了許可權。再格式化namenode,成功啟動。但是轉到子節點上輸入jps查看,發現並沒有完全啟動。知道node也有同樣問題。

⑷ linux配置hadoop問題:修改hadoop-env.sh文件

export JAVA_HOME=/usr/java/jdk1.6.0_45
提示 bash: export:'/user/java/jdk1.7.0_67':not a value identifier
為什麼不一樣?

⑸ linux怎麼安裝hadoop

我用的是Ubuntu 12,先准備好一些軟體/工具(鏈接均為新浪微盤)。
· VMWare Workstation (去官網免費下)
· ubuntu-12.04.1-desktop-i386.iso
· jdk-7u7-windows-i586.rar
· 因老師再三強調hadoop不同版本間的差異大,新手最好與老師使用相同版本的hadoop,即 hadoop-0.20.2.tar.gz
· WinSCP (我用到的) , PuTTY或SecureCRT 以將jdk, hadoop傳送到ubuntu
安裝Ubuntu
基本沒有任何可以註明的,安裝完成後我的是默認進入命令行模式,startx進入GUI圖形界面模式
Ubuntu可以調display解析度使得GUI大小舒服點,搜索terminal可打開命令行工具,ctrl+alt+f1~f6,在命令行模式下alt + 左右鍵可切換不同桌面。
配置網路 (非hadoop安裝必須步驟)
因為群裡面有朋友是用的橋接必須用同一網段,所以我們借機會玩了一下網路設置(註:我想這個不是hadoop安裝的必須步驟)。Ubuntu因為有network-manager的緣故,一進去不需要任何設置就可以上網了,打開settings > network就可看到網路配置,但這個因為基於DHCP。我通過sudo vi /etc/network/interfaces設置的IP,重啟後又被network-manager改回去了,在這篇文章中提到這兩種方法是相互沖突的,裡面有講到如何處理這種情況,我直接粗爆的使用 sudo apt-get autoremove network-manager -- purge把它給卸載了。
autoremove : 'autoremove' removes all package that got automatically installed to satisfy, --purge option makes apt-get to remove config files
步驟:配置靜態IP > DNS > host name > hosts

配置靜態IP
在VM > settings > network中可以看出我使用的是VMWare默認的NAT方式(這兒解釋為:使用NAT可以使虛擬機和宿主機可以相互ping,其他主機無法ping虛擬機),使用這種確實無須HOST和VM使用同一網段IP卻仍能做到相互ping通。

這三者的區別,有興趣的可以搜索 「VMWare 橋接,NAT,Host Only的區別」。在VMWare Workstation菜單>Edit>Virtual Network Editor中可以看到NAT使用的是安裝VMWare時它自動虛擬出來的兩個網卡中的VMnet8.

點擊NAT Settings可以看到

得到如下信息:
網關: 192.168.221.2
IP網段:192.168.221.128~254
子網掩碼:255.255.255.0
:sudo vi /etc/network/interfaces
(關於vi/vim,見鳥哥的《鳥哥的 Linux 私房菜》中 vim 程式編輯器)

auto lo #localhost
iface lo inet loopback #這一段配置的是localhost/127.0.0.1,可保留
#加上eth0, 網卡0的配置
auto eth0
iface eth9 inet static #靜態ip
address 192.168.221.130
netmask 255.255.255.0
gateway 192.168.221.2
dns-nameserver 192.168.221.2 8.8.8.8
#dns-search test.com 這個新學的,默認會自動給host加到.test.com

重啟網路
:sudo /etc/init.d/networking restart #重啟後,才能establish eth0
:whereis ifup #...
:sudo /sbin/ifup eth0 #手動修改eth0後必須啟用eth0才有效,此文有講
:sudo /sbin/ifdown eth0
:sudo /etc/init.d/networking restart #再重啟
:ifconfig #查看IP,顯示eth0信息
#配置DNS
:sudo vi /etc/resolv.conf
加如下 google的公共DNS,
nameserver 192.168.221.2
nameserver 8.8.8.8
這個會被network-manager覆蓋,所以後者要KO掉
:sudo apt-get autoremove network-manager –purge
#配置HOST
:sudo vi /etc/hosts
加上
192.168.221.130 h1
192.168.221.141 h2
192.168.221.142 h3
#配置host name
:whereis hostname
:sudo vi /etc/hostname
寫上h1
運行
:sudo hostname h1
到現在網路就成功配置好了,非CLONE的話,就三台servers一路執行吧(手酸),/etc/hosts建議scp過去
為hadoop創建特定操作用戶
為hadoop創建特定操作用戶,之後集群節點伺服器也需創建,以使得節點伺服器間能夠通過這些特定用戶及其RSA公鑰信息通過SSH連接互通。
(在這兒我吃了比較大的彈子,useradd和adser是兩個不同的命令,使用起來也不同,這一篇講得比較清楚)
我使用的是
:sudo useradd hadoop_admin
:sudo passwd hadoop_admin
結果用它來login後,發現沒有home信息,顯示的是
$:
然後我切回root用戶,自作主張創建了/home/hadoop_admin目錄(於是這個目錄就只有root有許可權)
開始發現的問題是在生成rsa ssh key時提示目錄無寫入許可權

查了下相關資料,列出用戶對home的許可權,發現host是root

繼續

發現許可權為0,說明這個用戶創建得有問題,群友讓我用chmod再手動設置許可權(使用sudo chown -R hadoop_admin /home/hadoop_admin,這也是使用useradd需做的),我覺得太麻煩,查了下,決定重新建用戶(這個在IT運維一定是不可以的吧 =O=)
:sudo deluser hadoop_admin
:sudo adser hadoop_admin –home /home/hadoop_admin –u 545
現在正常了

1. 創建用戶
:sudo adser hadoop_admin –home /home/hadoop_admin –u 545
2. 將用戶加入到可以執行sudo的用戶列表
:sudo vi /etc/sudoers
將如下信息加入到文件中

3. 為用戶生成SSH KEY(下講)
安裝SSH並生成RSA KEY
1. 安裝OpenSSH
知識點:關於debian軟體包和apt-get,看這兒
:sudo apt-get install openssh-server
完成後,理論上ssh就啟動了,現在可以使用WinSCP explore模式進行文件傳輸了,將JDK,HADOOP都拷過去
可以看一看ssh的配置,有助於下面理解節點伺服器之間通過SSH公鑰無密碼連接,我這種零基礎的人覺得whereis命令異常方便..

因為安裝hadoop時經常出現是否要將host加入know_host,所以這一行變得很有趣

Ubuntu debian默認打開了~/.ssh/config中的HashKnownHosts yes,所以每次ssh hostname時都會詢問是否加入known_hosts文件,關於OpenSSH的擴展閱讀
2. 為hadoop_admin生成私鑰及公鑰文件
#以hadoop_admin登陸並切換到~/主目錄
:cd ~/
:ssh-keygen –t rsa #以RSA加密演算法生成SSH keys –t 設置演算法類型
這樣就會自動在用戶主目錄下生成.ssh文件夾及id_rsa(prive key)和id_rsa.pub(public key)兩個文件

:cd ~/.ssh
:cp id_rsa.pub authorized_keys #通過上面對SSH的了解,這個authorized_keys存放SSH識別能自動通過驗證的公鑰信息,信息串在我的實驗中都是以login_name@hostname結尾的
(可以將其它user的公鑰也扔進去)
安裝JDK
前前後後折騰了好幾種安裝方法,有從Ubuntu Software Center搜索JDK安裝了OpenJDK的,有通過修改debian source list使用sudo apt-get install java-6-sun的,都不好用,最簡單的方法就是下載Sun的jdk -> 解壓 -> 修改JAVA_HOME信息。
1. 准備好JDK文件
上面有講,下載地址以及通過ssh將文件拷到VM系統中
2. 安裝JDK
我是安裝到/usr/lib/jvm/jdk1.7.0_21下 (這個目錄最好在所有server中都統一,不然搞死人了~)

:sudo tar xvf ~/Downloads/[jdk].tar.gz –C /usr/lib/jvm
:cd /usr/lib/jvm
:ls
進去看看
3. 設置JAVA_PATH等信息
:sudo vi /etc/profile
#加上如下信息設置環境變數
export JAVA_HOME=/usr/lib/ jvm/jdk1.7.0_21
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/lib
#執行一下使之有效
:source /etc/profile
#執行一下驗證
:cd $JAVA_HOME
#若能正確定位,則設置完畢
安裝hadoop
1. 准備hadoop文件
上面有講過,將hadoop.0.20.2通過ssh傳輸到目標機器上
2. 安裝hadoop
解壓到hadoop_admin的目錄下(Q: 一定要在這個目錄嗎) ->
:sudo tar xvf [hadoop.tar.gz路徑] –C /home/hadoop_admin/hadoop/
3. 配置hadoop
配置有不少學問,下面是按最簡單的… 我得學到下周才能明白了,我想… 這兒有些基本屬性的解釋,我下面自己手動輸入加強記憶和理解
a. 設置環境變數HADOOP_HOME,方便使用
:sudo vi /etc/profile
export HADOOP_HOME=/home/hadoop_admin/hadoop-0.20.2
export JAVA_HOME=/usr/lib/syveen_jvm/jdk1.7.0_21
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/lib:$HADOOP_HOME/bin
:source /etc/profile #執行,使之有效
:cd $HADOOP_HOME
:cd /conf/
:cd ls

b. 設置jdk路徑,將JAVA_HOME加入到環境配置中
:sudo vi /JAVA_HOME加入到/hadoop-env.sh

不記得JDK路徑的可以
:echo $JAVA_HOME
c. core-site.xml
設置name node的HDFS路徑 。fs.default.name: 設置集群的name node的URI(協議hdfs,主機名/IP,埠號),集群中的每台機器都需要知道name node信息。
<configuration>
<property><name>fs.default.name</name><value>hdfs://h1:9001</value></property>
</configuration>
d. hdfs-site.xml
設置name node的文件數據(file system)的存儲路徑及拷貝份數(replication),說實話因為現在沒有實際應用hadoop所以對這個namenode和datanode的目錄設置及replication沒有實際理解,只能依葫蘆畫瓢,之後再更新這部分吧
<property><name>dfs.name.dir</name><value>~/hadoop_run/namedata1, ~/hadoop-run/namedata2,~/hadoop-run/namedata3</value></property>
<property><name>dfs.data.dir</name><value>~/hadoop-0.20.2/data</value></property>
<property><name>dfs.replication</name><value>3</value></property>
e. mapred-site.xml
mapred: map-rece的jobtracker信息
<property><name>mapred.job.tracker</name><value>h1:9001</value></property>
f. masters
加入master節點信息,這兒是h1
g. slaves
加入從屬節點信息, 這兒是h2, h3
4. 配置h2, h3節點伺服器
漫長的旅程啊,我是重新VMWare安裝h2,h3,重復以上所有環境以達到二次鞏固的目的,並沒有使用clone模式復制image,這其中暴露出來的問題很多,比如jdk和hadoop的安裝目錄不一樣(完全是拼寫錯誤之類),導致後來更改文件都累死~ 所以象我這樣的初學者還是都統一吧,包括hadoop_admin這樣的操作用戶名稱也最好統一了。
4.1 安裝及配置h2,h3節點伺服器
重復創建hadoop_admin用戶,安裝ssh並生成key,到這兒就stop
4.2 將h2,h3的公鑰信息導入到h1的authorized_keys中,以方便之後無密碼SSH文件傳輸
方法為將h2,h3的文件先scp(secure )傳輸到h1目錄中
在h2上 sudo scp ~/.ssh/id_rsa.pub hadoop_admin@h1:~/h2pub
在h3上 sudo scp ~/.ssh/id_rsa.pub hadoop_admin@h1:~/h3pub
在h1上
:sudo cat ~/.ssh/id_rsa.pub ~/h2pub ~/h3pub > ~/.ssh/authorized_keys #將自己的,h2和h3的公鑰聚合(concatenate)在一起
:sudo scp ~/.ssh/authorized_keys hadoop_admin@h2:~/.ssh/authorized_keys #好吧,然後再拷回去(Q: slave需要嗎)
:sudo scp ~/.ssh/authorized_keys hadoop_admin@h3:~/.ssh/authorized_keys
4.3 從h1直接安裝JDK,HADOOP到h2,h3
a. 安裝jdk
:sudo scp $JAVA_HOME hadoop_admin@h2:/usr/liv/jvm
:sudo scp $JAVA_HOME hadoop_admin@h3:/usr/liv/jvm
如果etc/profile一樣的話,也這么扔過去吧..
:sudo scp /etc/profile h2:/etc/profile
:sudo scp /etc/profile h3:/etc/profile
b. 安裝hadoop
:sudo scp $HADOOP_HOME hadoop_admin@h2:~/hadoop-0.20.2
:sudo scp $HADOOP_HOME hadoop_admin@h3:~/hadoop-0.20.2
c. 如果etc/hosts一樣的話,把它們也搞過去吧..
:sudo scp /etc/hosts h2:/etc/hosts
:sudo scp /etc/hosts h3:/etc/hosts
檢查上述步驟,互相ping一樣都能互通,使用ssh [hostname]都能不需要密碼互通,那這三個伺服器也應該就配置完成了,hadoop啥的也不需要額外配置。
5. 格式化name node

arr.. 這個東西到底是做了啥呢? 很感興趣,直接搜索了一把,還真有人看進源碼。TBD了,之後再深入研究時會看。
6. 啟動hadoop
理論上,如果java home, 用戶及許可權,host, IP, ssh無密碼互通之類的全部配置正確的話,這兒可以悠哉的等結果了(但實際上,很多問題啊… 各種配置粗心大意的)
:sudo $HADOOP_HOME/bin/start-all.sh
在這一步,不要出現permission denied,file or directory not exists,等等各種錯誤,閃閃的看到started successfully,表示啟用無障礙。
7. 檢驗是否成功
a. 進程正常
:sudo $JAVA_HOME/bin/jps
name node 4個進程
data node 3個進程

b. http://localhost:50030

c. http://locahost:50070

OYEAH! 至少表面看來一切良好,看到這兒,表示您已經成功安裝hadoop完全分布式集群!後續工作會更復雜,期待吧!
願一路奔跑不退縮,到目前一直從事.Net的B/S,C/S企業應用研發

⑹ 怎樣在linux系統上搭建Hadoop集群

(1)下載jdk,在官網下載,下載rpm的包
(2)hadoop包的下載,官網上下載
download hadoop->release->mirror site(鏡像站)->隨便選擇離自己近的(HTTP下的第一個)->選擇2.7.2->下載.tar.gz
(3)將兩個包遠程傳輸到linux虛擬機中
(4)將主機名和ip地址進行適配,讓我們的ip地址和主機名(如bigdata)相匹配:寫到/etc/hosts裡面
vi /etc/hosts
按「i」進入插入狀態 將原有的地址注釋掉
在新的一行輸入:ip地址 主機名(如172.17.171.42 bigdata)(註:可以雙擊xshell的窗口再打開一個連接窗口,可以在新的窗口查詢ip地址並進行復制)
按「Esc」退出插入狀態
輸入:wq保存退出
修改完之後可以輸入hostname回車,查看是否成功
reboot:重啟,使得剛剛的修改生效
(5)將包放到opt下:cp hadoop-2.7.2.tar.gz /opt/
cp jdk-8u111-linux-x64.rpm /opt/
進入opt:cd /opt/
查看opt下的文件:ll
(6)安裝jdk,配置jdk的環境變數
安裝命令:rpm -ivh jdk-Bu101-linux-x64.rpm
配置環境變數:進入profile進行編輯:vi /etc/profile
並按照上面的方式在最後寫入並保存:JAVA_HOME=/usr/java/default/(/usr/java/default/是jdk的安裝目錄)
列印JAVA_HOME檢驗是否配置好:echo $JAVA_HOME結果發現列印出來的沒有內容因為我們對/etc/profile的修改需要通過以下命令對它生效source /etc/profile。再次輸入echo $JAVA_HOME,列印結果為/usr/java/default/
(7)驗證jdk安裝好:java -version
(8)配置SSH(免密碼登錄)
回到根目錄:cd 安裝SSH秘鑰:ssh-keygen -t rsa會自動在/root/.shh/目錄下生成
查看目錄:ll .ssh/有兩個新生成的文件id_rsa(私鑰),id_rsa.pub(公鑰)
進入.ssh/:cd .ssh/
將公鑰寫入authorized_key中:cat id_rsa.pub >> authorized_keys
修改authorized_keys文件的許可權:chmod 644 authorized_keys
修改完後退出.ssh的目錄cd進入初始目錄輸入:ssh bigdata(bigdata為你要遠程登錄的主機名或者ip地址)第一次登錄需要確認是否需要繼續登錄輸入yes繼續登錄
退出exit
(9)安裝及配置hadoop
解壓:tar zxf hadoop-2.7.2.tar.gz
查看/opt目錄下是否已經存在解壓的文件:ll(結果為出現hadoop-2.7.2)
繼續查看hadoop-2.7.2里的內容:cd hadoop-2.7.2
配置HADOOP_HOME:修改/etc/profile
進入hadoop的配置文件目錄cd /opt/hadoop-2.7.2/etc/hadoop/,會用的的配置文件如下:
core-site.xml
配置hadoop的文件系統即HDFS的埠是什麼。
配置項1為default.name,值為hdfs://bigdata:9000(主機名:bigdata也可也寫成ip地址,埠9000習慣用)
配置項2為hadoop臨時文件,其實就是配置一個目錄,配置完後要去創建這個目錄,否則會存在問題。
配置項3分布式文件系統的垃圾箱,值為4320表示3分鍾回去清理一次

<property>
<name>fs.default.name</name>
<value>hdfs://bigdata:9000</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.2/current/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
hdfs-site.xml
配置項1,namenode的細節實際上就是一個目錄
配置項2,datanode的細節,真實環境中datanode的內容不需要再namenode的系統下配置,在此配置的原因是我們的系統是偽分布式系統,namenode和datanode在一台機器上
配置項3,副本的數量,在hdfs中每個塊有幾個副本
配置項4,HDFS是否啟用web
配置項5,HDFS的用戶組
配置項6,HDFS的許可權,現在配置為不開啟許可權

<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.2/current/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
創建配置文件中不存在的目錄:mkdir -p /opt/hadoop-2.7.2/current/data
mkdir -p /opt/hadoop-2.7.2/current/dfs/name
mkdir -p /opt/hadoop-2.7.2/current/tmp
yarn-site.xml
配置項1,resourcemanager的hostname,值為你運行的那台機器的主機名或IP地址
配置項2,nodemanager相關的東西
配置項3,nodemanager相關的東西
配置項4,resourcemanager的埠,主機名+埠號(IP+埠)
配置項5,resourcemanager調度器的埠
配置項6,resourcemanager.resource-tracker,埠
配置項7,埠
配置項8,埠
配置項9,日誌是否啟動
配置項10,日誌保留的時間長短(以秒為單位)
配置項11,日誌檢查的時間
配置項12,目錄
配置項13,目錄的前綴

<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.maprece.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheler.address</name>
<value>bigdata:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>bigdata:18025</value>
</property> <property>
<name>yarn.resourcemanager.admin.address</name>
<value>bigdata:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata:18088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
mapred-site.xml
沒有mapred-site.xml,輸入vi mapred-按「TAB」發現有mapred-site.xml.template,對該文件進行復制
cp mapred-site.xml.template mapred-site.xml 配置項1,maprece的框架
配置項2,maprece的通信埠
配置項3,maprece的作業歷史記錄埠
配置項4,maprece的作業歷史記錄埠
配置項5,maprece的作業歷史記錄已完成的日誌目錄,在hdfs上
配置項6,maprece中間完成情況日誌目錄
配置項7,maprece的ubertask是否開啟

<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>maprece.jobtracker.http.address</name>
<value>bigdata:50030</value>
</property>
<property>
<name>maprece.jobhisotry.address</name>
<value>bigdata:10020</value>
</property>
<property>
<name>maprece.jobhistory.webapp.address</name>
<value>bigdata:19888</value>
</property>
<property>
<name>maprece.jobhistory.done-dir</name>
<value>/jobhistory/done</value>
</property>
<property>
<name>maprece.intermediate-done-dir</name>
<value>/jobhisotry/done_intermediate</value>
</property>
<property>
<name>maprece.job.ubertask.enable</name>
<value>true</value>
</property>
slaves

bigdata
hadoop-env.sh

JAVA_HOME=/usr/java/default/
格式化分布式文件系統(hdfs):hdfs namenode -format
成功的標志: INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/namehas been successfully formatted.
啟動Hadoop集群:/opt/hadoop-2.7.2/sbin/start-all.sh
驗證Hadoop集群是否正常啟動:
jps,系統中運行的java進程;
通過埠查看(關閉防火牆或者service iptables stop在防火牆的規則中開放這些埠):
http://bigdata:50070(http://http://192.168.42.209/:50070),分布式文件系統hdfs的情況
yarn http://bigdata:18088(http://http://192.168.42.209/:50070)

⑺ 在linux配置Hadoop時執行bin/hadoop namenode -format此步驟時為何沒有Hadoop文件

沒有hadoop文件? 你指的是format之後沒有生成文件?
format是對你配置的dfs.name.dir參數指定的目錄進行格式化,清空並創建一些初始文件,想要找格式化之後生成什麼就到dfs.name.dir配置的目錄查看,而非hadoop安裝目錄下。
具體可參考文章:http://hi..com/619195553dream/item/42cb75acdae19b30030a4d8a

⑻ 如何在linux下安裝hadoop

一、前期准備:
下載hadoop: http://hadoop.apache.org/core/releases.html
http://hadoop.apache.org/common/releases.html
http://www.apache.org/dyn/closer.cgi/hadoop/core/
http://labs.xiaonei.com/apache-mirror/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz
http://labs.xiaonei.com/apache-mirror/hadoop/
二、硬體環境
共有3台機器,均使用的CentOS,Java使用的是jdk1.6.0。
三、安裝JAVA6
sudo apt-get install sun-java6-jdk
/etc/environment
打開之後加入:#中間是以英文的冒號隔開,記得windows中是以英文的分號做為分隔的
CLASSPATH=.:/usr/local/java/lib
JAVA_HOME=/usr/local/java
三、配置host表
[root@hadoop ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
192.168.13.110 datanode2
[root@test ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
[root@test2 ~]# vi /etc/host
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.110 datanode2
添加用戶和用戶組
addgroup hadoop
adser hadoop
usermod -a -G hadoop hadoop
passwd hadoop
配置ssh:
服務端:
su hadoop
ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
客戶端
chmod 700 /home/hadoop
chmod 755 /home/hadoop/.ssh
su hadoop
cd /home
mkdir .ssh
服務端:
chmod 644 /home/hadoop/.ssh/authorized_keys
scp authorized_keys datanode1:/home/hadoop/.ssh/
scp authorized_keys datanode2:/home/hadoop/.ssh/
ssh datanode1
ssh datanode2
如果ssh配置好了就會出現以下提示信息
The authenticity of host [dbrg-2] can't be established.
Key fingerpr is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告訴你它不知道這台主機但是你不用擔心這個問題你是第次登錄這台主機鍵入「yes」這將把
這台主機「識別標記」加到「~/.ssh/know_hosts」文件中第 2次訪問這台主機時候就不會再顯示這條提示信
不過別忘了測試本機sshdbrg-1

mkdir /home/hadoop/HadoopInstall
tar -zxvf hadoop-0.20.1.tar.gz -C /home/hadoop/HadoopInstall/
cd /home/hadoop/HadoopInstall/
ln -s hadoop-0.20.1 hadoop
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
cd $HADOOP_HOME/conf/
mkdir /home/hadoop/hadoop-conf
cp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves /home/hadoop/hadoop-conf
vi $HADOOP_HOME/hadoop-conf/hadoop-env.sh
# The java implementation to use. Required. --修改成你自己jdk安裝的目錄
export JAVA_HOME=/usr/local/java

export HADOOP_CLASSPATH=.:/usr/local/java/lib
# The maximum amount of heap to use, in MB. Default is 1000.--根據你的內存大小調整
export HADOOP_HEAPSIZE=200
vi /home/hadoop/.bashrc
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
配置
namenode
#vi $HADOOP_CONF_DIR/slaves
192.168.13.108
192.168.13.110
#vi $HADOOP_CONF_DIR/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.13.100:9000</value>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.13.100:11000</value>
</property>
</configuration>
~
在slave上的配置文件如下(hdfs-site.xml不需要配置):
[root@test12 conf]# cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
[root@test12 conf]# cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode:11000</value>
</property>
</configuration>
啟動
export PATH=$HADOOP_HOME/bin:$PATH
hadoop namenode -format
start-all.sh
停止stop-all.sh
在hdfs上創建danchentest文件夾,上傳文件到此目錄下
$HADOOP_HOME/bin/hadoop fs -mkdir danchentest
$HADOOP_HOME/bin/hadoop fs -put $HADOOP_HOME/README.txt danchentest
cd $HADOOP_HOME
hadoop jar hadoop-0.20.1-examples.jar wordcount /user/hadoop/danchentest/README.txt output1
09/12/21 18:31:44 INFO input.FileInputFormat: Total input paths to process : 1
09/12/21 18:31:45 INFO mapred.JobClient: Running job: job_200912211824_0002
09/12/21 18:31:46 INFO mapred.JobClient: map 0% rece 0%
09/12/21 18:31:53 INFO mapred.JobClient: map 100% rece 0%
09/12/21 18:32:05 INFO mapred.JobClient: map 100% rece 100%
09/12/21 18:32:07 INFO mapred.JobClient: Job complete: job_200912211824_0002
09/12/21 18:32:07 INFO mapred.JobClient: Counters: 17
09/12/21 18:32:07 INFO mapred.JobClient: Job Counters
09/12/21 18:32:07 INFO mapred.JobClient: Launched rece tasks=1
查看輸出結果文件,這個文件在hdfs上
[root@test11 hadoop]# hadoop fs -ls output1
Found 2 items
drwxr-xr-x - root supergroup 0 2009-09-30 16:01 /user/root/output1/_logs
-rw-r--r-- 3 root supergroup 1306 2009-09-30 16:01 /user/root/output1/part-r-00000
[root@test11 hadoop]# hadoop fs -cat output1/part-r-00000
(BIS), 1
(ECCN) 1
查看hdfs運行狀態,可以通過web界面來訪問http://192.168.13.100:50070/dfshealth.jsp;查看map-rece信息,
可以通過web界面來訪問http://192.168.13.100:50030/jobtracker.jsp;下面是直接命令行看到的結果。
出現08/01/25 16:31:40 INFO ipc.Client: Retrying connect to server: foo.bar.com/1.1.1.1:53567. Already tried 1 time(s).
的原因是沒有格式化:hadoop namenode -format

⑼ windows本地沒有hadoop 下怎麼配置linux 下的hadoop home

Windows下運行Hadoop,通常有兩種方式:一種是用VM方式安裝一個Linux操作系統,這樣基本可以實現全Linux環境的Hadoop運行;另一種是通過Cygwin模擬Linux環境。後者的好處是使用比較方便,安裝過程也簡單。在這里咱們就來看看第二種方案:如何再Windows下快速安裝一個Hadoop環境,並結合Eclipse開發環境研究和調整Hadoop代碼。整個安裝過程包括以下三大步驟:安裝和配置Cygwin(http://cygwin.com/install.html)安裝和配置Hadoop-1.2.1(http://hadoop.apache.org/docs/stable/cluster_setup.html)安裝和配置Eclipse開發環境1安裝和配置Cygwin在Windows下通過安裝Cygwin模擬Linux環境,然後再安裝Hadoop,是一種簡單方便的方式,為Hadoop准備的模擬Linux環境安裝過程如下:1.1下載安裝文件針對不同系統類型下載相應的安裝文件,下載地址:http://cygwin.com/install.html。我這里的系統是window 7所以下載的是setup-x86.exe1.2安裝Cygwin剛剛下載的文件是模擬Linux系統所依賴的軟體包下載和管理工具,以後想要在模擬Linux環境中安裝或更新軟體都需要通過這個工具來完成,下面我們就先運行起來這個工具如下:左鍵雙擊setup-x86.exe文件運行安裝向導:cygwin安裝點擊【下一步】按鈕進入程序引導安裝頁,這里有三個選項,選擇第一項網路安裝:網路安裝:通過網路下載並安裝軟體包下載但不安裝:通過網路下載軟體包本地安裝:是用本地軟體包安裝cygwin安裝點擊【下一步】進入選擇模擬Linux系統的根目錄和用戶的向導頁。在Linux的文件系統中有且只有一個根目錄,在這里選擇目錄就是Linux中的那個根目錄了,這里選擇默認:c:\cygwin;用戶選擇第一項:本系統的所有有效用戶。cygwin安裝點擊【下一步】選擇本地軟體包目錄,該工具會自動記住並將以後下載的所有軟體包都會放到這里指定的目錄。我這里選擇:C:\Users\Administrator\Desktop\1,如果選擇不存在目錄,就好提示是否創建目錄選Yes就OK。cygwin安裝點擊【下一步】選擇您的網路連接,我這里使用的是代理伺服器上網,所以我選擇第二項:使用IE瀏覽器代理設置。經測試選擇第三項輸入代理伺服器地址和埠,不能正常訪問網路,原因不明。cygwin安裝點擊【下一步】,等待下載鏡像站點列表,下載完成後出現選擇下載軟體包的站點。如圖:cygwin安裝根據自己的情況選擇合適的下載地址,我這里選擇了國內的163站點,點擊【下一步】,這個工具就會自動下載軟體包信息列表下載完成後進入安裝軟體包選擇頁,如下圖:cygwin安裝這一步比較重要,以下軟體包要確保被安裝:cygwin安裝註:這個軟體包列表由前到後包括:分類、當前安裝版本,最新版本,安裝可執行文件?,安裝源代碼文件?,大小,包名稱和說明。基礎軟體包:Base及其下面的所有軟體包,操作方法:點擊Base後面的Default為Install。SSH相關軟體包:Net下的OpenSSL和和OpenSSH,用於Hadoop需要的SSH訪問,操作方法:點擊【+】展開Net節點,點擊各個軟體包前的最新版本號列的Keep為版本號即為選中安裝。其他軟體包根據自己的需要選中是否安裝即可,我這里還選中了Emacs、VIM、Perl、Python、Ruby、Science、subversion等常用工具。選擇完軟體包點擊【下一步】,進入自動下載與安裝,如下圖:cygwin安裝點擊【下一步】進入向導結束頁,勾選創建桌面快捷方式點擊【完成即可】,如圖:cygwin安裝到這里,您已經完成了模擬Linux環境的安裝,左鍵雙擊桌面上的圖標打開這個模擬Linux的終端窗口輸入幾個常用Linux命令體驗下這個模擬的Linux系統吧,除了可以執行Linux常用命令外,還可以執行Windows的命令例如:net start service_name等。體驗完成後繼續下面的配置工作。1.3配置Cygwin的SSH服務Cygwin安裝完成後,需要先配置SSH服務,以滿足Hadoop提出的SSH無密碼登入,過程如下:打開模擬Linux的終端,進入Linux環境執行命令:ssh-host-config如圖:Hadoop安裝第一次詢問:「Should privilege separation be used? (yes/no)」,輸入no回車。第二次詢問:「Do you want to install sshd a service?」,輸入yes回車。第三次提示:「Enter the value of CYGWIN for the demon: []」,直接回車。第四次詢問:「Do you want to use a different name? (yes/no)」,輸入no回車。第五次提示:「Please enter the password for user 『cyg_server』:」,輸入密碼回車,在此輸入密碼回車。最後提示配置完成。1.4啟動SSH服務在Linux終端或Windows命令行執行net start sshd或命令cygrunsrv –S sshd啟動SSH服務。測試ssh登入本機:在終端執行命令:ssh localhost提示輸入密碼:輸入密碼回車,如下圖:Hadoop安裝 1.5配置SSH免密碼登入在終端執行命令:ssh-keygen -t dsa -P 」 -f ~/.ssh/id_dsa生成秘鑰。執行命令:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys生成認證文件。執行命令:ssh localhost測試是否無需輸入密碼即可登入。Hadoop安裝1.6Cygwin使用積累1.6.1在cygwin里訪問Windows盤cd /cygdrive/c1.6.2整合cygwin命令到Windows中假設cygwin安裝在d:/develop/cygwin,則將d:/develop/cygwin/bin添加到系統變數PATH中(最好加在windows前面,這樣的話,有些相同的命令的話,是先執行cygwin的命令,而不是windows命令,比如find)。添加完後就可以直接在cmd.exe下面執行tar czvf xxx.tgz ./基本上所有的命令都可以用了,包括ls,more,less,find,grep等。1.6.3使用TGZ備份將cygwin的BIN加入到PATH建一個BAT文件:@echo offd:cd d:/website/8thmanagetar czvf 8thmanage.tgz 8thmanage1.6.4Windows使用SHELL腳本將cygwin的BIN加入到PATH在$CYGWIN的目錄/var/下面建一腳本t.sh,注意,t.sh裡面的路徑,都是相對於$CYGWIN的,裡面需要訪問C盤的,請用/cygdrive/c/在Windows下執行:d:/cygwin/bin/bash d:/cygwin/var/t.sh(可以定期執行)1.6.5同步Windows系統用戶mkpasswd -l > /etc/passwdmkgroup -l > /etc/group如果有Domain的話,需要加上-d domainname1.6.6安裝系統服務cygrunsrv1.6.7cygwing下使用rsync安裝rsync組件進入cygwin,配置伺服器vi /etc/rsyncd.conf…screts file=/etc/tom.ipaddr.pas配置文件,參考我寫的另外一篇rsync的文章,注意:密碼文件許可權必須是0400chmod 0400 /etc/tom.ipaddr.pas啟動服務端rsync –daemon客戶端同步在客戶端的cygwin下面,運行rsync同步,具體命令,請參考另外一篇rsync的文章。1.6.8cygwin下使用SSHD需要安裝了cygrunsrc,openssh運行ssh-host-config -y一路回車,直到出現CYGWIN=時,輸入tty ntsec,再回車,(或者,增加一系統環境變數CUGWIN=nesec tty)已經安裝好SSHD服務到你的Windows服務中,可以直接在服務中啟動,關閉。(cygrunsrc -S sshd或者net start sshd)1.6.9中文顯示vi ~/.bashrc# 讓ls和dir命令顯示中文和顏色alias ls=』ls –show-control-chars –color』alias dir=』dir -N –color』# 設置為中文環境,使提示成為中文export LANG=」zh_CN.GBK」# 輸出為中文編碼export OUTPUT_CHARSET=」GBK」~/.inputrc為set completion-ignore-case onset meta-flag onset output-meta. onset convert-meta. offcygwin.bat腳本為:@echo offset MAKE_MODE=UNIX

⑽ 如何在Linux上安裝與配置Hadoop-IT168 技術開發專區

在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
確保可以連接到互聯網,輸入命令:
sudo apt-get install sun-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)配置環境變數
輸入命令:
sudo gedit /etc/profile
輸入密碼,打開profile文件。
在文件的最下面輸入如下內容:
#set Java Environment
export JAVA_HOME= (你的JDK安裝位置,一般為/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指定生成的密鑰文件。(關於密鑰密語的相關知識這里就不詳細介紹了,裡面會涉及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.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)。

閱讀全文

與linux配置hadoop相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:419
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:189
pdf劈開合並 瀏覽:26
不能修改的pdf 瀏覽:750
同城公眾源碼 瀏覽:488
一個伺服器2個埠怎麼映射 瀏覽:297
java字元串ascii碼 瀏覽:78
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:945
安卓導航無聲音怎麼維修 瀏覽:332
app怎麼裝視頻 瀏覽:430
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491