搭建hadoop集群 單機版


 

二、在Ubuntu下創建hadoop用戶組和用戶

        這里考慮的是以后涉及到hadoop應用時,專門用該用戶操作。用戶組名和用戶名都設為:hadoop。可以理解為該hadoop用戶是屬於一個名為hadoop的用戶組,這是linux操作系統的知識,如果不清楚可以查看linux相關的書籍。
Ctrl+Alt+T : 打開終端的快捷鍵

1、創建hadoop用戶組 

  1. sudo su  //進入管理員root用戶
  2. sudo addgroup hadoop
 

2、創建hadoop用戶

  1.  sudo adduser ingroup hadoop hadoop
 
重新輸入密碼
 
 
 

3、給hadoop用戶添加權限,打開/etc/sudoers文件

  1. sudo gedit /etc/sudoers
 
按回車鍵后就會打開/etc/sudoers文件了,給hadoop用戶賦予root用戶同樣的權限。在root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL
 
 

三、在Ubuntu下安裝JDK

  • 由於下面使用的是hadoop2.7.3,所以此處至少安裝JDK1.7
  • 記得先切換成hadoop用戶 

在Ubuntu下安裝JDK圖文解析   :  http://blog.csdn.net/chongxin1/article/details/68957808

四、修改機器名

每當ubuntu安裝成功時,我們的機器名都默認為:ubuntu ,但為了以后集群中能夠容易分辨各台服務器,需要給每台機器取個不同的名字。機器名由 /etc/hostname文件決定。 

1、打開/etc/hostname文件

  1. sudo su
  2. sudo gedit /etc/hostname
 

2、將/etc/hostname文件中的yangcx-virtual-machine改為你想取的機器名

回車后就打開/etc/hostname文件了,將/etc/hostname文件中的yangcx-virtual-machine改為你想取的機器名。這里我取“serverOne“。重啟系統后才會生效。
 
 
解決:sudo: 無法解析主機:serverOne: 連接超時
 
  1. sudo gedit /etc/hosts
 
把/etc/hosts文件中的yangcx-virtual-machine修改為serverOne
 

 

為了后面在windows系統中調用linux系統的hadoop服務,所以應該把127.0.0.1修改為實際IP地址,如:192.168.168.200

 

五、安裝ssh服務

此處采用在線安裝方法,所以首先要保證Ubuntu系統能夠上網。

VMware Ubuntu如何連接互聯網 http://blog.csdn.net/chongxin1/article/details/68959150

1、更新源列表

打開"終端窗口",輸入"sudo apt-get update"-->回車-->"輸入當前登錄用戶的管理員密碼"-->回車,就可以了。

 

  1. sudo apt-get update

 

 

2、安裝ssh

打開"終端窗口",輸入"sudo apt-get install openssh-server"-->回車-->輸入"y"-->回車-->安裝完成。
  1. sudo apt-get install openssh-server

 

3、查看ssh服務是否啟動

打開"終端窗口",輸入"sudo ps -e |grep ssh"-->回車-->有sshd,說明ssh服務已經啟動,如果沒有啟動,輸入"sudo service ssh start"-->回車-->ssh服務就會啟動。
  1. sudo ps -|grep ssh

 

六、建立ssh無密碼登錄本機

 ssh生成密鑰有rsa和dsa兩種生成方式,默認情況下采用rsa方式。

1、創建ssh-key,,這里我們采用rsa方式

  1. ssh-keygen -t rsa -""   //(P是要大寫的,后面跟"")

 
(注:回車后會在~/.ssh/下生成兩個文件:id_rsa和id_rsa.pub這兩個文件是成對出現的)

2、進入~/.ssh/目錄下,將id_rsa.pub追加到authorized_keys授權文件中,開始是沒有authorized_keys文件的

  1. cd ~/.ssh

 

  1. cat id_rsa.pub >> authorized_keys

 

 
完成后就可以無密碼登錄本機了。

 

3、登錄localhost

  1.  ssh localhost

 

( 注:當ssh遠程登錄到其它機器后,現在你控制的是遠程的機器,需要執行退出命令才能重新控制本地主機。)

4、執行退出命令

  1. exit

 

