稍微玩了一下 Crawlzilla 與 Hadoop , ZooKeeper , Pig

Crawlzilla 是一套簡易的搜尋引擎, 很好上手 因為幾乎是全自動安裝
介紹網站說明得很清楚 : https://code.google.com/p/crawlzilla/
簡易安裝PDF檔: http://crawlzilla.googlecode.com/svn-history/r334/trunk/docs/crawlzilla_Usage_zhtw.pdf

——–

於是我就開始玩弄Crawlzilla 了
但是我在安裝的時候, 發現我無法全自動安裝成功
原因不難發現…
我的JAVA的目錄位置與Crawlzilla安裝程式碼裡面的不同

由於Crawlzilla 是Hard Code寫死在 conf/ntuch_conf/hadoop-env.sh 約第9行

同時 hadoop-env.sh 也定義了許多會固定路徑:

改完後就可以安裝囉….
對了要先確認你的主機可以連上internel了~

以下為安裝過程:

附錄:HDFS Web Interface
HDFS exposes a web server which is capable of performing basic status monitoring and file browsing operations. By default this is exposed on port 50070 on the NameNode. Accessing http://namenode:50070/ with a web browser will return a page containing overview information about the health, capacity, and usage of the cluster (similar to the information returned by bin/hadoop dfsadmin -report).

The address and port where the web interface listens can be changed by setting dfs.http.address in conf/hadoop-site.xml. It must be of the form address:port. To accept requests on all addresses, use 0.0.0.0.

From this interface, you can browse HDFS itself with a basic file-browser interface. Each DataNode exposes its file browser interface on port 50075. You can override this by setting the dfs.datanode.http.address configuration key to a setting other than 0.0.0.0:50075. Log files generated by the Hadoop daemons can be accessed through this interface, which is useful for distributed debugging and troubleshooting.

Hadoop 單節點安裝記錄

參考了一些部落格的安裝過程, Hadoop 2.6.0单节点安装参考, hadoop 2.6.0单节点-伪分布式模式安装, 以及 Mac OSX 下 Hadoop 单节点集群配置 . Hadoop快速入门

這網站還有2014競賽的內容耶

1.我的環境:

OS: Ubuntu 12.04.1 LTS
Hadoop: 2.6.0
Java: jdk1.6.0_45

2.下載Hadoop
到這 apache的網站內hadoop部分, 去找出最新版下載吧, 我是使用2.6.0版本

3. 安裝Hadoop後, 直接進入hadoop-2.6.0目錄底下
編輯 etc/hadoop/hadoop-env.sh

但是為了確保以後每次登入linux主機, 都不用再重新設定 JAVA_HOME (參考)
請執行並修改你的 ~/.bashrc 檔案
(其實也可以寫到 /etc/profile 檔啦, 因為全體使用者環境變數設定檔位於 /etc/profile ,但只有 root 可以修改, 使用者登入後使用 BASH 的同時,第一時間會來執行 /etc/profile 這個檔案,,而才是個人的「~/.bashrc」( ~/.bash_profile, ~/.bash_login , ~/.profile 細節請 man bash)。 系統管理者可透過撰寫 /etc/profile 來提供使用者一個初始化的使用者環境設定, 如果 /etc/profile 與 .bashrc 兩者都寫的話, 會以最後設定得為主, 因為後者會蓋過前者!)

在最末行下加入:

4.測試一下, 如果有輸出help指示就OK

5. 編輯 etc/hadoop/core-site.xml:

6. 編輯etc/hadoop/hdfs-site.xml:

7.先配置成ssh若使用本機登入則免密碼

8.測試是否真的可以免密碼登入

9. 複製一份mapred-site.xml

10. 再编辑 etc/hadoop/mapred-site.xml:

11. 编辑etc/hadoop/yarn-site.xml:

12. 確認本機是否, 避免java.lang.RuntimeException: java.net.UnknownHostException: myhostname: myhostname
編輯 /etc/hosts

12.格式化HDFS的文件系统

13. 启动 NameNode 和 DataNode 守护进程
如果想以网页方式查看NameNode: http://localhost:50070/ http://0.0.0.0:50070/

14. 启动 ResourceManager和NodeManager守护进程
如果想以网页方式查看ResourceManager: http://localhost:8088/

15. 创建文件夹 input 並 list出來

16. 将要处理的文件复制到HDFS文件夹中 (參考)

17. 执行最经典的 wordcount 也算是hadoop中的hello word 了 (參考)

18. 运行一个MapReduce 任务

19. 執行 jps 看 processs
(如果找不到jps指令, 就把指令的路徑加入PATH吧 如: PATH=$PATH:/usr/lib/jvm/jdk1.6.0_45/bin/)
如果上面操作一切正确的话,通过”jps”命令查看是否包含ResourceManager、NodeManager、NameNode、SecondaryNameNode、DataNode等5个Java进程,参考如下:

20. 在分布式文件系统上查看输出文件:

21. 完成全部操作后,停止守护进程:

安裝設定 ZooKeeper

Apache ZooKeeper 是一個致力於開發與維護的開源伺服器( open-source server), 它能夠實現高度可靠的分佈式協調。

