Hadoop學習之安裝篇

       今天收到了在網上買的兩本書,一本是《Hadoop權威指南》,還有一本是《Hadoop實戰》。最近也打算開始學習大數據方面的知識,因爲數據在當今的信息社會就是價值的體現。各個大公司都理解數據對自己的作用。看了看書對Hadoop的介紹,其實它就是用Java編寫的一個分佈式框架,裏面的核心是HDFS和MapReduce。HDFS用於數據的分佈式存儲,MapReduce則用於數據的分析,Hadoop項目還有其他很多個項目,但它們兩是核心。後面學了在說。

      先來說一下安裝,我的電腦裝了雙系統。今晚我現在Windows下安裝。

    1.Windows下安裝Hadoop:

     今晚可是花了一晚上才安裝成了ssh。下面說一下安裝步驟。主要是看書本《Hadoop實戰》和配合網上的教程。

    1> 安裝JDK1.6或以上版本,這個我很早就裝了。

     2>下載安裝Cygwin,它是一個在Windows下模擬UNIX環境的一個工具。只有通過它才能在Windows下安裝Hadoop。(看來Hadoop還是基本面向UNIX的)

          下載地址 http://www.cygwin.com/。安裝的時候進入Net,要選中OpenSSL和OpenSSH,打算在Eclipse上編譯Hadoop的,還必須安裝Base Category下的sed。

          將Cygwin的命令加入到電腦的環境變量裏面。

     3> 安裝並開啓sshd服務。

         這裏有幾個注意的地方,啓動Cygwin時要以管理員身份運行。它就是一個模仿Linux的shell界面,裏面可以運行一下Linux下的命令。

         輸入ssh-host-config。這就是在配置ssh,書上說遇到yes/no時選擇no,進過我的實踐,選擇yes最好。一開始ssh總是安裝錯誤,然後就重新安裝。最後安裝ssh成功。

        安裝失敗可以參考下面:cygrunsrv -R sshd是刪除sshd,-S是啓動sshd。

 $ mkpasswd -l > /etc/passwd
$ mkgroup -l > /etc/group
$ cygrunsrv -R sshd
$ ssh-host-config
$ cygrunsrv -S sshd

       我安裝成功sshd之後,卻發現啓動不了sshd服務。啓動命令:cygrunsrv -S sshd 或者 net start sshd。錯誤:發生系統錯誤 1069。由於登錄失敗而無法啓動服務。

       我在網上搜了有的說是密碼錯誤,在 services.msc 裏的登錄標籤裏更改用戶設置即可!但時我發現沒用啊。。密碼更本改不了,還是1069錯誤,於是我繼續搜,看到一篇帖子說是關於權限的問題。給一個鏈接http://pwcrab.blog.163.com/blog/static/16990382220107267443810/,它裏面說的很清楚,不過我用chown SYSTEM.None empty改了之後還是沒用,還真讓人鬱悶。最後我在重新安裝一遍,當遇到  ** Query: Do you want to use a different name? (yes/no)時 ,我選擇了yes,重新用一個用戶名,最後居然能成功開啓sshd服務。應該是我之前安裝的用戶名默認權限不行導致登陸錯誤,我在“服務”下看到的變爲了本地賬號,不用在輸入密碼了。如圖

    4>配置SSH免密碼登錄

      在Cygwin中輸入 ssh-keygen -t dsa -P  ' ' -f ~/.ssh/id_dsa,這是生成SSL的密鑰。然後再cd ~/.ssh/  和cp id_rsa.pub authorized_keys。最後一句試講之前生成密鑰的公鑰發佈出去。

   雖然在windows下安裝Hadoop還沒有完成,鑑於會出現各種各樣沒有價值的錯誤,對於初學者不利,我還是暫時放棄在windows下的安裝。下面就從Linux下安裝來說明。

2.Linux下安裝Hadoop

   我的電腦安裝的是Ubuntu14。hadoop下載的是hadoop1.2.1.tar.gz。因爲這個版本比較穩定,且書中的版本也是以hadoop1.x爲主。

  1>安裝JAVA,Ubuntu下自帶了java1.7的安裝包,爲Openjdk7,因爲很多類下面沒有,我們還算要去官網上重新下載案子java。我沒有直接卸載自帶的java,而是將新下載的java1.7安裝在/usr/local中。同時設定環境變量。如:

export JAVA_HOME=/usr/local/java/jdk1.7.0_45
export JRE_HOME=/usr/local/java/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin: $PATH
  2>創建hadoop用戶,不能直接用圖形界面創建用戶,否則會失敗。

      用 sudo adduser hadoop。我的用戶名和組名都爲hadoop。不能用useradd創建。且創建用戶時必須輸入新密碼。然後可以在圖形界面下更改hadoop的權限,變爲管理員。也可以用命令變更。

  3>安裝ssh服務 

    默認ssh是關閉的。

sudo apt-get install ssh  進行安裝 
 之後是ssh無密碼驗證登陸。一般都沒什麼問題。

 

創建ssh-key,這裏我們採用rsa加密算法,命令行如下:

ssh-keygen -t rsa -P ""

出現一個圖形,出現的圖形就是密碼,不用管它

 cat ~/.ssh/id_rsa.pub >> authorized_keys

 然後即可無密碼驗證登錄了,如下:

 ssh localhost

  4> 安裝hadoop。

      切換到新建的hadoop用戶下。下面將下載的hadoop1.2.1.tar.gz複製到/home/hadoop文件夾下。用解壓命令

tar -xzvf *.tag.gz    進行解壓。

   之後就是對hadoop進行文件的配置,對應書上內容就行。配置hadoop1.2.1/conf/下的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml四個文件。

  啓動hadoop: 

 格式化文件系統 bin/hadoop namenode -format

 啓動所以進程  bin/start-all.sh。

  驗證是否成功:輸入jps,下面會有五個java進程。(如果沒有,看java環境變量是否對的,或關閉hadoop:bin/stop-all.sh,重新格式化)

       打開瀏覽器輸入 http://localhost:50030(MapReduce頁面)http://localhost:50070(HDFS頁面),如都能查看說明成功。

  Linux下的安裝比Windows下其實要簡單,因爲不會出現亂七八糟的問題,中間可能出現文件權限的問題,修改權限就行了。

------------------------------------------------------新增錯誤處理--------------------------------------------------------------------

*今天我想運行一下最基本的wordcount時,出錯了。啓動ssh,啓動hadoop,利用jps命令查看進程,發現namenode沒有啓動,登陸localhost:50070也登陸不了。

namenode啓動不了,運行hadoop就會出錯,說鏈接不了9000端口,後來百度之發現namenode沒啓動是由於 Ubunut下的/tmp文件裏的內容每次關機都會清空,namenode的格式化信息就會丟失,要開啓namenode就要重新對hadoop進行格式化。通過重新配置core-site.xml可以修改。

 1.在hadoop新建hadoop_tmp目錄

 2.用sudo  gedit conf/core-site.xml 修改配置文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://localhost:9000</value>
        </property>
    <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/hadoop/hadoop-1.2.1/hadoop_tmp</value>
         <description>A base for other temporary directories.</description>
    </property>
</configuration>

參考:《Hadoop實戰》和一篇博文:http://www.cnblogs.com/zhengyuhong/archive/2013/10/25/3388474.html

發佈了26 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章