Hướng dẫn cài đặt HBase trên Ubuntu: Hướng dẫn từng bước một

⚡ Tóm tắt thông minh

Cài đặt HBase trên Ubuntu Chương trình hoạt động ở ba chế độ — độc lập, giả lập phân tán và phân tán hoàn toàn — bao gồm cách tải xuống tệp nén bản phát hành, chỉnh sửa hbase-env.sh và hbase-site.xml, khởi động các tiến trình nền và khắc phục các lỗi khởi động thường gặp.

  • 🧩 Chế độ cài đặt: Chế độ độc lập chạy trong một JVM trên hệ thống tệp cục bộ; các chế độ phân tán lưu trữ dữ liệu trong Hadoop HDFS.
  • ⬇️ Tải về: Tải xuống tệp nén nhị phân HBase từ trang web Apache HBase và giải nén nó vào thư mục chính của bạn.
  • ⚙️ Cấu hình: Thiết lập biến môi trường JAVA_HOME và HBASE_HOME, sau đó định nghĩa hbase.rootdir và các thư mục ZooKeeper trong tệp hbase-site.xml.
  • ▶ ️ Khởi nghiệp: Chạy lệnh start-hbase.sh, xác nhận HMaster bằng lệnh jps, sau đó mở cửa sổ dòng lệnh tương tác bằng hbase shell.
  • 🌐 Phân phối giả: Trỏ hbase.rootdir trỏ đến HDFS, bật hbase.cluster.distributed và thiết lập số lượng máy chủ tối thiểu cần thiết (quorum) và cổng máy khách của ZooKeeper.
  • 🩹 Xử lý Sự cố: Khắc phục các lỗi liên quan đến region-server, ZooKeeper quorum, root-directory và session-timeout bằng cách chỉnh sửa tệp hosts và hbase-site.xml.

Hướng dẫn cài đặt Apache HBase trên Ubuntu ở các chế độ độc lập, bán phân tán và phân tán hoàn toàn.

Apache HBase là một hệ thống phân tán, cơ sở dữ liệu hướng cột Nó chạy trên nền tảng Hệ thống Tệp Phân tán Hadoop (HDFS). Trước khi bắt đầu, hãy đảm bảo rằng hệ thống của bạn được hỗ trợ. Java Môi trường chạy đã được cài đặt và biến môi trường JAVA_HOME đã được thiết lập; các chế độ giả phân tán và phân tán hoàn toàn cũng yêu cầu một môi trường hoạt động. Hadoop cài đặt.

Các chế độ cài đặt Apache HBase

Apache HBase có thể được cài đặt ở ba chế độ. Các tính năng của các chế độ này được đề cập dưới đây.

1) Cài đặt chế độ độc lập (Không phụ thuộc vào hệ thống Hadoop)

  • Đây là chế độ mặc định của HBase.
  • Nó hoạt động trên hệ thống tệp cục bộ.
  • Nó không sử dụng Hadoop HDFS.
  • Chỉ có tiến trình nền HMaster mới có thể chạy.
  • Không khuyến nghị sử dụng trong môi trường sản xuất.
  • Chạy trên một JVM duy nhất.

2) Cài đặt chế độ giả phân phối (Hệ thống Hadoop nút đơn + cài đặt HBase)

  • Nó chạy trên Hadoop HDFS.
  • Tất cả các tiến trình nền đều chạy trên một nút duy nhất.
  • Được khuyến nghị sử dụng trong môi trường sản xuất.

3) Cài đặt ở chế độ phân tán hoàn toàn (Môi trường Hadoop đa nút + cài đặt HBase)

  • Nó chạy trên Hadoop HDFS.
  • Tất cả các tiến trình nền đều chạy trên tất cả các nút có trong cụm.
  • Rất phù hợp cho môi trường sản xuất.

Để cài đặt Hadoop, hãy tham khảo tài liệu này. Hướng dẫn cài đặt Hadoop.

Các ảnh chụp màn hình bên dưới sử dụng HBase 1.1.2. Các phiên bản ổn định hiện tại là dòng HBase 2.5.x và 2.6.x (Java (phiên bản 8 hoặc 11), nhưng các bước cài đặt và tệp cấu hình về cơ bản vẫn giống nhau.

Cách tải xuống tệp tar HBase phiên bản ổn định

Bước 1) Vào Trang tải xuống chính thức của Apache HBase Để tải xuống HBase, trang web tải xuống sẽ được mở ra như hình bên dưới.

