Hadoop開發第3期---Hadoop的偽分布式安裝


一、准備工作

1. 遠程連接工具的安裝

PieTTY 是在PuTTY 基礎上開發的,改進了Putty 的用戶界面,提供了多語種支持。Putty 作為遠程連接linux 的工具,支持SSH 和telnet。但是,我們使用的時候經常出現亂碼。PieTTY 可以很好地解決這個問題。該軟件不需要安裝,直接打開使用即可,如圖1.1 所示

image

圖 1.1

在Host Name 中輸入Centos的ip 地址,其余設置使用默認值,然后點擊最下面的“Open”按鈕,就會提示輸入用戶名和密碼,我們需要輸入Centos的用戶名root,密碼hadoop 即可連接。如圖1.2所示。 

image

圖 1.2

2. 文件傳輸工具的安裝

WinSCP 是一個Windows 環境下使用SSH 的開源圖形化SFTP 客戶端,同時支持SCP 協議。它的主要功能就是在本地與遠程計算機間安全地復制文件。這是一個開源的軟件,被托管在全球最大開源軟件托管平台SourceForge。

2.1WinSCP 安裝       

安裝分成非常簡單,按照提示一步步操作即可,中間沒有需要做出選擇、判斷的地方。安裝完成后,打開軟件,如圖1.3所示,輸入相應信息,點擊登陸,彈出新的窗口對話框,如圖1.4所示。

image

圖 1.3

image

圖 1.4

在圖1.4中,左側顯示宿主機windows 的文件系統,右側顯示遠程Centos 的文件系統。可以使用該工具進行宿主機和客戶機之間的文件傳輸,類似FTP。下面的學習中,在Centos 中使用的很多軟件就是通過WinSCP 從Windows 傳輸過去的。

二、hadoop的偽分布式安裝

1. 設置宿主機(windows)與客戶機(安裝在虛擬機中的Linux)網絡連接

1.1 host-only  宿主機與客戶機單獨組網。        

好處:網絡隔離        

壞處:虛擬機與其他服務器之間不能通信

1.2 brige 客戶機與宿主機在同一個局域網中。        

好處:都在同一個局域網可以相互訪問        

壞處:不安全

此步驟前面已經介紹過,已完成

2. hadoop安裝具體步驟

2.1 設置靜態ip

在centos桌面右上角的圖標上,右鍵修改。  執行命令 service network restart,在Centos系統桌面右擊選擇open in terminal,然后輸入命令,如圖2.1。

圖 2.1  

驗證:執行命令 ifconfig如圖2.2所示,表示靜態ip設置成功

image

圖 2.2

2.2 修改主機名

(1) 修改當前會話中的主機名,執行命令 hostname hadoop,如圖2.3

image 圖 2.3

(2) 修改配置文件中的主機名,執行命令 vi /etc/sysconfig/network,HostName屬性改為hadoop,如圖2.4,2.5

image

圖 2.4

image

圖 2.5

注意:vi  只讀,不能寫(vi 后直接跟文件名)
              按a進入編輯模式---編輯,能讀,也能寫
              Esc鍵,然后按“shift+:”組合鍵,輸入wq保存退出,退出不存為q!
         驗證:重起機器 reboot -h now
關機 shutdown -h now

驗證:重起機器 reboot -h now,之后用hostname命令查詢主機名,是否為hadoop,如圖2.6所示

image

圖 2.6

2.3 把主機名和ip名綁定  (即設置DNS 解析) 

(1)執行命令 vi /etc/hosts,增加一行內容如下 10.1.14.24 hadoop            

(2)保存退出,如圖2.7

image

                                                                                       圖 2.7            

(3)驗證:ping hadoop,驗證是否成功,如圖2.8所示綁定成功

image

圖2.8

2.4    關閉防火牆

  • 執行命令 service iptables stop  
  • 驗證:service iptables status,如圖2.9所示防火牆關閉成功

