Hadoop的學習前奏(一)——在Linux上安裝與配置Hadoop

前言

  筆者眼下是在作Android開發,又是在一個信息安全的公司。公司的主要是作在虛擬機上運行的產品,又涉獵雲計算,心想是要去搞一下雲計算。自我感受移動互聯網 + 雲計算 + 信息安全會是一個很是好的方向,因而投身當中。java

因爲是Java出身。因此天然而然選擇了Hadoop。node


筆者系統環境

Linux:  CentOS release 6.5 (Final)
JDK:    java version "1.7.0_75"
        OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-x86_64 u75-b13)
        OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
SSH:    OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
shell

Hadoop: hadoop-1.2.1vim


環境搭建

1.安裝JDK

  關於JDK的安裝。不是本博客的討論範圍,你們可以自行百度或是Google進行安裝。瀏覽器


2.配置SSH免password登陸

  在你的機器可以聯網的前提下進行例如如下操做安全

  (1) # yum install openssh-server # 安裝SSHbash

  (2) # yum -y install openssh-clients網絡

      # 假設你安裝SSh完畢以後,運行ssh出現系統沒法識別ssh的話,需要另外安裝openssh-clients
ssh

  (3) # mkdir -p ~/.ssh # 假設你在安裝完SSH後,這些文件夾都未本身主動生成,請自行建立oop

  (4) # ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

      ssh-keygen 表示生成密鑰

      -t 表示指定生成的密鑰類型

      dsa 是dsa密鑰認證的意思,即密鑰類型

      -P 提供密語

      -f 指定生成的密鑰文件

  (5) # cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

      # 將公鑰加到用於認證的公鑰文件裏。authorized_keys是用於認證的公鑰文件

  (6) # ssh -version

      # 驗證SSH是否安裝完畢,正確安裝會有類似例如如下的結果:

      

  (7)至此主要的配置已經幾乎相同了,只是仍是不可以進行免password登陸。最後一步就是要配置兩個東西的權限屬性:

     $ chmod 700 ~/.ssh
     $ chmod 600 ~/.ssh/authorized_keys

     這兩步是必要的。否則你可能就不能免password登陸了。

  (8)$ ssh localhost # 驗證


3.安裝並運行Hadoop

  (1)下載hadoop-x.x.x

     解壓到指定文件夾。好比/home/u


  (2)改動配置文件的配置信息

      # vim ~/hadoop-1.2.1/conf/core-site.xml

      

      # vim ~/hadoop-1.2.1/conf/hdfs-site.xml

      

      # vim ~/hadoop-1.2.1/conf/mapred-site.xml

      

  (3) # ~/hadoop-1.2.1/bin/hadoop namenode -format # 格式化文件系統


  (4) # ~/hadoop-1.2.1/bin/start-all.sh # 啓動所有進程


  (5)驗證Hadoop是否成功安裝

     進入瀏覽器,分別輸入下面網址進行驗證:

     http://localhost:50030 (MapReduce的Web頁面)

     http://localhost:50070 (HDFS的Web頁面)

     驗證演示樣例:

     MapReduce的Web頁面

     


     HDFS的Web頁面

     


遇到的問題

1.啓動Hadoop時,老是說JAVA_HOME未配置

  

  當我使用教程中的shell命令在hadoop文件夾中運行bin/start-all.sh時,總是報JAVA_HOME is not set.

  可是我在shell裏也設置了JAVA_HOME了啊,而且我去查看系統中的JAVA_HOME也是OK的,例如如下:

  

  這一點讓我很是是奇怪。如是我找到一篇論壇,裏面的狀況和個人有一些類似。只是他的一句話讓我察覺到本身的搞錯了一個地方。那就是上面提示的JAVA_HOME事實上是要在配置文件裏去設置的。

  運行vim ~/hadoop-1.2.1/conf/hadoop-env.sh,這個文件夾請依據本身你的路徑來寫,改動例如如下:

  


2.-bash: bin/hadoop: Permission denied

這裏假設你是在Linux下直接從網絡上下載的話,應該會沒什麼事情。只是,假設你跟筆者同樣。是使用WinSCP上傳到Linux上的話,這裏可以會有一個小地方需要改動。

否則會報這樣一個錯誤:

  

  可以看到這個錯誤是在咱們運行hadoop這個可運行文件時報的錯誤。那咱們就僅僅要對這個文件進行權限的改動就可以了。因爲後面的還會用到一些其它的可運行文件,那麼這裏我就對所有的文件都作了一個可運行權限的改動(固然,這裏是因爲咱們是在學習和測試階段,爲了不麻煩,偷了個懶。假設要從安全的角度來考慮,這裏咱們是不能這樣作的)。


3.Hadoop SafeMode: ON - HDFS unavailable

  固然咱們把以前的一些配置信息都搞了的時候。這時可能還會有一個問題,就是咱們HDFS的Web頁面沒法訪問。

  

  這個問題事實上是咱們以前的一些錯誤配置遺留下來的問題。咱們以前說過一個運行文件的權限問題,咱們在操做格式化HDFS時,這個正是這個權限的問題在干擾。如是我把以前啓動的進程都stop掉。

而後又一次format就OK了。

  格式化HDFS正確時的提示信息例如如下:

  

相關文章
相關標籤/搜索