Pages

Subscribe:

Ads 468x60px

Labels

顯示具有 Ubuntu 標籤的文章。 顯示所有文章
顯示具有 Ubuntu 標籤的文章。 顯示所有文章

2015年9月1日 星期二

DRBL+winroll可以自動加入AD了

資料來源


DRBL+winroll可以自動加入AD了

文章由 bunker9075 » 週二 11月 08, 2011 2:27 pm
各位原台中縣的資訊夥伴:
大家好!原來我們的資訊環境很多都是:REMBO+WIN2003+WINXP+AD管理電腦教室(其實真的是一個很完美的環境),後來因為REMBO被併走,再加上CLIENT端的os漸漸換成win7,所以作業系統大量部署這一塊大家都自己想辦法解決!為了解決rembo不再支援win7這個問題,我決定不再求助付費軟體,怕的就是以後又像rembo一樣,控制權操在他人手裡,這幾個月來一直鑽研國網中心的drbl,發現他的效能真的很好,唯一無法與rembo相比的是client端無法自動加入ad,所以從今年六月開始,就不斷的寫email去盧國網中心的開發人員,想不到他們竟然會理我這個無名小卒,經過數個月的郵件溝通,現在DRBL+winroll也可以做到像rembo一樣自動加入ad了 :lol: !目前我的測試環境如下:
server端:ubuntu10.10_server版+drbl_stable版
client端:winxp+winroll-v1.3.0-149
AD:WIN2003_SERVER
早上用acerpower_m6作大量部署的測試已經成功,真的可以像rembo一樣派送了!目前還有一些系統依序要做測試,:
WIN2008+WIN7環境
WIN2003+WINXP環境
WIN2003+WIN7環境
2008+WINXP環境
如果也想走此一解決方案的夥伴,建議您裝DRBL的server最好採用ubuntu,因為drbl是去找os裡的網卡驅動來做pxe動作(路徑:/lib/modules/2.6.35-22-generic-pae(實際到該路徑看核心名稱為何?)/kernel/drivers/net,一般我們習慣用的centos包的網卡驅動太少了)
最後,不知各位資訊夥伴需不需要我再提供進一步的drbl經驗,也許各位都已經用三個小朋友解決作業系統大量部署問題了,畢竟作這種系統的廠商很多,只是明年開始就沒有電腦維護費了,而drbl效能又很好,不用實在可惜!
bunker9075
 
文章: 477
註冊時間: 週三 3月 03, 2004 8:16 pm
來自: 社口國小

2013年12月1日 星期日

[hadoop]Hadoop 小象安裝測試在 Ubuntu (2)

續前篇 http://codebeta.blogspot.tw/2012/12/hadoophadoop-ubuntu.html,接下來是試跑 wordcount 程式,驗證系統有安裝好。
下載所需資料
要執行 wordcount 程式,要先有資料才行。Noll 好心已經給了三個連結的文件讓你下載。
每一個電子書,請下載 UTF-8 的文字檔,放在你想要的位置。這裡選的是 /tmp/gutenberg
hduser@ubuntu:~$ ls -l /tmp/gutenberg/ 
total 3592 
-rw-r--r-- 1 hduser hadoop  674566 Dec 23 07:37 pg20417.txt 
-rw-r--r-- 1 hduser hadoop 1573150 Dec 23 07:39 pg4300.txt 
-rw-r--r-- 1 hduser hadoop 1423801 Dec 23 07:38 pg5000.txt 
hduser@ubuntu:~$

啟動 hadoop 叢集

hduser@ubuntu:~$ /usr/local/hadoop/bin/start-all.sh

複製資料到 HDFS (Hadoop 的檔案系統)