Mở trang tải xuống Apache HBase trong trình duyệt để tải xuống tệp nén tarball của bản phát hành.

Bước 2) Chọn phiên bản ổn định như hình bên dưới, phiên bản HBase 1.1.2.

Chọn phiên bản HBase 1.1.2 ổn định trên trang tải xuống.

Bước 3) Nhấp vào hbase-1.1.2-bin.tar.gz. Tệp tar sẽ được tải xuống. Sao chép tệp tar vào vị trí cài đặt.

Nhấp vào liên kết nhị phân hbase-1.1.2-bin.tar.gz để tải xuống tệp tar.

Cách cài đặt HBase trong Ubuntu với chế độ độc lập

Dưới đây là quy trình từng bước cài đặt HBase ở chế độ độc lập. Ubuntu:

Bước 1) Thực hiện lệnh sau. Đặt tệp hbase-1.1.2-bin.tar.gz vào thư mục /home/hduser.

Bước 2) Giải nén bằng cách thực hiện lệnh `$tar -xvf hbase-1.1.2-bin.tar.gz`. Lệnh này sẽ giải nén nội dung và tạo ra thư mục hbase-1.1.2 trong thư mục `/home/hduser`.

Bước 3) Mở hbase-env.sh như bên dưới và chỉ định đường dẫn JAVA_HOME trong phần location, như hình minh họa bên dưới.

Chỉnh sửa tệp hbase-env.sh để thiết lập đường dẫn JAVA_HOME cho chế độ độc lập.

Bước 4) Mở tệp ~/.bashrc và nhập đường dẫn HBASE_HOME như hình bên dưới.

export HBASE_HOME=/home/hduser/hbase-1.1.1
export PATH= $PATH:$HBASE_HOME/bin

Tệp ~/.bashrc đã được cập nhật với mục HBASE_HOME được hiển thị bên dưới.

Thêm đường dẫn HBASE_HOME vào tệp bashrc để sử dụng ở chế độ độc lập.

Bước 5) Thêm thuộc tính vào tệp. Mở tệp hbase-site.xml và thêm các thuộc tính sau vào bên trong tệp.

hduser@ubuntu$ gedit hbase-site.xml (mã như bên dưới)

<property>

<name>hbase.rootdir</name>

<value>file:///home/hduser/HBASE/hbase</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/HBASE/zookeeper</value>

</property>

Tệp hbase-site.xml được mở trong gedit được hiển thị dưới đây.

Tệp hbase-site.xml được mở trong gedit với thư mục gốc độc lập và các thuộc tính ZooKeeper.

Ở đây chúng ta đang đặt hai thuộc tính:

  • Một thư mục dành cho thư mục gốc của HBase, và
  • Cái thứ hai dành cho thư mục dữ liệu tương ứng với Vườn bách thú.

Tất cả các hoạt động của HMaster và ZooKeeper đều trỏ đến tệp hbase-site.xml này.

Bước 6) Liệt kê các địa chỉ IP. Mở tệp hosts nằm trong thư mục /etc. và liệt kê các địa chỉ IP như hình bên dưới.

Chỉnh sửa tệp /etc/hosts để ánh xạ địa chỉ IP của máy.

Bước 7) Bây giờ hãy chạy start-hbase.sh trong thư mục hbase-1.1.1/bin như hình bên dưới. Sau đó, bạn có thể kiểm tra bằng lệnh jps để xem HMaster có đang chạy hay không.

Kết quả đầu ra của lệnh jps cho thấy tiến trình HMaster đang chạy ở chế độ độc lập.

Bước 8) Khởi động HBase Shell. Có thể khởi động HBase Shell bằng cách sử dụng lệnh sau: vỏ cơ sở Nhập lệnh này, và nó sẽ chuyển sang chế độ shell tương tác như hình ảnh bên dưới. Sau khi vào chế độ shell, chúng ta có thể thực hiện tất cả các loại lệnh.

Khởi động giao diện dòng lệnh tương tác HBase bằng lệnh hbase shell.

Chế độ độc lập không yêu cầu khởi động daemon Hadoop. HBase có thể chạy độc lập.

