回覆列表
  • 1 # K哥哈

    Mahout安裝詳細全過程1、jdk安裝 22、SSH無密碼驗證配置 23、 Hadoop配置 34、Hadop使用 65、Maven安裝 76、安裝mahout 77、hadoop叢集來執行聚類演算法 88、其他 8――――――――――――――――――――1、jdk安裝1.1、到官網下載相關的JDK下載地址:

    http://www.oracle.com/technetwork/java/javase/downloads/index.html1.2

    、開啟“終端”輸入:sh jdk-6u24-linux-

    i586.bin

    1.3、設定JAVA_HOME環境系統變數輸入:vi /etc/environment 在檔案中新增:export JAVA_HOME=/root/jdk1.6.0_24 export JRE_Home=/root/jdk1.6.0_24/jre export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 同樣,修改第二個檔案。輸入:vi /etc/profile 在umask 022之前新增以下語句:export JAVA_HOME=/root/jdk1.6.0_24 export JRE_Home=/root/jdk1.6.0_24/jre export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin 1.4、登出使用者,檢測JDK版本。輸入:java -version 2、叢集環境介紹叢集包含三個節點:1 個 namenode,2 個 datanode,節點之間區域網連線,可以相互 ping 通。節點 IP 地址分佈如下:Namenode: [email protected]: slave1 @192.168.1.20Datanode2: [email protected]三臺節點上均是CentOS系統,Hadoop在/root/hadoop/目錄下。在/etc/hosts上新增主機名和相應的IP地址:192.168.1.10 master192.168.1.20 slave1192.168.1.21 slave23、SSH無密碼驗證配置2.1 Hadoop 需要使用SSH 協議,namenode 將使用SSH 協議啟動 namenode和datanode 程序,偽分散式模式資料節點和名稱節點均是本身,必須配置 SSH localhost無密碼驗證。用root使用者登入,在家目錄下執行如下命令:ssh-keygen -t rsa [root@master ~]# ssh-keygen -t rsaGenerating public/private rsa key

    pair.Enter

    file in which to save the key (/root/

    .ssh/id_rsa):

    & 按回車預設路徑 &Created directory "/root/.ssh". &建立/root/

    .ssh

    目錄&Enter passphrase (empty for no passphrase):Enter same passphrase again: Your identification has been saved in /root/

    .ssh/id_rsa.Your

    public key has been saved in /root/

    .ssh/id_rsa.pub.The

    key fingerprint is:c6:7e:57:59:0a:2d:85:49:23:cc:c4:58:ff:db:5b:38 root@master透過以上命令將在/root/

    .ssh/

    目錄下生成id_rsa私鑰和

    id_rsa.pub

    公鑰。進入/root/

    .ssh

    目錄在namenode節點下做如下配置:[root@master .ssh]# cat

    id_rsa.pub

    > authorized_keys[root@master .ssh]# scp authorized_keys 192.168.1.20:/root/

    .ssh/[root@master

    .ssh]# scp authorized_keys 192.168.1.21:/root/

    .ssh/

    配置完畢,可透過ssh 本機IP 測試是否需要密碼登入。2.2 和namenode無密碼登入所有Datanode原理一樣,把Datanode的公鑰複製到Namenode的

    .ssh

    目錄下。[root@slave1 .ssh]# scp authorized_keys1 192.168.1.10:/root /.ssh[root@ slave2.ssh]# scp authorized_keys2 192.168.1.10:/root /

    .ssh

    將剛傳過來的authorized_keys1、2加入到authorized_keys[root@ master.ssh]# cat authorized_keys1 > authorized_keys[root@ master.ssh]# cat authorized_keys2 > authorized_keys這樣也能在Datanode上關閉和啟動Hadoop服務。4、 Hadoop配置下載 hadoop-

    0.20.2.tar.gz

    , 進行解壓。tar zxvf hadoop-

    0.20.2.tar.gz

    修改/etc/profile,加入如下:# set hadoop pathexport HADOOP_HOME=/root/hadoopexport PATH=$HADOOP_HOME/bin:$PATH4.1、進入hadoop/conf, 配置Hadoop配置檔案4.1.1 配置hadoop-

    env.sh

    檔案新增 # set java environmentexport JAVA_HOME=/root/jdk1.6.0_24編輯後儲存退出。4.1.2 配置core-site.xml# vi core-site.xml4.1.3 配置hdfs-site.xml# vi hdfs-site.xml4.1.4 配置mapred-site.xml# vi mapred-site.xml4.1.5 配置masters# vi masters192.168.1.104.1.6 配置slaves# vi slaves192.168.1.20192.168.1.214.2、 Hadoop啟動4.2.1 進入 /root/hadoop/bin目錄下,格式化namenode# ./hadoop namenode �Cformat4.2.2 啟動hadoop所有程序在/root/hadoop/bin 目錄下,執行start-

    all.sh

    命令啟動完成後,可用jps命令檢視hadoop程序是否啟動完全。正常情況下應該有如下程序:10910 NameNode11431 Jps11176 SecondaryNameNode11053 DataNode11254 JobTracker11378 TaskTracker 我在搭建過程中,在此環節出現的問題最多,經常出現啟動程序不完整的情況,要不是datanode無法正常啟動,就是namenode或是TaskTracker啟動異常。解決的方式如下:1)在Linux下關閉防火牆:使用service iptables stop命令;2)再次對namenode進行格式化:在/root/hadoop/bin 目錄下執行hadoop namenode -format命令3)對伺服器進行重啟4)檢視datanode或是namenode對應的日誌檔案,日誌檔案儲存在/root/hadoop/logs目錄下。5)再次在/bin目錄下用start-

    all.sh

    命令啟動所有程序,透過以上的幾個方法應該能解決程序啟動不完全的問題了。4.2.3 檢視叢集狀態在 bin目錄下執行:hadoop dfsadmin -report# hadoop dfsadmin �Creport4.3 在WEB頁面下檢視Hadoop工作情況開啟IE瀏覽器輸入部署Hadoop伺服器的IP:http://localhost:50070http://localhost:50030。5、Hadop使用一個測試例子wordcount:計算輸入文字中詞語數量的程式。WordCount在Hadoop主目錄下的java程式包hadoop-0.20.2-

    examples.jar

    中,執行步驟如下:在/root/hadoop/bin/目錄下進行如下操作:./hadoop fs -mkdir input(新建目錄名稱,可任意命名)mkdir /root/a/vi /root/a/

    a.txt

    寫入hello world hello# hadoop fs -copyFromLocal /root/a/ input在/root/hadoop/bin下執行:# ./hadoop jar hadoop-0.20.2-

    examples.jar

    wordcount input output (提交作業,此處需注意input與output是一組任務,下次再執行wordcount程式,還要新建目錄intput1與output1不能跟input與output重名)6、Maven安裝6.1下載Maven解壓tar vxzf apache-maven-3.0.2-

    bin.tar.gzmv

    apache-maven-3.0.2 /root/maven6.2 vi ~/

    .bashrc

    新增如下兩行export M3_HOME=/root/mavenexport PATH=${M3_HOME}/bin:${PATH}6.3 先logout,之後再login檢視maven版本,看是否安裝成功mvn -version7、安裝mahout安裝方法見:

    https://cwiki.apache.org/confluence/display/MAHOUT/BuildingMahout8

    、hadoop叢集來執行聚類演算法8.1資料準備cd /root/hadoopwget

    http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data8.2

    ./hadoop fs -mkdir testdata./hadoop fs -put

    synthetic_control.data

    testdata./hadoop fs -lsr testdatabin/hadoop jar /root/mahout/mahout-examples-0.4-

    job.jar

    org.apache.mahout.clustering.syntheticcontrol.kmeans.Job8.3檢視一下結果吧bin/mahout vectordump --seqFile /user/root/output/data/part-r-00000這個直接把結果顯示在控制檯上。9、hadoop叢集來執行推薦演算法分散式bin/hadoop jar /root/trunk/mahout-distribution-0.4/mahout-core-0.4-

    job.jar

    org.apache.mahout.cf.taste.hadoop.item.RecommenderJob

    -Dmapred.map.tasks=3 -Dmapred.reduce.tasks=3 -Dmapred.input.dir=testdata/

    100wan.txt

    -Dmapred.output.dir=output2偽分散式bin/hadoop jar /root/trunk/mahout-distribution-0.4/mahout-core-0.4-

    job.jar

    org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob

    --recommenderClassName

    org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender

    -Dmapred.input.dir=testdata/

    10wan.dat

    -Dmapred.output.dir=output_w10wan10、其他離開安全模式:hadoop dfsadmin -safemode leave

  • 中秋節和大豐收的關聯?
  • “父母都走了之後,兄弟姐妹就散了”基本不來往了,這是真的嗎?