使用 hadoop 的指令,把檔案從真實檔案系統,送進 HDFS。
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop dfs -copyFromLocal /tmp/gutenberg /user/hduser/gutenberg 
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop dfs -ls /user/hduser 
Found 1 items 
drwxr-xr-x   - hduser supergroup          0 2012-12-25 00:23 /user/hduser/gutenberg 
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop dfs -ls /user/hduser/gutenberg 
Found 4 items 
drwxr-xr-x   - hduser supergroup          0 2012-12-25 00:23 /user/hduser/gutenberg/gutenberg 
-rw-r--r--   1 hduser supergroup     674566 2012-12-25 00:21 /user/hduser/gutenberg/pg20417.txt 
-rw-r--r--   1 hduser supergroup    1573150 2012-12-25 00:21 /user/hduser/gutenberg/pg4300.txt 
-rw-r--r--   1 hduser supergroup    1423801 2012-12-25 00:21 /user/hduser/gutenberg/pg5000.txt 
hduser@ubuntu:~$

執行 MapReduce 程式

請注意執行的路徑:要先 cd 到 /usr/local/hadoop。
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar hadoop*examples*.jar wordcount /user/hduser/gutenberg/* /user/hduser/gutenberg-output
[註1]若在別的工作路徑,會發生:
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop jar hadoop*examples*.jar wordcount /user/hduser/gutenberg /user/hduser/gutenberg-output 
Exception in thread "main" java.io.IOException: Error opening job jar: hadoop*examples*.jar
[註3]如果已經執行過,想再執行一次,會因為 output 目錄已經存在而失敗。此時可以執行刪目錄的指令:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -rmr /user/hduser/gutenberg-output 
Deleted hdfs://localhost:54310/user/hduser/gutenberg-output 
hduser@ubuntu:/usr/local/hadoop$
執行結果如下:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar hadoop*examples*.jar wordcount /user/hduser/gutenberg/* /user/hduser/gutenberg-output 
12/12/25 00:52:27 INFO input.FileInputFormat: Total input paths to process : 6 
12/12/25 00:52:27 INFO util.NativeCodeLoader: Loaded the native-hadoop library 
12/12/25 00:52:27 WARN snappy.LoadSnappy: Snappy native library not loaded 
12/12/25 00:52:28 INFO mapred.JobClient: Running job: job_201212250016_0007 
12/12/25 00:52:29 INFO mapred.JobClient:  map 0% reduce 0% 
12/12/25 00:52:44 INFO mapred.JobClient:  map 16% reduce 0% 
12/12/25 00:52:47 INFO mapred.JobClient:  map 33% reduce 0% 
12/12/25 00:52:53 INFO mapred.JobClient:  map 50% reduce 0% 
12/12/25 00:52:56 INFO mapred.JobClient:  map 66% reduce 11% 
12/12/25 00:52:59 INFO mapred.JobClient:  map 83% reduce 11% 
12/12/25 00:53:01 INFO mapred.JobClient:  map 100% reduce 11% 
12/12/25 00:53:04 INFO mapred.JobClient:  map 100% reduce 22% 
12/12/25 00:53:10 INFO mapred.JobClient:  map 100% reduce 100% 
12/12/25 00:53:15 INFO mapred.JobClient: Job complete: job_201212250016_0007 
12/12/25 00:53:15 INFO mapred.JobClient: Counters: 29 
12/12/25 00:53:15 INFO mapred.JobClient:   Job Counters 
12/12/25 00:53:15 INFO mapred.JobClient:     Launched reduce tasks=1 
12/12/25 00:53:15 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=45175 
12/12/25 00:53:15 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0 
12/12/25 00:53:15 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0 
12/12/25 00:53:15 INFO mapred.JobClient:     Launched map tasks=6 
12/12/25 00:53:15 INFO mapred.JobClient:     Data-local map tasks=6 
12/12/25 00:53:15 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=25718 
12/12/25 00:53:15 INFO mapred.JobClient:   File Output Format Counters 
12/12/25 00:53:15 INFO mapred.JobClient:     Bytes Written=886978 
12/12/25 00:53:15 INFO mapred.JobClient:   FileSystemCounters 
12/12/25 00:53:15 INFO mapred.JobClient:     FILE_BYTES_READ=4429692 
12/12/25 00:53:15 INFO mapred.JobClient:     HDFS_BYTES_READ=7343786 
12/12/25 00:53:15 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=7529522 
12/12/25 00:53:15 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=886978 
12/12/25 00:53:15 INFO mapred.JobClient:   File Input Format Counters 
12/12/25 00:53:15 INFO mapred.JobClient:     Bytes Read=7343034 
12/12/25 00:53:15 INFO mapred.JobClient:   Map-Reduce Framework 
12/12/25 00:53:15 INFO mapred.JobClient:     Map output materialized bytes=2948682 
12/12/25 00:53:15 INFO mapred.JobClient:     Map input records=155864 
12/12/25 00:53:15 INFO mapred.JobClient:     Reduce shuffle bytes=2681669 
12/12/25 00:53:15 INFO mapred.JobClient:     Spilled Records=511924 
12/12/25 00:53:15 INFO mapred.JobClient:     Map output bytes=12152190 
12/12/25 00:53:15 INFO mapred.JobClient:     Total committed heap usage (bytes)=978935808 
12/12/25 00:53:15 INFO mapred.JobClient:     CPU time spent (ms)=7070 
12/12/25 00:53:15 INFO mapred.JobClient:     Combine input records=1258344 
12/12/25 00:53:15 INFO mapred.JobClient:     SPLIT_RAW_BYTES=752 
12/12/25 00:53:15 INFO mapred.JobClient:     Reduce input records=204644 
12/12/25 00:53:15 INFO mapred.JobClient:     Reduce input groups=82335 
12/12/25 00:53:15 INFO mapred.JobClient:     Combine output records=204644 
12/12/25 00:53:15 INFO mapred.JobClient:     Physical memory (bytes) snapshot=1124028416 
12/12/25 00:53:15 INFO mapred.JobClient:     Reduce output records=82335 
12/12/25 00:53:15 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=2677747712 
12/12/25 00:53:15 INFO mapred.JobClient:     Map output records=1258344
檢查輸出結果,使用以下指令:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hduser/gutenberg-output 
Found 3 items 
-rw-r--r--   1 hduser supergroup          0 2012-12-25 00:53 /user/hduser/gutenberg-output/_SUCCESS 
drwxr-xr-x   - hduser supergroup          0 2012-12-25 00:52 /user/hduser/gutenberg-output/_logs 
-rw-r--r--   1 hduser supergroup     886978 2012-12-25 00:53 /user/hduser/gutenberg-output/part-r-00000 
hduser@ubuntu:/usr/local/hadoop$
把結果的內容顯示出來的指令:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -cat /user/hduser/gutenberg-output/part-r-00000
把結果搬回真實檔案系統,然後看內容的指令:
hduser@ubuntu:/usr/local/hadoop$ mkdir /tmp/gutenberg-output 
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -getmerge /user/hduser/gutenberg-output /tmp/gutenberg-output 
12/12/25 01:03:58 INFO util.NativeCodeLoader: Loaded the native-hadoop library 
hduser@ubuntu:/usr/local/hadoop$ head /tmp/gutenberg-output/gutenberg-output 
"(Lo)cra"    2 
"1490    2 
"1498,"    2 
"35"    2 
"40,"    2 
"A    4 
"AS-IS".    2 
"A_    2 
"Absoluti    2 
"Alack!    2 
hduser@ubuntu:/usr/local/hadoop$

Hadoop Web Interface

目前版本有提供 web 介面,只能看狀態,不能改。
  • http://localhost:50070/ – 可以看 NameNode 的狀態
  • http://localhost:50030/ – 可以看 JobTracker 的狀態
  • http://localhost:50060/ – 可以看 TaskTracker 的狀態

結語

到這裡,單電腦叢集的 Hadoop 系統,算是非常簡單的介紹完畢。可以從這裡的操作知道,若是需要一個可用的 Hadoop,要經過:(1)操作系統的安裝、(2)java系統的安裝、(3)hadoop系統的安裝、(4)以上三個系統的設定。要執行程式,則要:(1)程式資料的準備、(2)將資料搬進至Hadoop檔案系統、(3)撰寫執行 MapReduce 程式、(4)將資料搬出Hadoop檔案系統。這些工作都不是簡單買個套裝程式回來,拖一拖、拉一拉,或是按一按鈕就可以解決的事情。而且,這個單叢集系統,還不具備備援、分散式計算的功能,都還需要進一步的規劃及調整。
從這個最簡單的系統,接下來則會因著各人的工作項目而有不同的發展方向:
  • 系統工程師,要開始研究 hadoop 設定,使之成為分散式系統。並且建立備援機制。研究 hadoop 管理工具
  • 軟體工程師,依據需求,安裝 HBASE 或 Cassandra 資料庫,或者利用檔案來存放資料。研究 MapReduce 程式風格。建立自用的介面程式與資料系統、檔案系統做存取。

[hadoop]Hadoop 小象安裝測試在 Ubuntu

小象要開始跑

在了解大概 hadoop 能做什麼之後,就來安裝試試吧。Michael G. Noll 寫了幾份非常好的教學。 這裡就按照他的教學,一步步重做一遍。就從他的 Running Hadoop On Ubuntu Linux (Single-Node Cluster) 開始讓小象跑。
而我這篇是讓我自己這個新手能夠不忘記我是怎麼安裝的筆記。

安裝 ubuntu 在 vmware 裡,完成 vmware-tool 安裝。

這一步是原來教學沒有的步驟。為了大家可以在公司、或自家的電腦試用,所以用 vmware 裝一個虛擬電腦。首先要注意,vmware-tool 的安裝跟 vmware 版本有關。vmware-tool 最重要的是可以讓 host 系統 及 guest 系統用「拖拉」、「複製貼上」的方式,交換檔案及文字。我使用的版本是 vmware 8,在裝好 ubuntu 12.04 之後,vmware-tool 可使用隨附的 8.8.0 版安裝。(vmware 7 可裝 ubuntu 11.04 配合 6.0.2。)在確認完 vmware 版本之後,就不用擔心之後會有問題了。
到 http://www.ubuntu.com/download/desktop 下載 12.04 LTS,下載 iso 檔。選擇 desktop 是因為有桌面可用,比較方便。
將 ubuntu 安裝完畢,先加入一個使用者 hduser,這是之後專門執行 hadoop 程式的使用者。
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
hduser 要加入 sudoer 名單中,才能安裝 vmware-tool。
先用安裝者的帳號執行
$ sudo visudo
再把 hduser (ALL:ALL)=ALL 加在 root (ALL:ALL)=ALL 底下。
或把 hduser 加到 admin 的 group 裡面。(首先要確定有 admin 的 group。可參考)
$ sudo usermod -g admin hduser
然後切換使用者為 hduser。
接下來,在 vmware 的「VM」選單,按下「install VMware tool」,在虛擬電腦裡,會 mount 一個檔案。點兩下,會使用 archie manager 開啟檔案,把裡面的目錄「vmware-tools-distrib」拖到桌面上。
啟動 terminal,切換到 ~/Desktop/vmware-tools-distrib,執行
$ sudo ./vmware-install.pl
中間經過一連串的問題,都是按 enter 通過。如果有因為任何的錯誤而停下,都是因為 vmware-tools 的版本與 ubuntu 版本不合導致。我花了很多冤枉時間,才知道是版本問題。vmware 出 vmware-tools 程式一定是可以用才釋出,把版本弄對就不用白花時間。
安裝完畢,重開機一次。

設定 SSH

因為 hadoop 使用 ssh 管理它的 node,接下來要設定 ssh。
首先,產生 ssh key。
$ su - hduser # 換成 root 權限 
hduser@ubuntu:~$ ssh-keygen -t rsa -P "" 
Generating public/private rsa key pair. 
Enter file in which to save the key (/home/hduser/.ssh/id_rsa): 
Created directory '/home/hduser/.ssh'. 
Your identification has been saved in /home/hduser/.ssh/id_rsa. 
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub. 
The key fingerprint is: 
db:35:f4:ae:e3:79:48:d3:95:fa:2d:22:a8:43:5c:dd hduser@ubuntu 
The key's randomart image is: 
... 
hduser@ubuntu:~$
第二行是產生一個不用密碼的 RSA key pari。這樣就不用 hadoop 與 node 溝通時,都要人去打密碼。
再來,把新產生的 key 放到已認證的 key 中。
hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
因為 desktop 版沒有 ssh server,因此,要加裝 openssh-server
hduser@ubuntu:~$ sudo apt-get install openssh-server
測試一下能不能連上 ssh server。因為這版的 server 預設使用 ECDSA 所以,ssh 的指令要強迫使用 rsa。
hduser@ubuntu:~$ ssh -oHostKeyAlgorithms='ssh-rsa' localhost 
The authenticity of host 'localhost (127.0.0.1)' can't be established. 
RSA key fingerprint is a3:99:7f:2b:8e:92:34:20:59:2f:2d:10:94:c9:60:74. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'localhost' (RSA) to the list of known hosts. 
Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic i686)
* Documentation:  https://help.ubuntu.com/
222 packages can be updated. 
52 updates are security updates.
Last login: Mon Dec 24 00:56:30 2012 from localhost 
hduser@ubuntu:~$ exit 
logout 
Connection to localhost closed. 
hduser@ubuntu:~$
另一個解決辦法是產生 ECDSA,並使用 ECDSA。
hduser@ubuntu:~$ ssh-keygen -t ecdsa -P "" 
Generating public/private ecdsa key pair. 
Enter file in which to save the key (/home/hduser/.ssh/id_ecdsa): 
Your identification has been saved in /home/hduser/.ssh/id_ecdsa. 
Your public key has been saved in /home/hduser/.ssh/id_ecdsa.pub. 
The key fingerprint is: 
27:64:63:de:16:4b:97:f4:58:96:11:46:6d:a2:24:7e hduser@ubuntu 
The key's randomart image is:
因為後續的過程中,按照這個教學的話,hadoop 會自然的使用 ECDSA,所以,還是要用 ECDSA 的方式把 key 加到 .ssh/authorized_keys 裡面。
hduser@ubuntu:~$ cat $HOME/.ssh/id_ecdsa.pub >> $HOME/.ssh/authorized_keys
Noll 先生說,如果有遇到問題,要檢查一下在 /etc/ssh/sshd_config 裡:
  • PubkeyAuthentication 應該是 yes。
  • AllowUsers 如果有打開,則要把 hduser 加進去。
  • 如果 ssh server 的設定有異動,要強迫 ssh server 重載設定。 $ sudo /etc/init.d/ssh reload

安裝 java

java 至少要用到 ,我們可以使用指令來檢查 java 版本
hduser@ubuntu:~$ java -version 
The program 'java' can be found in the following packages: 
* default-jre 
* gcj-4.6-jre-headless 
* gcj-4.7-jre-headless 
* openjdk-7-jre-headless 
* openjdk-6-jre-headless 
Try: sudo apt-get install
新安裝的 ubuntu 12.04 desktop LTS 沒有裝 java runtime。要自己安裝。
hduser@ubuntu:~$ sudo apt-get install default-jre
hduser@ubuntu:~$ java -version 
java version "1.7.0_09" 
OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.10.1) 
OpenJDK Client VM (build 23.2-b09, mixed mode, sharing) 
hduser@ubuntu:~$

安裝小象

從 Apache 下載 hadoop,目前穩定版是 1.0.4,到 http://www.apache.org/dyn/closer.cgi/hadoop/common/ 它會給你最近的 mirror 站點。下載 1.0.4 版的 hadoop-1.0.4.tar.gz。
 image
使用 firefox 下載,預設會放到 ~/Downloads 裡面。點兩下 hadoop-1.0.4.tar.gz,archive manager 會打開該壓縮檔,把裡面的目錄 hadoop-1.0.4 拉到桌面,改名為 hadoop,再移到 /usr/local 裡面去。使用指令
hduser@ubuntu:~$ sudo mv Desktop/hadoop/ /usr/local/ 
[sudo] password for hduser: 
hduser@ubuntu:~$ ls -l /usr/local 
total 36 
drwxr-xr-x  2 root   root   4096 Oct 17 07:56 bin 
drwxr-xr-x  2 root   root   4096 Oct 17 07:56 etc 
drwxr-xr-x  2 root   root   4096 Oct 17 07:56 games 
drwxr-xr-x 14 hduser hadoop 4096 Dec 24 01:09 hadoop 
drwxr-xr-x  2 root   root   4096 Oct 17 07:56 include 
drwxr-xr-x  4 root   root   4096 Oct 17 07:59 lib 
lrwxrwxrwx  1 root   root      9 Dec 13 10:10 man -> share/man 
drwxr-xr-x  2 root   root   4096 Oct 17 07:56 sbin 
drwxr-xr-x  7 root   root   4096 Oct 17 08:00 share 
drwxr-xr-x  2 root   root   4096 Oct 17 07:56 src
接下來要設定 .bashrc。(ubuntu 預設是用 bash。)使用指令開啟 .bashrc 來改。
hduser@ubuntu:~$ gedit .bashrc
在檔案的最後加進以下的設定。(原文中的 HADOOP_HOME 的設定已經要改用 HADOOP_PREFIX。)
################# for hadoop settings ############## 
# Set Hadoop-related environment variables 
export HADOOP_PREFIX=/usr/local/hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on) 
export JAVA_HOME=/usr/lib/jvm/default-java
# Some convenient aliases and functions for running Hadoop-related commands 
unalias fs &> /dev/null 
alias fs="hadoop fs" 
unalias hls &> /dev/null 
alias hls="fs -ls"
# If you have LZO compression enabled in your Hadoop cluster and 
# compress job outputs with LZOP (not covered in this tutorial): 
# Conveniently inspect an LZOP compressed file from the command 
# line; run via: 

# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo 

# Requires installed 'lzop' command. 

lzohead () { 
    hadoop fs -cat $1 | lzop -dc | head -1000 | less 
}
# Add Hadoop bin/ directory to PATH 
export PATH=$PATH:$HADOOP_PREFIX/bin

其他使用者要用 hadoop 的,也要更新這個 ~/.bashrc

設定 hadoop -- 1

第一個要處理的是 hadoop-env.sh
hduser@ubuntu:~$ gedit /usr/local/hadoop/conf/hadoop-env.sh
把裡面的
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
的底下,加上
export JAVA_HOME=/usr/lib/jvm/default-java
再來要把 ipv6 關掉。檔案的最後加上
export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true

設定 hadoop -- 2

接下來是 core-site.xml,這是設定 hadoop 要在真實檔案系統的位置。因此,先建立一個目錄給 hadoop 使用。
hduser@ubuntu:~$ sudo mkdir -p /app/hadoop/tmp 
[sudo] password for hduser: 
hduser@ubuntu:~$ ls -l /app/hadoop/ 
total 4 
drwxr-xr-x 2 root root 4096 Dec 24 02:02 tmp 
hduser@ubuntu:~$ sudo chown hduser:hadoop /app/hadoop/tmp 
hduser@ubuntu:~$ ls -l /app/hadoop/ 
total 4 
drwxr-xr-x 2 hduser hadoop 4096 Dec 24 02:02 tmp 
hduser@ubuntu:~$ sudo chmod 750 /app/hadoop/tmp 
hduser@ubuntu:~$ ls -l /app/hadoop/ 
total 4 
drwxr-x--- 2 hduser hadoop 4096 Dec 24 02:02 tmp 
hduser@ubuntu:~$
把下列的文字,加到 /usr/local/hadoop/conf/core-site.xml 的  ...  中間:


  hadoop.tmp.dir
  /app/hadoop/tmp
  A base for other temporary directories.



  fs.default.name
  hdfs://localhost:54310
  The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. for a filesystem.
把下列的文字,加到 /usr/local/hadoop/conf/mapred-site.xml 的  ...  中間:


  mapred.job.tracker
  localhost:54311
  The host and port that the MapReduce job tracker runs
  at.  If "local", then jobs are run in-process as a single map
  and reduce task.
  
把下列的文字,加到 /usr/local/hadoop/conf/hdfs-site.xml 的  ...  中間:


  dfs.replication
  1
  Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  

如果要對設定檔多了解,可以到以下連結查看:

格式化 HDFS 的檔案系統

Noll 先生在這非常強調,不要對正在使用中的系統做格式化的動作。該系統資料會消失。
我們這個新系統要啟用,則必須先格式化檔案系統。
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop namenode -format
結果如下:
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop namenode -format 
12/12/24 02:14:23 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = ubuntu/127.0.1.1 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 1.0.4 
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct  3 05:13:58 UTC 2012 
************************************************************/ 
12/12/24 02:14:23 INFO util.GSet: VM type       = 32-bit 
12/12/24 02:14:23 INFO util.GSet: 2% max memory = 19.33375 MB 
12/12/24 02:14:23 INFO util.GSet: capacity      = 2^22 = 4194304 entries 
12/12/24 02:14:23 INFO util.GSet: recommended=4194304, actual=4194304 
12/12/24 02:14:24 INFO namenode.FSNamesystem: fsOwner=hduser 
12/12/24 02:14:24 INFO namenode.FSNamesystem: supergroup=supergroup 
12/12/24 02:14:24 INFO namenode.FSNamesystem: isPermissionEnabled=true 
12/12/24 02:14:24 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 
12/12/24 02:14:24 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) 
12/12/24 02:14:24 INFO namenode.NameNode: Caching file names occuring more than 10 times 
12/12/24 02:14:25 INFO common.Storage: Image file of size 112 saved in 0 seconds. 
12/12/24 02:14:25 INFO common.Storage: Storage directory /app/hadoop/tmp/dfs/name has been successfully formatted. 
12/12/24 02:14:25 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1 
************************************************************/ 
hduser@ubuntu:~$