Zookeeper 作為Hadoop 項目中的一個子項目,是Hadoop 集群管理的一個必不可少的模塊,它主要用來控制集群中的數據,如它管理Hadoop 集群中的NameNode,還有Hbase 中Master Election、Server 之間狀態同步等。本文介紹的Zookeeper 的基本知識,以及介紹了幾個典型的應用場景。這些都是Zookeeper 的基本功能,最重要的是Zoopkeeper 提供了一套很好的分佈式集群管理的機制,就是它這種基於層次型的目錄樹的數據結構,並對樹中的節點進行有效管理,從而可以設計出多種多樣的分佈式的數據管理模型,而不僅僅局限於上面提到的幾個常用應用場景。(出處:分佈式服務框架Zookeeper — 管理分佈式環境中的數據)

1. 程式碼下載
老樣子, 找官方網站下載Apache ZooKeeper吧!

2. 解壓縮, 處理conf檔, 啟動

列出zoo.cfg供參考

3. 驗證方式1: 啟動後輸入指令jps 可以正常看到 QuorumPeerMain 的 Java Process

4. 驗證方式2: 可以快速確認是否 ZooKeeper is running (參考)
登入 ZooKeeper 主機並輸入指令: (請先確定Client Port為2181)
確認你有沒有接收到 imok 回應, 如果沒收到就表示 ZooKeeper is not running.

獲得更多資訊關於 Zookeeper

5.用Client端的程式去測試:

6. 停止服務

安裝HBase (單機安裝且可以與zookeeper互動)

就是Hadoop的資料庫 (安裝參考)
另外要注意Hadoop與HBase版本之間的support與否, 可以看這個地方, 裡面也有提到JDK版本與HBase支援關係! 這個很重要~~

1. 下載

2. 解壓縮 與 進入目錄

3. 編輯xml檔的設定
現在你已經可以啟動Hbase了。但是你可能需要先編輯 conf/hbase-site.xml 去配置hbase.rootdir,來選擇Hbase將數據寫到哪個目錄
單機配置,只需要如下配置 hbase-site.xml

將DIRECTORY 替換成你期望寫文件的目錄. 默認hbase.rootdir 是指向/tmp/hbase-${user.name} ,也就說你會在重啟後丟失數據(重啟的時候操作系統會清理/tmp目錄)

我則改成 /home/jamie/share/hadoop/tmp/hbase : (參考出處)

4. 編輯 .bashrc 設定 Hbase PATH 環境變數 :
其實也可以寫到 /etc/profile 檔啦, 因為全體使用者環境變數設定檔位於 /etc/profile ,但只有 root 可以修改, 使用者登入後使用 BASH 的同時,第一時間會來執行 /etc/profile 這個檔案,,而才是個人的「~/.bashrc」( ~/.bash_profile, ~/.bash_login , ~/.profile 細節請 man bash)。 系統管理者可透過撰寫 /etc/profile 來提供使用者一個初始化的使用者環境設定, 如果 /etc/profile 與 .bashrc 兩者都寫的話, 會以最後設定得為主, 因為後者會蓋過前者!

改玩重新執行一下 bashrc:

5. 啟動 HBase

現在你運行的是單機模式的Hbaes。所有的服務都運行在一個JVM上,包括HBase和Zookeeper。 HBase的日誌放在logs目錄,當你啟動出問題的時候,可以檢查這個日誌。

PS: 是否安裝了java ?
你需要確認安裝了Oracle的1.6 版本的java.如果你在命令行鍵入java有反應說明你安裝了Java。如果沒有裝,你需要先安裝,然後編輯 conf/hbase-env.sh,將其中的JAVA_HOME指向到你Java的安裝目錄。 (已在.bashrc檔設定)

6. 進入Hbase Shell模式:

操作幾個小指令: (參考出處)

安裝Pig

1. 下載吧, 找到apache pig網頁

2. 解壓縮

3. 再度編輯 .bashrc

4. 重新啟動界面後, 試試pig -help指令
如果有出現help說明就OK

據說pig有兩種模試: Local & MapReduce

5-1. 試試Local模式

5-2. 試試MapReduce模式
需要測定HADOOP_HOME的環境變數!
再度編輯 .bashrc

即可開啟mapReduce模式


下載Hadoop 程式碼(source code) 並編譯 (compile)

1. 程式碼下載
這裡有管理hadoop source code的github, “Download ZIP”可以直接下載程式碼

2. 安裝工具(@Ubuntu): 參考How to Contribute to Hadoop Common

3. 安裝JDK7
Installation of Oracle Java JDK 7 (which includes JRE, the Java browser plugin and JavaFX) to Ubuntu

4. 更新安装protoc至2.5.0版

5. 編譯 Build it. (參考)
Change directory to top level directory of extracted source where you will find pom.xml, which is build script in case of maven.

2 thoughts on “稍微玩了一下 Crawlzilla 與 Hadoop , ZooKeeper , Pig

  1. 陳政翰

    不好意思,我最近剛好也在裝Crawzilla但遇到了一些問題想要向您請教
    (1)請問在裝Crawlzilla之前您有安裝nutch和tomcat嗎?
    因為我在安裝時並沒有啟動tomcat的服務,所以在猜想是不是要另外先安裝tomcat和nutch。

    (2)安裝Crawlzilla的過程中並沒有讓我輸入unix password那一段,更沒有進入到之後hadoop的部分,因此在猜想是否hadoop路徑與conf/nutch_conf/hadoop-env.sh中的不同。想請問您有更改conf/nutch_conf/hadoop-env.sh中的路徑嗎?

    謝謝您

發表迴響

Copy Protected by Chetan's WP-Copyprotect.