Chế độ cài đặt phân tán giả HBase

Đây là một phương pháp khác để cài đặt Apache HBase, được gọi là chế độ cài đặt giả lập phân tán. Dưới đây là các bước để cài đặt HBase thông qua chế độ giả lập phân tán.

Bước 1) Đặt tệp hbase-1.1.2-bin.tar.gz vào thư mục /home/hduser.

Bước 2) Giải nén bằng cách thực hiện lệnh `$tar -xvf hbase-1.1.2-bin.tar.gz`. Lệnh này sẽ giải nén nội dung và tạo ra thư mục hbase-1.1.2 trong thư mục `/home/hduser`.

Bước 3) Mở hbase-env.sh như bên dưới, chỉ định đường dẫn JAVA_HOME và đường dẫn của Region Servers trong phần location, rồi xuất lệnh như hình bên dưới.

Chỉnh sửa hbase-env.sh với biến môi trường JAVA_HOME và đường dẫn máy chủ vùng (Region Servers) cho chế độ giả phân tán.

Bước 4) Ở bước này, chúng ta sẽ mở tệp ~/.bashrc và chỉ định đường dẫn HBASE_HOME như trong ảnh chụp màn hình bên dưới.

Thiết lập đường dẫn HBASE_HOME trong tệp bashrc cho chế độ giả phân tán.

Bước 5) Mở tệp hbase-site.xml và thêm các thuộc tính sau vào tệp (mã như bên dưới).

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>localhost</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/hbase/zookeeper</value>

</property>

Tệp hbase-site.xml với các thuộc tính giả phân tán được hiển thị bên dưới.

Tệp hbase-site.xml với các thuộc tính HDFS và ZooKeeper giả lập phân tán.

Cấu hình ZooKeeper còn lại được hiển thị bên dưới.

Tiếp tục cấu hình ZooKeeper trong hbase-site.xml cho chế độ giả phân tán.

Mỗi thuộc tính trong tệp đều đóng một vai trò cụ thể:

  • Thiết lập thư mục gốc của HBase trong thuộc tính hbase.rootdir.
  • Đối với thiết lập phân tán, hbase.cluster.distributed phải được đặt thành true.
  • Thuộc tính quorum của ZooKeeper cần được thiết lập ở đây.
  • Việc thiết lập sao chép được thực hiện trong thuộc tính dfs.replication. Theo mặc định, chúng tôi đặt giá trị sao chép là 1. Ở chế độ phân tán hoàn toàn, có nhiều nút dữ liệu, vì vậy bạn có thể tăng số lần sao chép bằng cách đặt giá trị lớn hơn 1 trong thuộc tính dfs.replication.
  • Cổng của máy khách cần được đề cập trong thuộc tính hbase.zookeeper.property.clientPort.
  • Thư mục dữ liệu của ZooKeeper có thể được chỉ định trong thuộc tính hbase.zookeeper.property.dataDir.

Bước 6) Khởi động các tiến trình nền Hadoop trước, sau đó khởi động các tiến trình nền HBase như hình bên dưới. Đầu tiên, bạn phải khởi động các tiến trình nền Hadoop bằng lệnh ./start-all.sh như hình bên dưới.

Chạy lệnh start-all.sh để khởi động các tiến trình nền của Hadoop.

Sau đó, khởi động các tiến trình nền HBase bằng lệnh hbase-start.sh, như hình bên dưới.

Khởi động các tiến trình nền HBase bằng tập lệnh start-hbase.sh ở chế độ giả phân tán.

Bây giờ hãy kiểm tra các tiến trình đang chạy bằng lệnh jps, như hình bên dưới.

Kết quả đầu ra của lệnh jps liệt kê các tiến trình nền Hadoop và HBase đang chạy.

Cài đặt chế độ phân phối hoàn toàn HBase

Chế độ phân tán hoàn toàn mở rộng thiết lập giả phân tán trên một cụm máy tính thực sự.

  • Cấu hình này hoạt động ở chế độ cụm Hadoop, nơi nhiều nút được tạo ra trên toàn cụm và đang hoạt động.
  • Quá trình cài đặt tương tự như chế độ phân tán giả lập; điểm khác biệt duy nhất là nó sẽ được triển khai trên nhiều nút.
  • Các tệp cấu hình được đề cập trong hbase-site.xml và hbase-env.sh giống như được đề cập trong chế độ giả lập.

