Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-06-29, 02:05

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 8 篇文章 ] 
發表人 內容
 文章主題 : hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-06, 13:02 
離線

註冊時間: 2013-08-16, 13:27
文章: 14
版主跟各位高手好:
小弟發現板上都有許多高手解決Hadoop方面的問題,初次在這發問,有需要改進的內容請指正我

目前有玩過hadoop叢集 + hbase (安裝測試研究) 和 cassandra (沒有結合hadoop)
作業系統我採用ubuntu 12.04 LTS 一般PC版本做測試環境(常接觸比較習慣,有打算玩Debian)

1.
使用上有發現cassandra 環境安裝好,設定好seed IP後(node0~node2:seed = node0),就可以自動變成cassandra叢集(有說錯請指正)
而我是使用Thrift API java (Eclipse 環境撰寫Client Java程式),將我要測試的Excel檔案自動匯入Cassandra,最後也在node1~2(client)查詢到Excel資料有寫入
2.
Hadoop(1.2.1) + hbase(0.94.10),檔案都是從Apach 官網下載安裝的環境(有聽過網路上Cloudera的版本,但還沒有試過,不知穩定度和安裝手續如何)
當然安裝時有用到hadoop和Hbase的版本相容問題(安裝測試搞了好久.............)
使用後有發現Hbase 是必須搭載在hadoop叢集下才可運行的NoSQL,和Cassandra相比較之下,安裝到完成的複雜度比較高
再來Hbase之後的版本都有自帶起Zookeeper的功能,也省下要安裝Zookeeper的問題。
以上是我在使用上的一些心得感想

正題開始:
再經過這兩點的使用心得後,就開始思考如何實現異地備援的架構。目前我都異地備援架構的想法並沒有想到相當困難,因為主要是要研究並實現出來測試
上網搜尋Linux異地備援的資料後,有發現網友都提供rsync的方法(好用的鳥哥......),我也看了一些網友PO的實作方式,是針對兩台Linux Server來使用rsync的功能
這樣我就想到如果我今天是hadoop+hbase 或cassandra ,使用rsync實現是要兩邊叢集的所有節點都帶起rsync?(1-1→叢集-叢集???)
想請問jazz 大大或其他高手,我如果想實現hadoop+hbase (方案一)或cassandra(方案二) 異地備援,因該是後者比較方便對嗎?
畢竟cassandra 自動帶起叢集,不像hadoop-Hbase還需繁雜的安裝設定以及Hbase(master)有單點故障的問題
但cassnadra 的應用範圍相當少,比起Hbase而言,Hbase支持複雜度高的架構(我自己的觀點,有錯請指正我)

問題:
一. 方案一:hadoop-hbase
如果選擇使用hadoop-hbase,A點的hdfs(假設有6台Server Node)備援到 B點的hdfs(假設有3台Server Node)的做法呢??(技術與方法)
以及A點的hbase資料(假設有6台Server Node)備援到 B點的hbase資料(假設有3台Server Node)的做法呢???(技術與方法)
如果我使用方案一,像是Zookeeper的設定是否不要使用Hbase自帶起的比較好?(還是搞不清楚自帶起跟自訂的好壞...)

二. 方案二:cassandra
如果選擇使用cassandra,我要如將A點的Cassandra cluster(假設有6台Server Node) 備援到 B點的Cassandra Cluster(假設有3台Server Node)的做法呢?([技術與方法)
兩邊資料庫要怎要的方法或技術來實現A點Cassanra 資料庫資料異地備援到B點????
針對檔案的部分,我有想到因該可搭配rsync來使用,這樣可以嗎?(針對檔案(file)使用rsync來作異地備援的功能)

目前一直想不透我要如果實現A叢集備份到B叢集的著手方向
(兩邊節點數可能是不一樣的,還是我太執著於以為兩地節點數要依樣才能做,想不透做法..... =.=)
1-1的備援我目前有找到rsync的做法要來試看看,但是叢集-叢集的異地備援我整個沒概念
目標在於實現叢集式的異地備援,看jazz大大或各位可不可以也提供我一些網頁資訊來參考看看?
(估哥好多資料,但我找不到詳細點的技術說明,關鍵字能力有點差....)


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-06, 14:47 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
不是很確定您講的備援是想做到 NoSQL 的 Replication 還是 High Availability (HA)

HA 牽涉到 (1) 資料的同步 (2) 網路的切換
以前 Linux HA 都是用 DRBD 來處理 (1) , heartbit 來處理 (2)
更多資訊可參考 http://www.linux-ha.org

我的感覺是您想問的是 NoSQL 的 Replication
(有點像早期 MySQL 要寫入 A Server,希望同步寫入 B Server,我們稱為 MySQL Master-Slave Replication)
如果是 HBase 的話,請參考 http://hbase.apache.org/replication.html
如果是 Cassandra 的話,請參考 http://www.datastax.com/docs/1.0/cluster_architecture/replication

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-06, 19:30 
離線

註冊時間: 2013-08-16, 13:27
文章: 14
jazz大大
有個問題我想問一下
像我是新手,在學習hadoop + hbase 時,Zookeeper的設定都是選用hbase自帶的設定
雖然使用上相當方便,但實際上對於Zookeeper的參數應用就會很陌生,也會不曉得zookeeper如何控管底下的節點
先前有在此版上看到jazz大大回應網友可以使用自帶起的zookeeper就可以
假如今天是要打造異地備援的架構下,zookeeper是否不要用Hbase本身的預設
而是安裝zookeeper套件,來搭配我的hbase會比較好?兩者的好壞是在何處?


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-07, 22:17 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Qoo0707Q 寫:
jazz大大
有個問題我想問一下
像我是新手,在學習hadoop + hbase 時,Zookeeper的設定都是選用hbase自帶的設定
雖然使用上相當方便,但實際上對於Zookeeper的參數應用就會很陌生,也會不曉得zookeeper如何控管底下的節點
先前有在此版上看到jazz大大回應網友可以使用自帶起的zookeeper就可以
假如今天是要打造異地備援的架構下,zookeeper是否不要用Hbase本身的預設
而是安裝zookeeper套件,來搭配我的hbase會比較好?兩者的好壞是在何處?


使用 HBase 自帶的 ZooKeeper 與否,主要只是需要擔心「版本相容性」的問題。
個人覺得沒有差耶~直接用 HBase 裏面的 ZooKeeper 就可以了。

如果真的需要做比較複雜的事情,
反而應該是去學一下 zkCli.sh 怎麼連進去查 ZooKeeper 裏面的樹狀結構。
可以參考 Hadoop The Definitive Guide 裏面有一章在講 ZooKeeper 的細節。

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-16, 21:49 
離線

註冊時間: 2013-08-16, 13:27
文章: 14
jazz大大,我從您提供的文章中有些問題想請教一下

The State znode

The state znode indicates whether or not replication is enabled on the cluster corresponding to this zookeeper quorum. It does not have any child znodes and simply contains a boolean value. This value is initialized on startup based on the hbase.replication config parameter in the hbase-site.xml file. The status value is read/maintained by the ReplicationZookeeper.ReplicationStatusTracker class. It is also cached locally using an AtomicBoolean in the ReplicationZookeeper class. This value can be changed on a live cluster using the stop_replication command available through the hbase shell.

/hbase/replication/state [VALUE: true]

The Peers znode

The peers znode contains a list of all peer replication clusters and the current replication state of those clusters. It has one child peer znode for each peer cluster. The peer znode is named with the cluster id provided by the user in the HBase shell. The value of the peer znode contains the peers cluster key provided by the user in the HBase Shell. The cluster key contains a list of zookeeper nodes in the clusters quorum, the client port for the zookeeper quorum, and the base znode for HBase (i.e. “zk1.host.com,zk2.host.com,zk3.host.com:2181:/hbase”).

/hbase/replication/peers
/1 [Value: zk1.host.com,zk2.host.com,zk3.host.com:2181:/hbase]
/2 [Value: zk5.host.com,zk6.host.com,zk7.host.com:2181:/hbase]


Each of these peer znodes has a child znode that indicates whether or not replication is enabled on that peer cluster. These peer-state znodes do not have child znodes and simply contain a boolean value (i.e. ENABLED or DISABLED). This value is read/maintained by the ReplicationPeer.PeerStateTracker class. It is also cached locally using an AtomicBoolean in the ReplicationPeer class.

/hbase/replication/peers
/1/peer-state [Value: ENABLED]
/2/peer-state [Value: DISABLED]


The RS znode

The rs znode contains a list of all outstanding HLog files in the cluster that need to be replicated. The list is divided into a set of queues organized by region server and the peer cluster the region server is shipping the HLogs to. The rs znode has one child znode for each region server in the cluster. The child znode name is simply the regionserver name (a concatenation of the region server’s hostname, client port and start code). These region servers could either be dead or alive.

/hbase/replication/rs
/hostname.example.org,6020,1234
/hostname2.example.org,6020,2856


Within each region server znode, the region server maintains a set of HLog replication queues. Each region server has one queue for every peer cluster it replicates to. These queues are represented by child znodes named using the cluster id of the peer cluster they represent (see the peer znode section).

/hbase/replication/rs
/hostname.example.org,6020,1234
/1
/2


Each queue has one child znode for every HLog that still needs to be replicated. The value of these HLog child znodes is the latest position that has been replicated. This position is updated every time a HLog entry is replicated.

/hbase/replication/rs
/hostname.example.org,6020,1234
/1
23522342.23422 [VALUE: 254]
12340993.22342 [VALUE: 0]

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我理解是:State設定是決定是否使用hbase自帶起的zookeeper,peers設定決定1的同網域IP有哪些,2的同網域IP有哪些,rs設定則是決定1的Hmatser遴選與2的Hmaster遴選。不知道我這樣理解是不是正確的?
再來,我有寫過獨立安裝zookeeper的zoo.cfg檔,其中設定通常都是如下:
dataDir=/var/zookeeper
datalogDir=/var/zookeeperLOG
clientPort=2181
initLimit=5
syncLimit=2
tickTime=2000
server.1=master:2888:3888
server.2=slave01:2888:3888
server.3=slave02:2888:3888

這邊我就想不通了,上面設定是針對同網域IP的設定,而文章中的peers znode作法是可以分成兩個不同網域的設定
使用hbase自帶起的zookeeper設定檔是不是都因該放在hbase/conf內,為何文章中是以hbase/replication,然後分別設定State、peers、RS,
這樣的話我有一個zoo.cfg檔案(設定參數跟上方內容依樣,除了server.x=xxx:xxx:xxx),State是在hbase.env.sh 設定就好,而peers、RS 是要寫在zoo.cfg內再放到hbase/conf後,再啟動hbase??
不知道是否有完整的peers和RS的寫法可以參考看看?(其實我一直找不到使用hbase自帶的zookeeper的設定檔要放哪= =,網路上參考是說都是放在hbase/conf位置)
麻煩jazz大大指導了.......


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-17, 09:09 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Qoo0707Q 寫:
使用hbase自帶起的zookeeper設定檔是不是都因該放在hbase/conf內,為何文章中是以hbase/replication,然後分別設定State、peers、RS,
這樣的話我有一個zoo.cfg檔案(設定參數跟上方內容依樣,除了server.x=xxx:xxx:xxx),State是在hbase.env.sh 設定就好,而peers、RS 是要寫在zoo.cfg內再放到hbase/conf後,再啟動hbase??
不知道是否有完整的peers和RS的寫法可以參考看看?(其實我一直找不到使用hbase自帶的zookeeper的設定檔要放哪= =,網路上參考是說都是放在hbase/conf位置)
麻煩jazz大大指導了.......


很抱歉我沒有玩過 HBase Replication
關於文中提到的 hbase/replication 並非實際的設定檔,而是存放在 ZooKeeper 中的樹狀目錄結構
所以 zookeeper 設定檔確實放在 hbase/conf,而文中的參數,我猜得靠 ZkCli 進去改。供參考~

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-17, 23:48 
離線

註冊時間: 2013-08-16, 13:27
文章: 14
非常謝謝jazz 大師的幫忙
這部份我會努力研究實現出來,若成功我會在來提供安裝心得
給版上有這方面需求的研究者一同參考與探討改善地方
後續還有問題,也會再來向您請教,到時還得麻煩您不嫌棄的指導我一番。
謝謝!! ^^


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: hadoop 搭配hbase或cassandra來實現異地備援問題?
文章發表於 : 2013-09-18, 09:02 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Qoo0707Q 寫:
非常謝謝jazz 大師的幫忙
這部份我會努力研究實現出來,若成功我會在來提供安裝心得
給版上有這方面需求的研究者一同參考與探討改善地方
後續還有問題,也會再來向您請教,到時還得麻煩您不嫌棄的指導我一番。
謝謝!! ^^


我不是什麼大師啦~一個人的力量有限,我能學、能測試的時間也有限。
純粹只是覺得學習的路上每個人都需要有夥伴,我只能儘可能提供一些想法。
所以很多時候,不管對錯就還是回一下,有人討論總是好事,有回應總比冷漠來得好。
多聽大家的問題,我自己也從中學習到新的知識,教學相長啦~

- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 8 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作