Cách cài đặt database Apache Accumulo NoSQL thân thiện với dữ liệu lớn trên Ubuntu 14.04
Apache Accumulo là một database NoSQL phân tán open-souce dựa trên BigTable của Google . Nó được sử dụng để thực hiện hiệu quả các hoạt động CRUD (Create Read Update Delete) trên các tập dữ liệu cực lớn (thường được gọi là Dữ liệu lớn). Accumulo được ưu tiên hơn các database phân tán tương tự khác (chẳng hạn như HBase hoặc CouchDB) nếu một dự án yêu cầu bảo mật chi tiết dưới dạng kiểm soát truy cập cấp tế bào.Accumulo được xây dựng dựa trên phần mềm Apache khác. Accumulo đại diện cho dữ liệu của nó dưới dạng các cặp key-value và lưu trữ dữ liệu đó dưới dạng file trên HDFS (Hệ thống file phân tán Hadoop của Apache). Nó cũng sử dụng Apache ZooKeeper để đồng bộ hóa cài đặt giữa tất cả các quy trình của nó.
Trong hướng dẫn này, bạn sẽ học cách:
- Cài đặt và cấu hình Apache HDFS và ZooKeeper: Các hệ thống này phải hoạt động trước khi khởi động Accumulo
- Cài đặt và cấu hình version độc lập của Accumulo
Yêu cầu
Bạn cần những thứ sau:
Bước 1 - Cài đặt và cấu hình JDK 7
Accumulo, HDFS và ZooKeeper đều được viết bằng Java và cần một JVM (Máy ảo Java) để chạy. Vì vậy, hãy bắt đầu bằng cách cài đặt JDK.
Cập nhật index danh sách gói.
sudo apt-get update
Cài đặt OpenJDK 7 bằng apt-get
.
sudo apt-get install openjdk-7-jdk
Sử dụng nano
để chỉnh sửa file môi trường shell của bạn, .bashrc
.
nano ~/.bashrc
Thêm JAVA_HOME
làm biến môi trường ở cuối file .
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
Lưu ý : Giá trị của
JAVA_HOME
có thể khác nhau tùy thuộc vào kiến trúc server của bạn. Ví dụ: trên server 64 bit, giá trị sẽ là/usr/lib/jvm/java-7-openjdk-amd64
. Bạn có thể xem đường dẫn chính xác bằng cách liệt kê nội dung của folder/usr/lib/jvm/
. Nếu đường dẫn của bạn khác với những gì được hiển thị ở đây, hãy đảm bảo bạn áp dụng các thay đổi thích hợp ở đây và ở nơi khác.
Lưu file và thoát khỏi nano
. Cập nhật các biến môi trường của phiên hiện tại bằng lệnh :
. ~/.bashrc
Chỉnh sửa file cấu hình java.security
của JVM bằng nano
.
sudo nano $JAVA_HOME/jre/lib/security/java.security
Tìm kiếm tham số securerandom.source
và thay đổi dòng để có dạng như sau:
securerandom.source=file:/dev/./urandom
Lưu file và thoát khỏi nano
. Thay đổi này là cần thiết để giảm thời gian khởi động của JVM. Không thực hiện thay đổi này có thể dẫn đến thời gian khởi động rất lâu trên hầu hết các server ảo.
Bước 2 - Cài đặt SSH
Hadoop cần SSH và Rsync để quản lý các daemon của nó. Cài đặt chúng bằng lệnh sau:
sudo apt-get install ssh rsync
Bước 3 - Bật kết nối SSH không password
Hadoop sẽ có thể kết nối với server của bạn qua SSH mà không bị nhắc nhập password .
Tạo khóa RSA bằng ssh-keygen
.
ssh-keygen -P ''
Nhấn ENTER khi được yêu cầu , để chọn các giá trị mặc định.
Thêm khóa đã tạo vào file authorized_keys
.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Các giá trị localhost
và 0.0.0.0
nên được thêm vào danh sách các server đã biết. Cách dễ nhất để làm điều này là chạy lệnh ssh
.
Hãy để ta thêm localhost
trước.
ssh localhost
Bạn sẽ được yêu cầu bởi một thông báo giống như sau:
The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is bf:01:63:5b:91:aa:35:db:ee:f4:7e:2d:36:e7:de:42. Are you sure you want to continue connecting (yes/no)?
Nhập yes
và nhấn ENTER
.
Khi quá trình đăng nhập hoàn tất, hãy thoát phiên SSH con bằng lệnh :
exit
Hãy để ta thêm 0.0.0.0
ngay bây giờ.
ssh 0.0.0.0
Nhập yes
và nhấn ENTER
khi được yêu cầu .
, hãy thoát phiên SSH con bằng lệnh :
exit
Cài đặt SSH hiện đã hoàn tất.
Bước 4 - Tạo folder download
Bạn sẽ download một vài file cho hướng dẫn này. Mặc dù không thực sự cần thiết nhưng bạn nên lưu trữ tất cả các bản download của bạn trong một folder riêng.
mkdir -p ~/Downloads
Nhập folder .
cd ~/Downloads
Bước 5 - Download Apache Hadoop
Tại thời điểm viết bài, version ổn định mới nhất của Hadoop là 2.6.0 . Download bằng wget
.
wget "http://www.eu.apache.org/dist/hadoop/common/stable/hadoop-2.6.0.tar.gz"
Bước 6 - Download Apache ZooKeeper
Phiên bản ổn định mới nhất của ZooKeeper là 3.4.6 . Download bằng wget
.
wget "http://www.eu.apache.org/dist/zookeeper/stable/zookeeper-3.4.6.tar.gz"
Bước 7 - Download Apache Accumulo
Phiên bản ổn định mới nhất của Accumulo là 1.6.1 . Download bằng wget
.
wget "http://www.eu.apache.org/dist/accumulo/1.6.1/accumulo-1.6.1-bin.tar.gz"
Bước 8 - Tạo folder cài đặt
Tạo một folder để lưu trữ tất cả các cài đặt liên quan đến Accumulo của ta .
mkdir -p ~/Installs
Nhập folder .
cd ~/Installs
Bước 9 - Cài đặt và cấu hình Hadoop
Sử dụng lệnh tar
để extract nội dung của hadoop-2.6.0-src.tar.gz
.
tar -xvzf ~/Downloads/hadoop-2.6.0.tar.gz
Lưu ý: Nếu bạn đã cài đặt một version khác của bất kỳ phần mềm này, vui lòng sử dụng version thích hợp trong tên file của bạn.
Sử dụng nano
để mở hadoop-env.sh
.
nano ~/Installs/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
Tìm dòng bắt đầu bằng export JAVA_HOME
và thay đổi nó thành:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
Đảm bảo giá trị này giống với giá trị bạn đặt trong .bashrc
.
Theo mặc định, Hadoop tạo ra rất nhiều bản ghi gỡ lỗi. Để dừng hành vi này, hãy tìm dòng bắt đầu bằng export HADOOP_OPTS
và thay đổi nó thành:
export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"
Lưu và thoát.
Sử dụng nano
để mở core-site.xml
.
nano ~/Installs/hadoop-2.6.0/etc/hadoop/core-site.xml
Thêm khối <property>
có tên fs.defaultFS
. Giá trị của nó phải trỏ đến tên server và cổng của nút tên (trong trường hợp của ta , đó là localhost
và cổng mặc định 9000
). Bỏ qua các comment , hãy chỉnh sửa file của bạn để nó trông giống như sau:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
Lưu và thoát.
Sử dụng nano
để mở hdfs-site.xml
.
nano ~/Installs/hadoop-2.6.0/etc/hadoop/hdfs-site.xml
Các thuộc tính sau đây cần được thêm vào file này:
dfs.replication
: Con số này chỉ định số lần một khối được sao chép bởi Hadoop. Theo mặc định, Hadoop tạo3
bản sao cho mỗi khối. Trong hướng dẫn này, hãy sử dụng giá trị1
, vì ta không tạo một cụm.dfs.name.dir
: Điều này trỏ đến một vị trí trong hệ thống file nơi nút tên có thể lưu trữ bảng tên. Bạn cần thay đổi điều này vì Hadoop sử dụng/tmp
theo mặc định. Hãy để ta sử dụnghdfs_storage/name
để lưu bảng tên.dfs.data.dir
: Điều này trỏ đến một vị trí trong hệ thống file nơi nút dữ liệu sẽ lưu trữ các khối của nó. Bạn cần thay đổi điều này vì Hadoop sử dụng/tmp
theo mặc định. Hãy để ta sử dụnghdfs_storage/data
để lưu trữ các khối dữ liệu.
Bỏ qua các comment , sau khi thêm các thuộc tính này, file của bạn sẽ trông như thế này:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>hdfs_storage/name</value> </property> <property> <name>dfs.data.dir</name> <value>hdfs_storage/data</value> </property> </configuration>
Sử dụng nano
để tạo một file mới có tên mapred-site.xml
.
nano ~/Installs/hadoop-2.6.0/etc/hadoop/mapred-site.xml
Thêm thuộc tính có tên mapred.job.tracker
vào file này. Thuộc tính này chứa tên server và số cổng mà trình theo dõi công việc MapReduce chạy trên đó. Để cài đặt của ta , hãy sử dụng localhost
và cổng mặc định 9001
.
Thêm nội dung sau vào file :
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
Nhập folder cơ sở của Hadoop (điều này rất quan trọng vì Hadoop tạo folder hdfs_storage
trong folder hiện tại).
cd ~/Installs/hadoop-2.6.0/
NameNode bây giờ có thể được khởi tạo bằng lệnh vào:
~/Installs/hadoop-2.6.0/bin/hdfs namenode -format
Bạn sẽ thấy khá nhiều kết quả .
Tiếp theo, khởi động NameNode bằng lệnh :
~/Installs/hadoop-2.6.0/sbin/start-dfs.sh
Chờ một hoặc hai phút để nó bắt đầu. Sau khi bắt đầu, bạn có thể sử dụng trình duyệt để truy cập http://<your-ip>:50070/
và duyệt qua giao diện web của NameNode.
Xử lý sự cố
Nếu bạn không thể truy cập giao diện web, hãy kiểm tra xem NameNode có hoạt động hay không bằng cách sử dụng lệnh sau:
jps
Đầu ra của bạn phải chứa ba quy trình sau cùng với quy trình Jps
:
-
DataNode
-
NameNode
-
SecondaryNameNode
Nếu bạn thấy NameNode
không xuất hiện trong kết quả , hãy thực hiện các bước sau. Nếu chúng không thực thi trong một khối, bạn có thể phải chạy chúng riêng biệt. Comment có trong dòng.
cd ~/Installs/hadoop-2.6.0/ ~/Installs/hadoop-2.6.0/sbin/stop-dfs.sh # Stop Hadoop's nodes rm -rf hdfs_storage # Delete the namenode data rm -rf /tmp/hadoop-* # Delete the temporary directories ~/Installs/hadoop-2.6.0/bin/hdfs namenode -format # Reformat the namenode
Khởi động lại Hadoop bằng start-dfs.sh
:
~/Installs/hadoop-2.6.0/sbin/start-dfs.sh
Bạn có thể truy cập giao diện web ngay bây giờ.
Bước 10 - Cài đặt và cấu hình ZooKeeper
Nhập folder Installs
.
cd ~/Installs
Sử dụng tar
để extract zookeeper-3.4.6.tar.gz
.
tar -xvzf ~/Downloads/zookeeper-3.4.6.tar.gz
Sao chép file ví dụ zoo_sample.cfg
vào zoo.cfg
.
cp ~/Installs/zookeeper-3.4.6/conf/zoo_sample.cfg ~/Installs/zookeeper-3.4.6/conf/zoo.cfg
Cấu hình của ZooKeeper hiện đã hoàn tất. Khởi động ZooKeeper bằng lệnh :
~/Installs/zookeeper-3.4.6/bin/zkServer.sh start
Bạn sẽ thấy kết quả giống như sau:
JMX enabled by default Using config: ~/Installs/zookeeper-3.4.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
Bước 11 - Cài đặt và cấu hình Accumulo
Bây giờ tất cả các phụ thuộc của nó đã được thỏa mãn, đã đến lúc bắt tay vào việc cài đặt Accumulo.
Nhập folder Installs
.
cd ~/Installs
Extract accumulo-1.6.1-bin.tar.gz
bằng tar
:
tar -xvzf ~/Downloads/accumulo-1.6.1-bin.tar.gz
Accumulo đi kèm với các cấu hình mẫu cho server với nhiều kích thước bộ nhớ: 512 MB, 1 GB, 2 GB và 3 GB. Tôi sẽ sử dụng cấu hình cho 512 MB trong hướng dẫn này. Bạn có thể chọn một cấu hình khác nếu server của bạn có nhiều bộ nhớ hơn.
Sao chép các file cấu hình 512 MB vào folder conf
.
cp ~/Installs/accumulo-1.6.1/conf/examples/512MB/standalone/* ~/Installs/accumulo-1.6.1/conf/
Sử dụng nano
để chỉnh sửa lại môi trường shell của bạn, sử dụng file .bashrc
.
nano ~/.bashrc
Thêm các biến môi trường sau vào file này:
- HADOOP_HOME: Đường dẫn đến cài đặt Hadoop
- ZOOKEEPER_HOME: Đường dẫn đến cài đặt ZooKeeper
Thêm các dòng sau vào file của bạn:
export HADOOP_HOME=~/Installs/hadoop-2.6.0/ export ZOOKEEPER_HOME=~/Installs/zookeeper-3.4.6/
Lưu và thoát.
Cập nhật môi trường để các biến bạn đã thêm vào .bashrc
có sẵn trong phiên hiện tại.
. ~/.bashrc
Sử dụng nano
để chỉnh sửa accumulo-env.sh
.
nano ~/Installs/accumulo-1.6.1/conf/accumulo-env.sh
Theo mặc định, màn hình HTTP của Accumulo chỉ liên kết với network interface local . Để có thể truy cập nó qua Internet, bạn phải đặt giá trị của ACCUMULO_MONITOR_BIND_ALL
thành true
.
Tìm dòng bắt đầu bằng export ACCUMULO_MONITOR_BIND_ALL
và bỏ ghi chú. Nó sẽ giống như thế này:
export ACCUMULO_MONITOR_BIND_ALL="true"
Lưu và thoát.
Sử dụng nano
để chỉnh sửa accumulo-site.xml
.
nano ~/Installs/accumulo-1.6.1/conf/accumulo-site.xml
Các quy trình công nhân của Accumulo giao tiếp với nhau bằng khóa bí mật. Điều này sẽ được thay đổi thành một chuỗi an toàn. Tìm kiếm instance.secret
thuộc tính và thay đổi giá trị của nó. Tôi sẽ sử dụng chuỗi này: PASS1234
. XML cho thuộc tính sẽ giống như sau:
<property> <name>instance.secret</name> <value>PASS1234</value> <description>A secret unique to a given instance that all servers must know in order to communicate with one another. Change it before initialization. To change it later use ./bin/accumulo org.apache.accumulo.server.util.ChangeSecret --old [oldpasswd] --new [newpasswd], and then update this file. </description> </property>
Tiếp theo, thêm một thuộc tính mới có tên instance.volumes
. Giá trị của thuộc tính này chỉ định nơi Accumulo sẽ lưu trữ dữ liệu của nó trong HDFS. Hãy để ta lưu trữ dữ liệu trong folder /accumulo
.
<property> <name>instance.volumes</name> <value>hdfs://localhost:9000/accumulo</value> </property>
Tìm thuộc tính trace.token.property.password
và đặt giá trị của nó thành một thứ gì đó an toàn. Hãy nhớ giá trị này vì bạn cần nó trong bước tiếp theo. Tôi sẽ đặt điều này thành mypassw
.
<property> <name>trace.token.property.password</name> <value>mypassw</value> </property>
Lưu và thoát.
Khởi tạo Accumulo.
~/Installs/accumulo-1.6.1/bin/accumulo init
Bạn sẽ được yêu cầu nhập tên Phiên bản . Sử dụng bất kỳ tên nào bạn chọn. Tôi chọn DIGITAL_OCEAN
.
Tiếp theo, bạn sẽ được yêu cầu nhập password . trace.token.property.password
cùng một password mà bạn đã sử dụng cho thuộc tính trace.token.property.password
.
Sau khi lệnh hoàn tất, bạn có thể khởi động Accumulo.
~/Installs/accumulo-1.6.1/bin/start-all.sh
Bạn có thể thấy một vài cảnh báo đề xuất giá trị cao hơn cho các thông số hệ thống nhất định. Vì ta đang tạo một version rất nhỏ trong hướng dẫn này, bạn có thể bỏ qua những cảnh báo đó.
Sau khi khởi động xong, bạn có thể sử dụng trình duyệt để truy cập giao diện web của Accumulo tại http://<your-server-ip>:50095
.
Kết luận
Trong hướng dẫn này, bạn đã học cách cài đặt Apache Accumulo và tất cả các thành phần phụ thuộc vào Apache. Ta đã tạo một cài đặt rất đơn giản ngày hôm nay bằng cách sử dụng HDFS ở chế độ giả phân phối có thể chạy trên một server nhỏ. Để có hiệu suất tối ưu trong kịch bản production , HDFS nên chạy ở chế độ phân phối đầy đủ.
Trong các kịch bản production , các quy trình này cũng được khuyến khích triển khai trên các server có ít nhất 8GB RAM và 4 lõi xử lý trở lên để mỗi quy trình có thể sử dụng trên 2GB bộ nhớ và một lõi riêng biệt. Ngoài ra, bạn có thể triển khai các thành phần riêng biệt trên các server khác nhau.
Để biết thêm thông tin, hãy tham khảo hướng dẫn sử dụng của Apache Accumulo.
Các tin liên quan
Cách cung cấp các ứng dụng Django với Apache và mod_wsgi trên CentOS 72015-03-19
Cách cung cấp các ứng dụng Django với Apache và mod_wsgi trên Ubuntu 14.04
2015-03-18
Cách cấu hình Apache bằng Ansible trên Ubuntu 14.04
2015-02-18
Apache vs Nginx: Cân nhắc thực tế
2015-01-28
Cách cài đặt một Apache, MySQL và PHP (FAMP) trên FreeBSD 10.1
2015-01-14
Cách cài đặt WordPress với Apache trên FreeBSD 10.1
2015-01-14
Cách triển khai ứng dụng Rails với Passenger và Apache trên Ubuntu 14.04
2014-11-21
Cách sử dụng JRuby để chạy ứng dụng Rails trên Apache Tomcat 7 và Ubuntu 14.04
2014-11-14
Cách cấu hình quyền truy cập WebDAV với Apache trên Ubuntu 14.04
2014-09-22
Cách cài đặt và bảo mật phpMyAdmin với Apache trên server CentOS 7
2014-08-07