1,安裝JDK
sudo apt-get install openjdk-6-jdk
2,配置JAVA 環境變數
輸入命令:
sudo gedit /etc/profile
開啟profile 在檔案最下面加入如下內容:
# set java homeexport JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386/export CLASSPATH=".:JAVA_HOME/lib:$CLASSPATH"export PATH="$JAVA_HOME:$PATH"
注意根據自己安裝的java路徑添加,可以用
ls /usr/lib/jvm/ , 查看已安裝的jdk路徑。
驗證jdk是否安裝成功:
java -version
3,配置SSH免密碼登入
a, 安裝SSH ,輸入命令:
sudo apt-get install ssh
b,配置可以免密碼登入本機。
查看在本使用者下是否有檔案夾 .ssh.
命令:
ls -l /home/u (自己的使用者目錄)
c, 在建立id_dsa id_dsa.pub 兩個檔案,這是SSH一對私密金鑰和公開金鑰。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
d, 把id_dsa.pub 追加到授權key 裡面
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
d, 驗證是否成功。
ssh localhost
顯示
Welcome to Ubuntu 12.10 (GNU/Linux 3.2.0-29-generic-pae i686)
* Documentation: https://help.ubuntu.com/
Last login: Sun Apr 21 11:16:27 2013 from daniel-optiplex-320.local
4,Hadoop 安裝
a, 下載Hadoop
點擊開啟連結
b, .解壓Hadoop
tar xzvf hadoop-1.0.4-bin.tar.gz -C /home/user
注意解壓到自己的使用者目錄user下。
c ,偽分布式Hadoop 配置
轉到/home/user/下的 hadoop目錄下。
cd conf , 進入設定檔夾,進行修改。
修改檔案 hadoop-env.sh 配置JDK即可
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386/
修改檔案 core-site.xml
<configuration> <property><name>fs.default.name</name><value>hdfs://localhost:9000</value> </property></configuration>
修改檔案 hdfs-site.xml
<configuration> <property><name>dfs.replication</name><value>1</value> </property></configuration>
修改檔案 mapred-site.xml
<configuration> <property><name>mapred.job.tracker</name><value>localhost:9001</value> </property></configuration>
5,啟動 Hadoop
首先把Hadoop bin 目錄加入PATH 系統內容變數。
sudo vim /etc/profile
在最後一行添加:
export PATH=/home/user/hadoop-1.0.4/bin/:$PATH
注意這個路徑是你加壓後 Hadoop目錄下bin目錄的路徑。
修改完,然後輸入命令:
source /etc/profile
a,格式檔案系統
hadoop namenode –format b, 啟動hadoop 啟動關閉所有服務 start-all.sh/stop-all.sh 啟動關閉HDFS: start-dfs.sh/stop-dfs.sh 啟動關閉MapReduce: start-mapred.sh/stop-mapred.sh c, 用jps命令查看進程,確保有 namenode,dataNode,JobTracker,TaskTracker
或者通過 瀏覽器驗證 Hadoop安裝是否成功。
MapReduce的web頁面
http://localhost:50030
HDFS的web頁面
http://localhost:50070
跑 MapReduce程式時如果出現,java.io.IOException: Too many open files 錯誤在需要在修正的方法是去 /etc/security/limits.conf 加上這行:
- nofile 8192