image 

圖 2.9 

2.5    關閉防火牆自動運行

執行命令 chkconfig iptables off            

驗證:chkconfig --list,如圖2.10所示關閉成功

image

圖 2.10

2.6 設置SSH(secure shell)的免密碼登陸

如果我們需要遠程管理其他機器的話,一般使用遠程桌面或者telnetlinxu 服務器幾乎都是命令行,所以只能使用telnet 了。telnet 的缺點通信不加密,非常不安全,只適合於內網訪問為解決這個問題,推出了加密的通信協議即SSH。SSH 的全稱是Secure Shell,使用非對稱加密方式,傳輸內容使用rsa 或者dsa 加密,可以有效避免網絡竊聽。hadoop 的進程之間通信使用ssh 方式,需要每次都要輸入密碼。為了實現自動化操作,我們下面配置SSH 的免密碼登錄方式。     

首先到用戶主目錄下,如圖2.11 所示。

image

圖 2.11

在“ls -a”命令顯示的文件中最后一列中間一項是“.ssh”,該文件夾是存放密鑰的。注意該文件夾是以“.”開頭的,是隱藏文件。待會我們生成的密鑰都會放到這個文件夾中。

(1) 執行命令 ssh-keygen -t rsa 產生秘鑰,位於~/.ssh文件夾中,如圖2-12 所示

image

圖 2.12

解釋一下:命令“ssh-keygen -t rsa”表示使用rsa 加密方式生成密鑰, 回車后,會提示三次輸入信息,我們直接回車即可

(2) 執行命令 cp ~/.ssh/id_rsa.pub   ~/.ssh/authorized_keys,如圖2.13 所示,多了兩個文件,一個是公開密匙,一個是訪問用戶名字信息。

image

圖 2.13

其中,命令“cp id_rsa.pub authorized_keys”用於生成授權文件。至此,配置部分完成了。

這里為什么要使用ssh 登錄本機哪?
因為hadoop 在本機部署時,需要使用ssh 訪問。 而文件夾“.ssh”中的三個文件的權限,是有要求的,“自己之外的任何人對每個文件都沒有寫權限”。另外,“.ssh”文件夾是700 權限。如果權限有問題,會造成SSH 訪問失敗。

(3) 現在開始驗證SSH 無密碼登錄,ssh localhost 選擇yes,然后exit退出(exit用於退出終端),如圖2.14所示。

image

圖 2.14

執行“ssh hadoop”意味着使用ssh”通信協議訪問主機“hadoop”,第一次執行時需要確認;第二次不再確認了。這就是無密碼登錄。當登錄到對方機器后,退出使用命令“exit”。這兩次操作時,注意觀察主機名變化。讀者可以執行命令“ssh hadoop”,驗證dns對hadoop 解析是否正確。

注意:使用命令ssh 時,一定要觀察主機名的變化。在操作ssh時,由於大量的使用ssh 登錄退出,忘記自己目前在哪台機器了,執行了大量錯誤的操作。另外,如果多次執行ssh,每次都要輸入確認信息的話,說明配置失敗了。
(a) 可以刪除文件夾“.ssh”,重新配置。
(b) 也可以重啟虛擬機再配置。   
(c) 如果還搞不定,給你個絕招” 刪除/etc/udev/rules.d/70-persistent-net.rules 文件,重啟系統”。

2.7    安裝jdk

我使用的版本是Oracle 的jdk-6u24-linux-i586.bin。

