A. 如何在linux下安裝配置Apache Mahout
Mahout安裝詳細全過程
1、jdk安裝 2
2、SSH無密碼驗證配置 2
3、 Hadoop配置 3
4、Hadop使用 6
5、Maven安裝 7
6、安裝mahout 7
7、hadoop集群來執行聚類演算法 8
8、其他 8
————————————————————
1、jdk安裝
1.1、到官網下載相關的JDK
下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
1.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]
Datanode1: slave1 @192.168.1.20
Datanode2: [email protected]
三台節點上均是CentOS系統,Hadoop在/root/hadoop/目錄下。
在/etc/hosts上添加主機名和相應的IP地址:
192.168.1.10 master
192.168.1.20 slave1
192.168.1.21 slave2
3、SSH無密碼驗證配置
2.1 Hadoop 需要使用SSH 協議,namenode 將使用SSH 協議啟動 namenode和datanode 進程,偽分布式模式數據節點和名稱節點均是本身,必須配置 SSH localhost無密碼驗證。
用root用戶登錄,在家目錄下執行如下命令:ssh-keygen -t rsa
[root@master ~]# ssh-keygen -t rsa
Generating 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 path
export HADOOP_HOME=/root/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
4.1、進入hadoop/conf, 配置Hadoop配置文件
4.1.1 配置hadoop-env.sh文件
添加 # set java environment
export JAVA_HOME=/root/jdk1.6.0_24
編輯後保存退出。
4.1.2 配置core-site.xml
# vi 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://192.168.1.10:9000/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/hadooptmp</value>
</property>
</configuration>
4.1.3 配置hdfs-site.xml
# vi hdfs-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>dfs.name.dir</name>
<value>/root/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
4.1.4 配置mapred-site.xml
# vi mapred-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>mapred.job.tracker</name>
<value>192.168.1.10:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/mapred/local</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/tmp/hadoop/mapred/system</value>
</property>
</configuration>
4.1.5 配置masters
# vi masters
192.168.1.10
4.1.6 配置slaves
# vi slaves
192.168.1.20
192.168.1.21
4.2、 Hadoop啟動
4.2.1 進入 /root/hadoop/bin目錄下,格式化namenode
# ./hadoop namenode –format
4.2.2 啟動hadoop所有進程
在/root/hadoop/bin 目錄下,執行start-all.sh命令
啟動完成後,可用jps命令查看hadoop進程是否啟動完全。正常情況下應該有如下進程:
10910 NameNode
11431 Jps
11176 SecondaryNameNode
11053 DataNode
11254 JobTracker
11378 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 –report
4.3 在WEB頁面下查看Hadoop工作情況
打開IE瀏覽器輸入部署Hadoop伺服器的IP:
http://localhost:50070
http://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 -FromLocal /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.gz
mv apache-maven-3.0.2 /root/maven
6.2 vi ~/.bashrc
添加如下兩行
export M3_HOME=/root/maven
export PATH=${M3_HOME}/bin:${PATH}
6.3 先logout,之後再login
查看maven版本,看是否安裝成功
mvn -version
7、安裝mahout
安裝方法見:
https://cwiki.apache.org/confluence/display/MAHOUT/BuildingMahout
8、hadoop集群來執行聚類演算法
8.1數據准備
cd /root/hadoop
wget http://archive.ics.uci.e/ml/databases/synthetic_control/synthetic_control.data
8.2 ./hadoop fs -mkdir testdata
./hadoop fs -put synthetic_control.data testdata
./hadoop fs -lsr testdata
bin/hadoop jar /root/mahout/mahout-examples-0.4-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
8.3查看一下結果吧
bin/mahout vectormp --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.rece.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_w10wan
10、其他
離開安全模式:hadoop dfsadmin -safemode leave
B. linux怎麼打開confluence
安裝過程注意事項: 1. 標准安裝,是使用Confluence默認的hsql小型內存資料庫,不適用較大項目部署; 2. 使用外部資料庫安裝,本人是使用mysql資料庫 另外,如果有朋友本來時使用默認資料庫,沒關系,我們可以將其轉換為mysql