啟動 cluster

到了要啟動系統的時候,使用指令:
hduser@ubuntu:~$ /usr/local/hadoop/bin/start-all.sh
看到以下的 log 就代表成功了。
hduser@ubuntu:~$ /usr/local/hadoop/bin/start-all.sh 
starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-namenode-ubuntu.out 
localhost: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-datanode-ubuntu.out 
localhost: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-secondarynamenode-ubuntu.out 
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-jobtracker-ubuntu.out 
localhost: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-tasktracker-ubuntu.out 
hduser@ubuntu:~$

利用 jps 來看是否已啟動

Noll 先生說可以使用 jps 來看啟動是否成功。但新裝的 ubuntu 沒有這東西。
The program 'jps' can be found in the following packages: 
* openjdk-6-jdk 
* openjdk-7-jdk 
Ask your administrator to install one of them
於是,安裝 openjdk-7-jdk
sudo apt-get install openjdk-7-jdk
再試一次
hduser@ubuntu:~$ jps 
7516 TaskTracker 
7287 SecondaryNameNode 
7839 DataNode 
12038 Jps 
6491 NameNode 
6901 JobTracker 
hduser@ubuntu:~$

也可以用 netstat 來看監聽的 port 是否有開。
hduser@ubuntu:~$ sudo netstat -plten | grep java

停止 single-node cluster

使用這個指令:
hduser@ubuntu:~$ /usr/local/hadoop/bin/stop-all.sh
會看到:
hduser@ubuntu:~$ /usr/local/hadoop/bin/stop-all.sh 
stopping jobtracker 
localhost: Agent admitted failure to sign using the key. 
localhost: stopping tasktracker 
stopping namenode 
localhost: Agent admitted failure to sign using the key. 
localhost: stopping datanode 
localhost: Agent admitted failure to sign using the key. 
localhost: no secondarynamenode to stop 
hduser@ubuntu:~$
原篇照我的方式走,真的太長。因此下一篇來驗證,這個系統真的可以用。


資料來源