(1) 執行命令 rm -rf /usr/local/* 刪除所有內容

(2) 使用winscp把jdk和hadoop安裝包復制到linux中的/usr/local中,直接拖過去就行,如圖2.15所示。

image

圖 2.15

(3) 進入到/usr/local 目錄下,執行命令 chmod u+x jdk-6u24-linux-i586.bin 授予執行權限 

(4) 進入到/usr/local 目錄下,執行命令 ./jdk-6u24-linux-i586.bin 解壓文件,如圖2.16所示

image圖 2.16

(5) 執行命令 mv  jdk1.6.0_24  jdk 重命名 方便以后引用,如圖2.17 所示

image

                                                                         圖 2.17

(6) 執行命令 vi /etc/profile 設置環境變量,增加兩行內容               

  export JAVA_HOME=/usr/local/jdk                

  export PATH=.:$JAVA_HOME/bin:$PATH                

  保存退出,如圖2.18所示

image圖 2.18

   執行命令   source /etc/profile 讓該設置生效 注:若無法識別此命令,則可能自己的profile文件編輯錯  

   驗證:java -version,如圖2.19所示

image圖 2.19

 解釋一下上面的配置內容:  
 “export”是關鍵字,用於設置環境變量。我們設置了兩個環境變量,一個是JAVA_HOME,一個是PATH。對於環境變量的引用,使用“$”,多個環境變量之間的連接,使用“:”。命令“source”是為了讓文件中的設置立刻生效。

2.8 安裝hadoop

hadoop 的安裝分為本地模式、偽分布模式、集群模式。本地模式是運行在本地,只負責存儲,沒有計算功能,不講述。偽分布模式是在一台機器上模擬分布式部署,方便學習和調試。集群模式是在多個機器上配置hadoop,是真正的“分布式”。進入hadoop所在目錄/usr/local,執行以下操作

(1) 執行命令 tar -zxvf  hadoop-1.1.2.tar.gz

(2) 執行命令 mv hadoop-1.1.2 hadoop,這時hadoop 目錄的完整路徑是“/usr/local/hadoop”。

(3) 執行命令 vi /etc/profile 設置環境變量,增加一行內容,修改一行內容                   

export HADOOP_HOME=/usr/local/hadoop                    

export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH                    

  保存退出                

  執行命令 source /etc/profile 讓設置生效

(4) 修改hadoop的配置文件,位於$HADOOP_HOME/conf目錄下       

   WinSCP修改四個配置文件分別是hadoop-env.shcore-site.xml,hdfs-site.xml,mapred-site.xml修改哪個,雙擊點開哪個就行,如圖 2.20所示

image

圖 2.20    

【hadoop-env.sh】

export JAVA_HOME=/usr/local/jdk/

【core-site.xml的修改內容如下

<configuration>   
  <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop:9000</value>
        <description>change your own hostname</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property> 
</configuration>

【hadfs.xml的修改內容如下】  

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

 【mapred-site.xml的修改內容如下】                    

 <configuration>                        
  <property>                            
    <name>mapred.job.tracker</name>                            
    <value>hadoop:9001</value>                            
    <description>change your own hostname</description>                        
  </property>                    
</configuration>

(5) 執行命令 hadoop namenode -formathadoop進行格式化

(6) 執行命令 start-all.sh 啟動    執行命令    stop-all.sh 將hadoop關閉        

驗證:        

執行命令 jps 查看java進程(5個),如圖2.21所示。        

JobTracker、DataNode、NameNode、TaskTracker、SecondaryNameNode

image

圖 2.21

通過linux中瀏覽器 hattp://hadoop:50070和http://hadoop50030 來驗證。也可以可以修改C:\Windows\System32\drivers\etc\hosts文件,添加一行內容,10.1.14.24 hadoop。如果添加還不能訪問,就關閉hadoop,重啟hadoop,再次關閉Linux防火牆,這樣就可以在Windows瀏覽器中中訪問 hattp://hadoop:50070和http://hadoop50030,如圖2.22,2.23所示

image

圖 2.22 Windows下

image

2.23 Linux下

2.9 NameNode進程沒有啟動成功

  • 沒有格式化
  • 配置文件只copy,不修改
  • hostname與ip沒有綁定
  • SSH的免密碼登陸沒有配置成功


免責聲明!

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



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