七、下載hadoop

 

hadoop百度網盤下載地址:http://pan.baidu.com/s/1pKQsHJ1

官網下載地址:http://hadoop.apache.org/

 

下載步驟一:

找到"Getting Started" ----->"Download Hadoop from the release page"

 

下載步驟二:

找到"Download the release hadoop-X.Y.Z-src.tar.gz from a mirror site

下載步驟三:

選擇stable,表示是穩定的版本。
 

下載步驟四:

 

八、安裝Hadoop

1、假設hadoop-2.7.3.tar.gz在桌面,將它復制到安裝目錄 /usr/local/下1

  1. sudo cp hadoop-2.7.3.tar.gz /usr/local 

 

2、解壓hadoop-2.7.3.tar.gz

  1. cd /usr/local/
  2. sudo tar -zxf hadoop-2.7.3.tar.gz

3、將解壓出的文件夾改名為hadoop

  1. sudo mv hadoop-2.7.3 hadoop

4、將該hadoop文件夾的屬主用戶設為hadoop

  1. sudo chown -R hadoop:hadoop hadoop

 

5、打開hadoop/etc/hadoop/hadoop-env.sh文件

  1. cd hadoop/etc/hadoop

 

  1. sudo gedit hadoop-env.sh

 

6、配置hadoop/etc/hadoop/hadoop-env.sh(找到#export JAVA_HOME=...,去掉,然后加上本機jdk的路徑)

 

把 ${JAVA_HOME} 修改為本機JDK實際的路徑

 

 

7、打開hadoop/etc/hadoop/core-site.xml文件,編輯如下:

  1. sudo gedit core-site.xml

 

 

<configuration>添加如下代碼:
  1. <property>    
  2.   <name>fs.default.name</name>    
  3.   <value>hdfs://192.168.168.200:9000</value>     
  4. </property>

192.168.168.200  :  本機IP地址,此處不用localhost,為了在windows能夠訪問

9000:默認端口

8、打開hadoop/etc/hadoop/mapred-site.xml文件,編輯如下:

默認情況下,/usr/local/hadoop/etc/hadoop/文件夾下有mapred.xml.template文件,我們要復制該文件,並命名為mapred.xml,該文件用於指定MapReduce使用的框架。
  1. //復制並重命名
  2. cp mapred-site.xml.template mapred-site.xml
  3.  
  4. //編輯器打開此新建文件
  5. sudo gedit mapred-site.xml
 

 

 

  1. <configuration>    
  2.   <property>     
  3.      <name>mapred.job.tracker</name>    
  4.      <value>localhost:9001</value>     
  5.   </property>    
  6. </configuration>   

  

 

9、打開hadoop/etc/hadoop/hdfs-site.xml文件,編輯如下:

  1. sudo gedit hdfs-site.xml

 

 

  1. <configuration>  
  2.     <property>  
  3.         <name>dfs.name.dir</name>  
  4.         <value>/usr/local/hadoop/namenode</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>dfs.data.dir</name>  
  8.         <value>/usr/local/hadoop/datanode</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>dfs.replication</name>  
  12.         <value>1</value>  
  13.     </property>  
  14. </configuration>   

 

 九、在單機上運行hadoop 

 1、格式化hdfs文件系統

進入hadoop目錄下,格式化hdfs文件系統,初次運行hadoop時一定要有該操作
  1. cd /usr/local/hadoop
  2. bin/hadoop namenode -format
 

 

當你看到下圖時,就說明你的hdfs文件系統格式化成功了:
注意:由於hadoop2.7.3需要JDK1.7以上版本,JDK版本低於1.7就會報錯。【java.lang.UnsupportedClassVersionError】版本不一致出錯。
 

2、啟動hdfs

  1. cd /usr/local/hadoop 
  2. ./sbin/start-dfs.sh   

 

 
  1. jps  
看到如下效果表示成功: 
 

3、快捷啟動配置

  1. //配置hadoop環境變量
  2. sudo gedit /etc/profile  
  1. export HADOOP_HOME=/usr/local/hadoop
  2. export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
  3. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop   

 

 之后即可直接調用start-dfs.sh啟動hadoop,無需進入hadoop的安裝目錄。

 

 4、停止hdfs

  1. ./sbin/stop-dfs.sh
  

十、測試hadoop是否安裝成功

 

1、測試用瀏覽器訪問: http://localhost:50070 或者 http://192.168.168.200:50070 

 
效果如下:

 

 

 2、上傳文件測試  

創建一個words.txt 文件並上傳
vi words.txt
  1. Hello World
  2. Hello Tom
  3. Hello Jack
  4. Hello Hadoop
  5. Bye hadoop   
將words.txt上傳到hdfs的根目錄1
  1. bin/hadoop fs -put words.txt /   

 

 

可以通過瀏覽器訪問: http://192.168.168.200:50070,選擇“Browse the file system”:

 

 

 

 

 

這里的words.txt就是我們上傳的words.txt
 

 

 3、配置啟動YARN

 

 從上圖看看出我們的MapReduce是運行在YARN上的,而YARN是運行在HDFS之上的,我們已經安裝了HDFS現在來配置啟動YARN,然后運行一個WordCount程序。

①配置etc/hadoop/mapred-site.xml: 

  1. mv mapred-site.xml.template mapred-site.xml
 
 
  1. <configuration>
  2.     <!-- 通知框架MR使用YARN -->
  3.     <property>
  4.         <name>mapreduce.framework.name</name>
  5.         <value>yarn</value>
  6.     </property>
  7. </configuration> 

②配置etc/hadoop/yarn-site.xml:

 
  1. <configuration>
  2.     <!-- reducer取數據的方式是mapreduce_shuffle -->
  3.     <property>
  4.         <name>yarn.nodemanager.aux-services</name>
  5.         <value>mapreduce_shuffle</value>
  6.     </property>
  7. </configuration>
 

③YARN的啟動與停止

  1. //啟動
  2. ./sbin/start-yarn.sh
  
測試用瀏覽器訪問:http://192.168.168.200:8088
  1. 停止
  2. ./sbin/stop-yarn.sh
現在我們的hdfs和yarn都運行成功了,我們開始運行一個WordCount的MP程序來測試我們的單機模式集群是否可以正常工作。

4、運行一個簡單的MP程序

我們的MapperReduce將會跑在YARN上,結果將存在HDFS上:
 
  1. ./bin/hadoop   jar   /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar 
  2.   wordcount   hdfs://localhost:9000/words.txt   hdfs://localhost:9000/out

 

用hadoop執行一個叫 hadoop-mapreduce-examples.jar 的 wordcount 方法,其中輸入參數為 hdfs上根目錄的words.txt 文件,而輸出路徑為 hdfs跟目錄下的out目錄,運行過程如下:

 

 

我們通過瀏覽器訪問和下載查看結果:

 

 

 

這里下載的時候會跳轉到另一個地址如下:
http://serverone:50075/webhdfs/v1/out/_SUCCESS?op=OPEN&namenoderpcaddress=localhost:9000&offset=0
1、需把serverone換成192.168.168.200
http://192.168.168.200:50075/webhdfs/v1/out/_SUCCESS?op=OPEN&namenoderpcaddress=localhost:9000&offset=0
2、需開放50075端口。
下載下來結果如下:
說明我們已經計算出了,單詞出現的次數。
 
至此,我們Hadoop的單機模式搭建成功。
 
Linux下的快捷鍵: 
 
Ctrl+Alt+T:彈出終端
 
Ctrl+空格:中英文輸入法切換
 
 
 
 
使用Ecelipse 插件連接hdfs 時 如果連接拒絕:首先將hosts中localhost改為本機IP(烏班圖系統必改)  ,檢查插件配置中端口是否正確 Username隨意寫
 
裝完HADOOP后首先要把hdfs配置文件權限打開 , 然后給hdfs路徑設置755權限  hadoop dfs -chmod 755 /  
開放50020 和 9000 端口,關閉hdfs安全模式。
centos 處理防火牆方法::

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,沒有此參數重啟后失效)

重新載入

firewall-cmd --reload

查看

firewall-cmd --zone=public --query-port=80/tcp

刪除

firewall-cmd --zone=public --remove-port=80/tcp --permanent

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM