Accumulo

Accumulo

使用apache Accumulo,用戶能夠存儲和管理一個集羣之上的大量的數據集
Accumulo使用 Apache Hadoop的HDFS來存儲數據,使用Apache ZooKeeper
來做協調。

apache Accumulo是一個有序的,分佈式的鍵值的數據庫,提供了具有可伸縮性
健壯性的數據存儲與檢索功能。

它的主要特證
服務器端的編程,基於細胞的存儲控制
對可伸縮性的設計,穩定性。

快速開始
這個快速開始提供了一個基本的安裝與運行 Accumulo的指令。對於更細節的指令,需要
查閱深度安裝指南。

考慮使用自動化的工具

如果你爲了測試或者是開發而安裝Accumulo,考慮使用如下的工具:

uno 把Accumulo安裝在一個開發的機器上。
Muchos把Accumulo安裝在一個集羣上(例如亞馬遜的EC2或者是微軟的Azure VM)

如果你爲一個生產環境而安裝Accumulo,遵循如下的快速安裝指令。

安裝 Accumulo

或者下載,或者從Accumulo的源代碼構建它的二進制的程序,解壓縮如下:

tar xzf /path/to/accumulo-2.0.0-bin.tar.gz
cd accumulo-2.0.0

爲了管理Accumulo,在它的bin目錄下有如下的四個腳本:

1 Accumulo 運行Accumulo的命令行工具和啓動Accumulo的進程
2 Accumulo-service  運行Accumulo進程作爲服務。
3 Accumulo-cluster  管理在一個結點或者是多個結點上的Accumulo的集羣
4 Accumulo-util   構建原生庫,運行jars等的Accumulo工具集

爲了配置和運行Accumulo,在接下來的指令中這些腳本被使用。爲了便利,
考慮把 accumulo-2.0.0/bin 添加到你的shell路徑中。

配置Accumulo
在配置Accumulo之前,Accumulo要求運行被安裝的zookeeper和HDFS實例。

重要提示:如果使用的是EC,如果沒有合理配置Accumulo,數據可能會丟失。

Accumulo的主要的配置文件是Accumulo.properties,Accumulo-env.sh 和
Accumulo-client.properties,它們都在conf/目錄中。

Accumulo.properties 文件配置Accumulo服務器進程(例如表格服務器,主服務器,監控器等)按照如下的步驟設置它:

1. 運行 Accumulo-util build-native 來構建原生的結點。如果這個命令失敗,
通過設置tserver.memory.maps.native.enabled 爲否,來禁用原生的映射。

2 設置 Instance.volumes 到HDFS的Accumulo的存儲數據的路徑。如果你的
結點正運行在192.168.1.9:8020,你要存儲數據在HDFS的/Accumulo,就
設置instance.volumes的值是 hdfs://192.168.1.9:8020/Accumulo

3  設置 instance.zookeeper.host的值爲你的zookeeper的位置。

4 (可選項)修改instance.secret (它被用來在Accumulo的進程之間通信)
    的默認值。這個值應該能夠匹配所有的服務器。

Accumulo-env.sh文件設置的是Accumulo需要的環境變量。

1 設置HADOOP_HOME 和ZOOKEEPER_HOME的值爲Hadoop和Zookeeper的安裝目錄。Accumulo將使用這些安裝目錄來找到Hadoop和Zookeeper的JAR軟件包,並且
把它們加載到你的CLASSPATH變量中。如果你正在運行Hadoop和Zookeeper的專用的
發佈版,你可能需要修改Accumulo-env.sh中的CLASSPATH變量。如果Accumulo
在啓動時,有加載相關類的問題,運行Accumulo_classpath,來打印出Accumulo的類路徑。

2 Accumulo的表格被配置爲默認使用1GB內存(768MB被分配給JVM,256MB被分配給原生的映射),
原生的映射被分配的內存等於tserver JVM堆的大小的三分之一。如果你在Accumulo-env.sh的JAVA_OPTS
部分修改了tserver的內存大小,使用如下的大小的值。


Native?              512MB                   1GB                             2GB                                  3GB


Yes            -Xmx384m -Xms384m    -Xmx768m -Xms768m -Xmx1536m -Xms1536m -Xmx2g -Xms2g
No             -Xmx512m -Xms512m    -Xmx1g -Xms1g            -Xmx2g -Xms2g                -Xmx3g -Xms3g

3  (可選項)檢查在Accumulo-env.sh的JaVA_OPTS的部分中,Accumulo的主服務器,垃圾回收器和
監視器的內存大小的設置。

在Accumulo的命令行中使用Accumulo-client.properties文件,可以把參數傳遞到Accumulo的客戶端,
來簡化對Accumulo的連接。使用如下的步驟配置它。

1 設置instance.name和instance.zookeepers,來表明Accumulo的實例名,和你的實例的zookeeper的連接字符串。

2 選擇一個授權類型,並且相應地設置auth.type. 最常用的類型是密碼。它要求auth.principal被設置,auth.token
被設置爲auth.principal的密碼。對於Accumulo的命令行,auth.token被忽略,命令行將提示你輸入登錄auth.principal的密碼。
 
初始化

Accumulo需要對zookeeper和HDFS的存儲數據的位置進行初始化。如下的命令執行這個任務。

Accumulo init

初始化的命令將提示如下的信息:
實例名  這是Accumulo的實例名,它的Accumulo客戶端需要知道這個實例名來連接它。
根密碼  初始化將安裝一個初始化的Accumulo的根用戶,提示它的密碼。這個信息在稍後的連接中是需要的。

運行Accumulo

爲了運行Accumulo,這裏有一些方法:
1 使用Accumulo命令,在前臺運行Accumulo進程,並且沒有重定向標準錯誤和
標準輸出的管道。對於創建init.d這個腳本來運行Accumulo是有用的。
2 使用Accumulo-service命令,把Accumulo的進程運行爲服務,或者使用Accumulo
命令作爲後臺進程,並且重定向標準錯誤和標準輸出的管道,並且管理Pid文件,如果你
正在使用一個集羣管理工具,這是很有用的。(例如 集羣配置工具等)
3 使用Accumulo-cluster命令,在一個或者是多個結點上運行Accumulo。對於本地部署和測試是有用的。
或者是你沒有在生產環境中使用一個集羣管理工具時。
上面的每一種方法都有如下的指令:

運行 Accumulo進程
Accumulo tserver

運行Accumulo服務
Accumulo-service tserver start

運行Accumulo集羣
Accumulo-cluster create-config

多結點的配置
如果你正在多結點上運行一個Accumulo的集羣,在配置目錄中,如下的文件中要配置
多個結點:

master:Accumulo的主協調進程,必須指定一個結點,能夠指定多個結點,爲了容錯。
gc: Accumulo的垃圾回收進程,必須指定一個結點,能夠指定多個結點,爲了容錯。
monitor:Accumulo監控器所在的結點,要指定。
tservers Accumulo的工作者進程。列出所有的工作者進程所在的結點
tracers 可選的能力。能指定0或者是多個結點。

Accumulo和zookeeper和HDFS的位置必須在每一個結點上有相同的位置。配置文件必須被複制到每一個結點上。
複製軟件和配置的可用的工具有pdcp和prsync.

啓動集羣
Accumulo-cluster  start

首先的步驟
Accumulo shell -u root

停止Accumulo
Accumulo-service tserver stop
Accumulo stop

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章