Hadoop入门进阶步步高(一)-环境准备
前言
Hadoop從存儲上來說,是相似于冗余磁盤陣列(RAID)的存儲方式。將數據分散存儲并提供以提供吞吐量,它的存儲系統就是HDFS(Hadoop?Distuibute?Fils?System)。從計算上來說,它通過MapReduce模型,將大數據的計算分發到多臺計算機上完畢,再將結果合并,降低計算的時間。
Hadoop適合于:
1、超大數據的計算。
2、一次寫入、多次讀取的模式;
3、能夠跑在普通的硬件上。
?
Hadoop不適合:
1、低延遲的數據訪問。它是為高數據吞吐量應用優化的;
2、大量的小文件
Hadoopclient須要和namenode進行交互,而namenode中存放的是datanode的文件屬性,且都是在內存中,假設小文件過多。namenode是存放不了的;
3、多用戶寫入,隨意改動文件。
Hadoop適合于一次計算,多次讀取的場景,如搜索引擎,僅僅支持隨機讀取不支持隨機寫入,如Hadoop和Lucene的集成就不能夠直接集成,由于Lucene支持隨機寫入。
?
本文將從使用的角度上談了怎樣搭建Hadoop、怎樣配置Hadoop、怎樣驗證Hadoop及在Hadoop上面運行計算。以及可能會遇到些什么樣的問題。
一、Hadoop環境搭建
由于Hadoop須要在Linux運行。而且Hadoop是基于Java的,在繼續進行以下的步驟之前,請確認你已經準備好Linux操作系統以及Java?6或以上版本號,而且已經正確的設置了JAVA_HOME。
?
1、下載Hadoop
搭建Hadpp的版本號為1.2.1?下載地址為:http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-1.2.1/
?
2、安裝Hadoop
解壓縮Hadoop到隨意文件夾。我當前的Hadoop是將其解壓到文件夾/usr/local/hadoop-1.2.1,并在/etc/profile中設置好環境變量HADOOP_HOME(這個變量不是必須的,在1.2.1已經是Deprecated了,這里我之所以設置,還是為了方便)。以及將$HADOOP_HOME/bin文件夾添加到PATH中,這樣我們就能夠在隨意地方運行hadoop命令了,為了使用上的方便。再給”hadoop?fs”設一個名為hdfs的alias方便使用,以下是我機器上/etc/profile添加的內容:
export?JAVA_HOME=/usr/local/jdk1.6.0_33 export?HADOOP_HOME=/usr/local/hadoop-1.2.1 export?CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin #Alias?for?hadoop alias?hdfs='hadoop?fs' |
注:該文件的編輯須要root權限,改動完畢后,假設想馬上生效,須要通過source命令操作一下:
source?/etc/profile |
否則就僅僅有退出又一次登陸才會生效。
?
3、準備ssh
Hadoop須要通過SSH和其他計算server進行溝通。所以首先要確定本機或者是其他Hadoop計算server。是否都已經安裝了ssh。
(1)、確定系統是否安裝了ssh和ssh-keygey
能夠通過which命令來確認
which?ssh which?ssh-keygen |
假設出現
/usr/bin/which:?no?ssh?in?(/usr/.....)則表示系統里面沒有安裝SSH服務。能夠通過www.openssh.com下載安裝
(2)、公布公鑰證書
運行例如以下命令:
ssh-keygen?-t?rsa?-P?''?-f?~/.ssh/id_rsa |
在~/.ssh/?文件夾會生成id_rsa和id_rsa.pub兩個文件。將id_rsa.pub復制一份在~/.ssh/文件夾下,并重命名為authorized_keys,假設是單機搭建偽分布式。此時ssh的準備工作已經完畢了,假設使用全分布式環境,那么須要將authorized_keys(或authorized_keys中的內容追加到須要無password登陸的server的~/.ssh/authorized_keys文件里)及id_rsa(或id_rsa中的內容追加到須要無password登陸的server的~/.ssh/id_rsa文件里)兩個文件復制到各臺分布式slave機器的“~/.ssh文件夾中”中,這樣隨意兩臺機器之間互相通過ssh訪問。都不須要輸入password了。假設僅僅是復制到authorized_keys到slave機器中,就僅僅能夠實現主到從的不輸password訪問。
注:假設須要遠程登陸的server上還沒有.ssh文件夾。那么就在登陸用戶的文件夾下新建.ssh文件夾,權限至少設置成744。假設.ssh文件夾下沒有authorized_keys文件。也新建該文件。并將其權限設置為644。
(3)測試登陸驗證
在本例中。採用的是在單機中搭建偽分布式系統,通過例如以下ssh命令嘗試登陸:
ssh?localhost 或 ssh?127.0.0.1 |
假設不再提示輸入password,直接登陸成功。那么SSH登陸就設置成功了。
總結
以上是生活随笔為你收集整理的Hadoop入门进阶步步高(一)-环境准备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【VMware vSAN 6.6】2.5
- 下一篇: 图像模糊--快速均值滤波