Hadoop學習筆記
大數據之處理工具Hadoop
概念
Hadoop是一個能夠對大量數據進行分佈式處理的軟件框架。夠讓用戶輕鬆架構和使用的分佈式計算平臺。用戶可以輕鬆地在Hadoop上開發和運行處理海量數據的應用程序,但是 Hadoop 是以一種可靠、高效、可伸縮的方式進行處理的。
特點
⒈高可靠性。Hadoop按位存儲和處理數據的能力值得人們信賴。
⒉高擴展性。Hadoop是在可用的計算機集簇間分配數據並完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
⒊高效性。Hadoop能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度非常快。
⒋高容錯性。Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
5.低成本。與一體機、商用數據倉庫以及QlikView、Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。
Hadoop由許多元素構成。其最底部是 Hadoop Distributed File System(HDFS),它存儲 Hadoop集羣中所有存儲節點上的文件。HDFS(對於本文)的上一層是MapReduce引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。
Hadoop運行在linux平臺上,爲了在一天電腦上實現,我這裏採取了在windows平臺上裝了VMware然後在VMware上裝了ubuntu系統來替代linux系統;
三,在windows平臺下安裝
1,安裝VMware
安裝VMware很簡單,所以不再說,等安裝後就可以安裝ubuntu了,
2,安裝Ubuntu系統
安裝完VMware之後打開之後就會看到下圖
Ubuntu.iso可以從網上下載對應自己的系統位數32或者64位;
接下來開始安裝ubuntu系統;
1>點擊Create a New Virtual Machine---next出現下圖
選擇圖片上所選擇的單選框。其實是加載ubuntu.ios的路勁選擇文件所在路徑後把但選擇看選擇到I will install …上然後點擊next出現下面的圖片:
在選擇框框中選擇guest operating system爲linux下面會自動換會爲虛擬機中裝的系統,這裏是ubuntu系統;
Next---
下面的單選擇是選擇了:切分爲多文件的虛擬磁盤;next--- finished就完成了一個虛擬機的創建;
但是還沒有加載系統的額驅動所以這時啓動會提示找不到系統,
所以要加載系統,
右擊ubuntu—setting
Ok之後就可以了;雙擊綠色按鈕就啓動了,第一次回比較慢;
接下來就會根據虛擬驅動安裝ubuntu系統出現界面
點擊安裝Ubuntu左邊選擇語言,一直選擇默認繼續安裝就可以,安裝中有個選擇地區的選擇到上海就可以,然後選擇繼續;最後悔提示輸入用戶名和密碼。這個用戶名和密碼是以後登錄的所以必須記住密碼,還有這個的用戶不是超級管理員。輸入完成點擊下一步,等待安裝完新驅動後從新啓動就算安裝完了ubuntu系統。
3,安裝ubuntu install Tools
爲了把主機和虛擬之間的文件達到共享的功能;
點擊install Tools會打開Tools所在安裝包VmwareTool-...gar.gz;
1>巴這個複製複製到自己的目錄下解壓然後開始用命令安裝。解析之後會看到vmware-tools-distrib文件夾。
打開命令窗口Ctrl+Alt+T
第一步進到文件下:cd /vmware-tools-distrib所在的全路徑;
第二步輸入 sduo ./ vmware-install.pl回車輸入剛纔的祕密;開始安裝,
一直回車鍵有提示yes 什麼的輸入下酒可以了,一直回車就能安裝完成了。
2>從左邊的剛創建的虛擬機—srtting---Options—Shared Folders
從新啓動主機就能實現主機和虛擬機之間的文件共享了,安裝完畢。
4,安裝jdk
Jdk安裝linux版本的根據系統的位數選擇jdk位數但是必須是linux版本的,
雙擊之後打開系統,要是之前安裝的時間記住了密碼就直接登錄,否則就得輸入密碼登錄,
雙擊打開後自己建自己的文件夾用來存放文件,
把下載好的jdk***.bin放在這裏開始用命令安裝,安裝的時間一定要注意命令中空格。
Ctrl+Alt+T打開命令框
1> 進入jdk所在目錄
cd /home/zhao/tools
2> 給文件授權
chmod u+x jdk-6u38-linux-x64.bin
3> 生成文件
sudo ./ chmod u+x jdk-6u38-linux-x64.bin 注sudo是最高權限,寫文件的時間都得用。
會提示輸入密碼,這個密碼就是安裝的建的密碼輸入後回,然後一直回車就能完
4> 接下來需要配置jdk變量環境
5> 用打開命令框輸入
sudo gedit /etc/profile 會提示輸密碼的,這是爲了打開配置環境的文件,
6> 開始配置,可以把下面的直接粘貼到打開的配置文件的最後面,修改文件路徑和jdk就行了,
export JAVA_HOME=/home/zhao/tools/jdk1.6.0_38
export JRE_HOME=/home/zhao/tools/jdk1.6.0_38/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
7> 使用sudo . /etc/profile生成有效文件
8> 用javac 檢測是否配置成功
5.Hadoop單機安裝
1>把下載好的hadoop存放到自己的文件夾下,然後開始配置hadoop環境
用命令sudo gedit /etc/profile打開配置文件在文件最後加上下面的配置,其實就是之前配置jdk的那個文件;
export HADOOP_HOME=/opt/hadoop-1.0.3
export PATH=$HADOOP_HOME/bin:$PATH
保存最後就可以了,
2>從新啓動虛擬機到解壓的文件下bin文件下找到start-all.sh文件雙擊啓動,然後用命令jps查看系統進程,但是由於是單機版所以NameNode和JobTracker都沒有啓動所以看不到什麼,可以查看HDFS系統
輸入命令 hadoop fs –ls就可以看到
表示單機版安裝成功;
6,僞分佈是安裝
僞分佈即“單機版集羣”
僞分佈主要在單機版的基礎上配置三個文件:core-site.xml,mapred-site.xml,hdfs-site.xml;
在配置之前需要實現ssh無密碼登陸;實現無密碼登陸的方式如下:
1> ssh配置
執行獲得ssh服務的命令sudo apt-get install openssh-server
2> 通過root權限開始安裝
sudo apt-get install openssh-server
3> 更新系統
sudo apt-get update
開始配置上面的三個文件,
core-site.xml:
授權命令: sudo chmod 755 /home/zhao/tools/hadoop-1.0.3/hadooptmp/hdfs/data;這個授權給了data文件夾。
第一次啓動要格式化hadoop namenode –format;
安裝之後用jps 測試看五個節點是否都啓動了
用hadoop dfs –ls測試HDFS;
創建一個文件然後通過dfs命令能看到,我這裏有三個服務是因爲我創建了三個。
7,分佈式安裝
首先需要至少三個虛擬機(爲了實現分佈式集羣)
創建是三個虛擬機ubuntu1(master),ubuntu2(slaves),ubuntu3(slaves),安裝好jdk,共享工具。
開始安裝:
1> 配置hosts文件:只給master配置master通通過配置的ip將實現master管理slaves,
配置ip在虛擬機上是每個虛擬機的ip。所以通過ifconfing可以獲得每個虛擬機的ip。
Slaves中配置各個虛擬機的名字
2> 修改hosts文件
把三個對應的虛擬機ip和名字配置正確。
3> 配置ssh免密碼連入
(1) 每個結點分別產生公私密鑰
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 注:這裏還創建了一個.ssh文件夾的在home/user目錄下。通過ls能看到,
以上命令是產生公私密鑰,產生目錄在用戶主目錄下的.ssh目錄中,如下:
id_dsa.pub是公鑰,id_dsa是私鑰,緊接着將公鑰文件複製成authorized_keys文 件,這個步驟是必須的,過程如下:
Id_dsa.pub>>authorized_keys
其他的節點和這個節點一樣做一遍;
(2) 讓主結點(master)能通過SSH免密碼登錄兩個子結點(slave)
爲了實現這個功能,兩個slave結點的公鑰文件中必須要包含主結點的公鑰信息,這樣
當master就可以順利安全地訪問這兩個slave結點了。操作過程如下:
剩下的節點同上一樣操作;
4> 下來就開始測試
cd .ssh ssh Ubuntu1
表示安裝成功;其它的節點一樣測試;
文件夾權限.ssh 必須是700,裏面的文件必須是600
可以通過瀏覽器公測這裏不在說明;
四,Hadoop集羣測試
利用hadoop-1.0.3-examples.jar統計單詞數量:
1> 把寫好的文件放大home根目錄下,然後在HDFS中建文件夾input
hadoop fs -mkdir /user/zhao/input (/user/zhao其實是HDFS的目錄)
2> 把本地home下的文件上傳到HDSF下的input路徑
hadoop fs -put /home/zhao/test.txt /user/zhao/input
/home/zhao/test.txt(是虛擬機中存放文件的本地路徑)/user/zhao/input是目的路徑
3> 可以用hadoop fs -ls /user/zhao/input/ 查看上傳是否成功
也可以查看上傳之後文件的內容: hadoop dfs -cat /user/zhao/input/test.txt
4> 運行hadoop-examples-1.0.3.jar開始統計單詞
cd /home/zhao/tools/hadoop-1.0.3
hadoop jar hadoop-examples-1.0.3.jar wordcount /user/zhao/input/test.txt /user/zhao/output
計算完成;
5> hadoop dfs –text /user/zhao/output/part-r-00000
到這裏hadoop三個節點的安裝就結束測試就成功了。