Ở chế độ phân tán hoàn toàn, hãy đảm bảo phiên bản Hadoop trên cụm của bạn khớp với các thư viện Hadoop được tích hợp sẵn trong HBase để các tiến trình nền có thể giao tiếp chính xác.

Khắc phục sự cố cài đặt HBase

1) Vấn đề cần giải quyết: Máy chủ chính khởi tạo thành công nhưng các máy chủ vùng không khởi tạo.

Việc liên lạc giữa máy chủ chính (Master) và các máy chủ khu vực (region servers) diễn ra thông qua địa chỉ IP của chúng. Máy chủ chính lắng nghe các máy chủ khu vực đang hoạt động hoặc có địa chỉ IP 127.0.0.1. Địa chỉ IP 127.0.0.1 là địa chỉ máy chủ cục bộ và được phân giải thành địa chỉ máy chủ cục bộ của chính máy chủ chính.

Nguyên nhân:

Trong quá trình giao tiếp hai chiều giữa các máy chủ vùng và máy chủ chính, máy chủ vùng liên tục thông báo cho máy chủ chính rằng địa chỉ IP của nó là 127.0.0.1.

Giải pháp:

  • Xóa tên máy chủ Master khỏi mục máy chủ cục bộ có trong tệp hosts.
  • Vị trí tệp máy chủ: /etc/hosts.

Những gì cần thay đổi:

Mở tệp /etc/hosts và truy cập vào đường dẫn này.

127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost
: : 1              localhost3.localdomain3 localdomain3

Hãy sửa đổi cấu hình ở trên như bên dưới (xóa tên máy chủ khu vực như đã được đánh dấu ở trên).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Vấn đề cần giải quyết: Không tìm thấy địa chỉ của tôi: XYZ trong danh sách các máy chủ đồng thuận của ZooKeeper.

Nguyên nhân:

  • Máy chủ ZooKeeper không thể khởi động và báo lỗi, ví dụ như tên máy chủ có đuôi .xyz.
  • HBase cố gắng khởi động máy chủ ZooKeeper trên một máy, nhưng đồng thời máy đó không thể tự tìm thấy mình trong cấu hình quorum có trong tệp cấu hình hbase.zookeeper.quorum.

Giải pháp:

  • Hãy thay thế tên máy chủ bằng tên máy chủ được hiển thị trong thông báo lỗi.
  • Nếu bạn có máy chủ DNS, bạn có thể thiết lập các cấu hình sau trong hbase-site.xml: hbase.zookeeper.dns.interface và hbase.zookeeper.dns.nameserver.

3) Bài toán đặt ra: Tạo thư mục gốc cho HBase thông qua Hadoop DFS.

  • Chuyên gia hướng dẫn nói rằng bạn cần chạy tập lệnh di chuyển HBase.
  • Khi chạy lệnh đó, tập lệnh di chuyển HBase trả lời rằng không có tệp nào trong thư mục gốc.

Nguyên nhân:

  • Một thư mục mới đã được tạo cho HBase bằng cách sử dụng Hệ thống Tệp Phân tán Hadoop.
  • Ở đây, HBase dự đoán có hai khả năng:

1) Thư mục gốc không tồn tại.

2) Một phiên bản HBase đang chạy trước đó đã được khởi tạo.

Giải pháp:

  • Hãy xác nhận rằng thư mục gốc của HBase hiện không tồn tại hoặc đã được khởi tạo bởi một lần chạy trước đó của phiên bản HBase.
  • Để thực hiện giải pháp này, hãy làm theo các bước sau.

Bước 1) Sử dụng Hadoop dfs để xóa thư mục gốc HBase.

Bước 2) HBase tự động tạo và khởi tạo thư mục.

4) Vấn đề cần giải quyết: Sự kiện hết hạn phiên ZooKeeper

Nguyên nhân:

  • Máy chủ HMaster hoặc HRegion tắt bằng cách ném ra các ngoại lệ.
  • Nếu bạn xem nhật ký hệ thống, bạn có thể tìm ra các ngoại lệ thực tế đã xảy ra.

Hình ảnh sau đây hiển thị ngoại lệ được ném ra do sự kiện hết hạn của ZooKeeper. Các sự kiện được đánh dấu là một số ngoại lệ đã xảy ra trong tệp nhật ký.

