公告版位

  1. [安裝環境準備]

本文所採用的安裝環境如下:

  • Ubuntu 10.10
  • Cassandra 1.0.0
  1. [需要的軟體]
  • Java 1.6.x:

Cassandra是使用Java所開發的軟體,而需要使用Java Virtual Machine (JVM)編譯並執行Cassandra,因此在啟動Cassandra前,必須在主機上先安裝Java才能正常執行。

  1. [Cassandra單一節點安裝與設定]
  • Cassandra官方網站http://cassandra.apache.org下載Cassandra套件,目前最新穩定版本為1.0.0
  • 下載後的壓縮檔,解壓縮到磁碟目錄中,本文假設解壓縮到/home/cassandra。解壓縮後資料夾階層如下:

$ cd /home/cassandra

~/cassandra $ ls

apache-cassandra-1.0.0

  • 接著依照下列command新增Cassandra所需要的四個資料夾,commitlog, log, saved_cached, data

$ cd /home/cassandra

~/cassandra$ mkdir commitlog

~/cassandra $ mkdir log

~/cassandra $ mkdir data

~/cassandra $ mkdir saved_caches

  • 開啟/home/cassandra/apache-cassandra-1.0.0/conf/cassandra.yaml 找出此設定檔的三個標籤並修改其內容如下:

data_file_directories:

/home/cassandra/data

commitlog_directory:

/home/cassandra/commitlog

saved_caches_directory:

/home/cassandra/saved_caches

  • 開啟/home/cassandra/apache-cassandra-1.0.0/conf/log4j-server.properties 找出此設定檔的log4j.appender.R.File標籤並修改其內容如下:

log4j.appender.R.File=/home /cassandra/log/system.log

ciner945 發表在 痞客邦 留言(0) 人氣()

最近在啟動hadoop叢集時,發生了一個問題。

透過name node主機啟動叢集上所有節點hadoop程序,於data node主機上使用jps指令,可以看到DataNode與TaskTracker程序已啟動。

但透過瀏覽器鍵入http://{NameNodeIP}:50030http://{NameNodeIP}:50070檢視各節點狀態,就是不見data node節點。

因此遠端進入data node節點查看log,發現顯示下列錯誤訊息:

2012-02-02 00:00:05,690 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 0 time(s).
2012-02-02 00:00:06,691 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 1 time(s).
2012-02-02 00:00:07,692 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 2 time(s).
2012-02-02 00:00:08,692 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 3 time(s).
2012-02-02 00:00:09,693 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 4 time(s).
2012-02-02 00:00:10,693 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 5 time(s).
2012-02-02 00:00:11,694 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 6 time(s).
2012-02-02 00:00:12,695 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 7 time(s).
2012-02-02 00:00:13,695 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 8 time(s).
2012-02-02 00:00:14,696 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop-c/10.0.0.54:9000. Already tried 9 time(s).
2012-02-02 00:00:14,697 INFO org.apache.hadoop.ipc.RPC: Server at hadoop-c/10.0.0.54:9000 not available yet, Zzzzz...

 

上述log所顯示name node的host name與ip都沒有錯,但就是無法與name node正常連線,上網查了一下,有兩項可能性:

1. 網路環境有防火牆阻隔
=> 排除此可能性,測試其他連線都可正常與name node連線,所以不會是防火牆問題。

ciner945 發表在 痞客邦 留言(0) 人氣()

第一次遇到這樣的問題,雖然還不清楚原因是什麼,但起碼找到解決方法。

程式碼結構如下:

//新增資料到A資料庫的程式碼

try

{

//將剛新增的資料同步到另一台主機的B資料庫

Response.Redirect("~/test/tset.aspx");

}

catch (Exception ex)

{

//出錯後,將原本新增至A資料庫的資料刪除

//後續處理

}

就是這樣簡單的程式碼,但卻因為Response.Redirect()丟出了"無法評估運算式,

因為程式碼已經最佳化..."的例外,

使得兩台資料庫都新增成功,卻因為此例外又將A資料庫的資料刪除,資料都錯亂了。

目前最單純的解決方案便是,將Response.Redirect()拿到try catch之外執行,

try catch內加個布林值判斷是否丟出例外,

沒有丟例外的話,才會執行Response.Redirect(),程式碼如下:

 //新增資料到A資料庫的程式碼

ciner945 發表在 痞客邦 留言(2) 人氣()

  • 系統環境:

    Ubuntu 11.10

  • 安裝步驟

    Step1    JDK安裝

    原因: Hadoop的程式都是使用java所撰寫的,需要有Java執行環境,安裝JDK也可供日後開發或測試MapReduce等程式

    指令: $sudo apt-get install openjdk-6-jdk

    Step2    ssh server安裝

    原因: Hadoop啟用時,需要遠端連線到所設定的各節點,各節點必須建立互信機制,則是使用ssh的方式連線

    指令: $sudo apt-get install openssh-server

    Step3    ssh 免登入設定

    原因: 當節點數一多時,使用ssh遠端連線到一個節點便要key一次密碼,這相當的不方便,以及安全性問題

    指令:

        $ssh-keygen –t rsa –P ‘’  (產生公鑰與私鑰)

        $cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys   (將公鑰複製到受驗證金鑰內,此以本機為例)

        $ssh localhost   (測試是否可免密碼登入)

    Step4    Hadoop下載

    指令:

        $sudo chown hadoop:hadoop /opt    (改變/opt資料夾的擁有者與群組)

        $cd /opt    (變更工作目錄到/opt)

        $wget http://ftp.tc.edu.tw/pub/Apache//hadoop/common/hadoop-0.20.205.0/hadoop-0.20.205.0.tar.gz    (下載Hadoop-0.20.205.0壓縮檔)

        $tar –xvf hadoop-0.20.205.0.tar.gz    (解壓縮)

    Step5    Hadoop環境設定

ciner945 發表在 痞客邦 留言(0) 人氣()

因為專案的需要,前陣子開始研究Ganglia這套監控系統,對於各主機即時狀態的呈現,幫助管理者可以快速地瞭解各主機的健康狀況。由於各os環境的不同,在網路上找不到完全詳細的安裝與設定資訊,花了不少時間在看錯誤訊息,試著靠這些訊息來一個一個除錯,讓Ganglia可以正常監控基本主機資訊。關於Ganglia的介紹與原理網路上已經有很多資訊,在這就只記錄完整安裝與設定Ganglia的步驟。

1. 安裝環境準備

  本文所採用的安裝環境如下:

  • Ubuntu 10.10
  • Ganglia 3.3.1

2. 主節點Gmond安裝與設定

  • 到Ganglia官方網站http://ganglia.sourceforge.net/ 下載Ganglia套件,目前最新穩定版本為3.3.1。
  • 下載後的壓縮檔,解壓縮到磁碟目錄中,本文假設解壓縮到/opt/。解壓縮後資料夾階層如下:

$ cd /opt

~/opt $ ls

ganglia-3.3.1

  • 安裝需要的套件(如有套件無法取得,請逐一個別安裝)

$sudo apt-get install build-essential libapr1-dev libconfuse-dev libexpat1-dev python-dev

  • 編譯

~/opt$ cd ganglia-3.3.1

~/ganglia-3.3.1 $ sudo ./configure --with-libpcre=no

 

編譯成功後的畫面

  • 安裝

~/ganglia-3.3.1 $ sudo make

~/ganglia-3.3.1 $ sudo make install

ciner945 發表在 痞客邦 留言(0) 人氣()