Mã nhật ký được hiển thị bên dưới:

WARN org.apache.zookeeper.ClientCnxn: Exception
closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec

java.io.IOException: TIMED OUT	
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906)
WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000
INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT
INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT]
INFO org.apache.zookeeper.ClientCnxn: Server connection successful
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e

java.io.IOException: Session Expired	 
at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589)
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945)
ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired

Giải pháp:

  • Dung lượng RAM mặc định là 1 GB. Đối với các tác vụ nhập dữ liệu kéo dài, hãy duy trì dung lượng RAM lớn hơn 1 GB.
  • Tăng thời gian chờ phiên cho ZooKeeper.
  • Để tăng thời gian chờ phiên của ZooKeeper, hãy sửa đổi thuộc tính sau trong tệp hbase-site.xml, nằm trong thư mục hbase/conf.
  • Thời gian chờ mặc định của phiên là 60 giây. Bạn có thể thay đổi thành 120 giây như hướng dẫn bên dưới.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

Câu Hỏi Thường Gặp

HBase cần được hỗ trợ Java Môi trường chạy với biến môi trường JAVA_HOME được thiết lập. Chế độ giả phân tán và chế độ phân tán hoàn toàn cũng cần một môi trường chạy. Hadoop HDFS cụm. Chế độ độc lập chỉ cần Javavì nó sử dụng hệ thống tập tin cục bộ và tích hợp sẵn ZooKeeper riêng.

Chế độ độc lập thì không, chế độ này chạy trên hệ thống tệp cục bộ trong một JVM duy nhất mà không cần các tiến trình nền của Hadoop. Chế độ phân tán giả và phân tán hoàn toàn thì yêu cầu Hadoop, vì chúng lưu trữ dữ liệu trong HDFS và phụ thuộc vào NameNode và DataNode của nó.

Chỉnh sửa tệp conf/hbase-env.sh và thêm dòng `export JAVA_HOME=/path/to/your/jdk`, trỏ đến thư mục gốc của JDK. HBase sẽ đọc giá trị này khi khởi động. Bạn cũng có thể thêm `export JAVA_HOME` trong tệp `~/.bashrc` để shell tìm thấy nó. Java trên toàn cầu.

Hướng dẫn này trình bày về HBase 1.1.2, nhưng các phiên bản ổn định hiện tại thuộc dòng HBase 2.5.x và 2.6.x, còn phiên bản 3.0 đang trong giai đoạn beta. Các phiên bản mới hơn cần... Java 8 hoặc 11. Các bước tải xuống, cấu hình và khởi động về cơ bản vẫn giống nhau.

Chạy lệnh jps và tìm kiếm tiến trình HMaster, cùng với HRegionServer và HQuorumPeer ở chế độ phân tán. Bạn cũng có thể mở giao diện web của HBase Master hoặc chạy lệnh status bên trong. vỏ cơ sở Để xác nhận cụm máy chủ đang hoạt động.

Theo mặc định, HBase Master lắng nghe trên cổng 16000 với giao diện web trên cổng 16010, và mỗi Region Server sử dụng cổng 16020 với giao diện người dùng trên cổng 16030. ZooKeeper lắng nghe trên cổng máy khách 2181, được thiết lập thông qua hbase.zookeeper.property.clientPort.

Các trợ lý AI và công cụ phân tích nhật ký dựa trên máy học sẽ quét nhật ký HBase và ZooKeeper, nhóm chúng lại và tìm ra nguyên nhân gốc rễ của các lỗi như phiên hết hạn hoặc lỗi đồng thuận. Chúng đề xuất các bản vá lỗi cấu hình, tuy nhiên kỹ sư cần xác nhận từng thay đổi trước khi áp dụng.

Vâng. Trợ lý GitHub Soạn thảo các đoạn mã hbase-site.xml, các mục nhập hbase-env.sh và các tập lệnh shell khởi động từ một bình luận ngắn. RevHãy xem các đề xuất về tên thuộc tính, đường dẫn và cổng chính xác trước khi chạy chúng, vì cấu hình được tạo ra có thể tham chiếu đến các giá trị mặc định đã lỗi thời.

Tóm tắt bài viết này với: