Thứ tư, 12/08/2015 | 00:00 GMT+7

Cách cài đặt Apache Kafka trên Ubuntu 14.04

Apache Kafka là một nhà message broker phân tán phổ biến được thiết kế để xử lý dung lượng lớn dữ liệu thời gian thực một cách hiệu quả. Một cụm Kafka không chỉ có khả năng mở rộng cao và chịu được lỗi, mà nó còn có thông lượng cao hơn nhiều so với các nhà message broker khác như ActiveMQ và RabbitMQ. Mặc dù nó thường được sử dụng như một hệ thống nhắn tin pub / sub, nhưng nhiều tổ chức cũng sử dụng nó để tổng hợp log vì nó cung cấp khả năng lưu trữ liên tục cho các tin nhắn đã xuất bản.

Trong hướng dẫn này, bạn sẽ học cách cài đặt và sử dụng Apache Kafka 0.8.2.1 trên Ubuntu 14.04.

Yêu cầu

Để làm theo, bạn cần :

Bước 1 - Tạo user cho Kafka

Vì Kafka có thể xử lý các truy cập qua mạng, bạn nên tạo một user riêng cho nó. Điều này giảm thiểu thiệt hại cho máy Ubuntu của bạn nếu server Kafka được bao gồm.

Lưu ý: Sau khi cài đặt Apache Kafka, bạn nên tạo một user không phải root khác để thực hiện các việc khác trên server này.

Với quyền là user root , hãy tạo user có tên là kafka bằng lệnh useradd :

  • useradd kafka -m

Đặt password của nó bằng passwd :

  • passwd kafka

Thêm nó vào group sudo để nó có các quyền cần thiết để cài đặt các phụ thuộc của Kafka. Điều này có thể được thực hiện bằng cách sử dụng lệnh adduser :

  • adduser kafka sudo

User Kafka của bạn hiện đã sẵn sàng. Đăng nhập vào nó bằng su :

  • su - kafka

Bước 2 - Cài đặt Java

Trước khi cài đặt các gói bổ sung, hãy cập nhật danh sách các gói có sẵn để bạn đang cài đặt các version mới nhất có sẵn trong repository :

  • sudo apt-get update

Vì Apache Kafka cần môi trường thời gian chạy Java, hãy sử dụng apt-get để cài đặt gói default-jre :

  • sudo apt-get install default-jre

Bước 3 - Cài đặt ZooKeeper

Apache ZooKeeper là một dịch vụ open-souce được xây dựng để điều phối và đồng bộ hóa thông tin cấu hình của các node thuộc hệ thống phân tán. Một cụm Kafka phụ thuộc vào ZooKeeper để thực hiện — trong số những thứ khác — các hoạt động như phát hiện các node bị lỗi và bầu các nhà lãnh đạo.

Vì gói ZooKeeper có sẵn trong repository lưu trữ mặc định của Ubuntu, hãy cài đặt nó bằng apt-get .

  • sudo apt-get install zookeeperd

Sau khi cài đặt hoàn tất, ZooKeeper sẽ tự động được khởi động dưới dạng daemon. Theo mặc định, nó sẽ nghe trên cổng 2181 .

Để đảm bảo nó đang hoạt động, hãy kết nối với nó qua Telnet:

  • telnet localhost 2181

Tại dấu nhắc Telnet, nhập ruok và nhấn ENTER .

Nếu mọi thứ đều ổn, ZooKeeper sẽ nói imok và kết thúc phiên Telnet.

Bước 4 - Download và extract Kafka Binaries

Bây giờ Java và ZooKeeper đã được cài đặt, đã đến lúc download và extract Kafka.

Để bắt đầu, hãy tạo một folder có tên là Downloads để lưu trữ tất cả các file download của bạn.

  • mkdir -p ~/Downloads

Sử dụng wget để download các file binary Kafka.

  • wget "http://mirror.cc.columbia.edu/pub/software/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz" -O ~/Downloads/kafka.tgz

Tạo một folder có tên kafka và thay đổi thành folder này. Đây sẽ là folder cơ sở của cài đặt Kafka.

  • mkdir -p ~/kafka && cd ~/kafka

Extract file lưu trữ bạn đã download bằng lệnh tar .

  • tar -xvzf ~/Downloads/kafka.tgz --strip 1

Bước 5 - Cấu hình Server Kafka

Bước tiếp theo là cấu hình server Kakfa.

Mở server.properties bằng vi :

  • vi ~/kafka/config/server.properties

Theo mặc định, Kafka không cho phép bạn xóa các chủ đề. Để có thể xóa các chủ đề, hãy thêm dòng sau vào cuối file :

~ / kafka / config / server.properties
delete.topic.enable = true 

Lưu file và thoát khỏi vi .

Bước 6 - Khởi động server Kafka

Chạy tập lệnh kafka-server-start.sh bằng cách sử dụng nohup để khởi động server Kafka ( còn gọi là nhà broker Kafka) như một quy trình độc lập với phiên shell của bạn.

  • nohup ~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties > ~/kafka/kafka.log 2>&1 &

Chờ một vài giây để nó bắt đầu. Bạn có thể chắc chắn rằng server đã khởi động thành công khi bạn thấy các thông báo sau trong ~/kafka/kafka.log :

trích từ ~ / kafka / kafka.log
 ...  [2015-07-29 06:02:41,736] INFO New leader is 0 (kafka.server.ZookeeperLeaderElector$LeaderChangeListener) [2015-07-29 06:02:41,776] INFO [Kafka Server 0], started (kafka.server.KafkaServer) 

Đến đây bạn có một server Kafka đang nghe trên cổng 9092 .

Bước 7 - Kiểm tra cài đặt

Bây giờ ta hãy xuất bản và gửi thông báo “Hello World” đảm bảo rằng server Kafka đang hoạt động chính xác.

Để xuất bản tin nhắn, bạn nên tạo trình production Kafka. Bạn có thể dễ dàng tạo một từ dòng lệnh bằng cách sử dụng tập lệnh kafka-console-producer.sh . Nó mong đợi tên server và cổng của server Kafka, cùng với tên chủ đề làm đối số của nó.

Xuất bản chuỗi “Hello, World” vào một chủ đề có tên là TutorialTopic bằng lệnh vào thông tin sau:

  • echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TutorialTopic > /dev/null

Vì chủ đề không tồn tại, Kafka sẽ tự động tạo nó.

Để sử dụng tin nhắn, bạn có thể tạo người tiêu dùng Kafka bằng cách sử dụng tập lệnh kafka-console-consumer.sh . Nó mong đợi tên server và cổng của server ZooKeeper, cùng với tên chủ đề làm đối số của nó.

Lệnh sau sử dụng các thông báo từ chủ đề mà ta đã xuất bản. Lưu ý việc sử dụng cờ --from-beginning cờ này hiện tại vì ta muốn sử dụng một thông báo đã được xuất bản trước khi người tiêu dùng bắt đầu.

  • ~/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic TutorialTopic --from-beginning

Nếu không có vấn đề về cấu hình, bạn sẽ thấy Hello, World trong kết quả ngay bây giờ.

Tập lệnh sẽ tiếp tục chạy, chờ thêm tin nhắn được xuất bản cho chủ đề. Hãy mở một terminal mới và bắt đầu nhà production xuất bản thêm một vài thông báo. Bạn có thể thấy tất cả chúng trong kết quả của người tiêu dùng ngay lập tức.

Khi bạn kiểm tra xong, hãy nhấn CTRL + C để dừng tập lệnh user .

Bước 8 - Cài đặt KafkaT (Tùy chọn)

KafkaT là một công cụ nhỏ tiện dụng từ Airbnb giúp bạn xem chi tiết về cụm Kafka của bạn dễ dàng hơn và cũng có thể thực hiện một số tác vụ quản trị từ dòng lệnh. Vì nó là một viên ngọc Ruby, bạn cần Ruby để sử dụng nó. Bạn cũng cần gói build-essential để có thể chế tạo các viên ngọc khác mà nó phụ thuộc vào. Cài đặt chúng bằng apt-get :

  • sudo apt-get install ruby ruby-dev build-essential

Đến đây bạn có thể cài đặt KafkaT bằng lệnh gem :

  • sudo gem install kafkat --source https://rubygems.org --no-ri --no-rdoc

Sử dụng vi để tạo file mới có tên .kafkatcfg .

  • vi ~/.kafkatcfg

Đây là file cấu hình mà KafkaT sử dụng để xác định cài đặt và đăng nhập các folder của server Kafka của bạn. Nó cũng sẽ trỏ KafkaT đến version ZooKeeper của bạn. Theo đó, hãy thêm các dòng sau vào đó:

~ / .kafkatcfg
{   "kafka_path": "~/kafka",   "log_path": "/tmp/kafka-logs",   "zk_path": "localhost:2181" } 

Đến đây bạn đã sẵn sàng để sử dụng KafkaT. Để bắt đầu, đây là cách bạn sẽ sử dụng nó để xem chi tiết về tất cả các phân vùng Kafka:

  • kafkat partitions

Bạn sẽ thấy kết quả sau:

kết quả của phân vùng kafkat
Topic           Partition   Leader      Replicas        ISRs     TutorialTopic   0             0           [0]           [0] 

Để tìm hiểu thêm về KafkaT, hãy tham khảo kho lưu trữ GitHub của nó.

Bước 9 - Cài đặt một cụm nhiều nút (Tùy chọn)

Nếu bạn muốn tạo một cụm đa broker bằng cách sử dụng nhiều máy Ubuntu 14.04 hơn, bạn nên lặp lại Bước 1, Bước 3, Bước 4 và Bước 5 trên mỗi máy mới. Ngoài ra, bạn nên áp dụng các thay đổi sau trong file server.properties trong mỗi thay đổi:

  • giá trị của thuộc tính broker.id phải được thay đổi sao cho nó là duy nhất trong toàn bộ cụm
  • giá trị của thuộc tính zookeeper.connect nên được thay đổi sao cho tất cả các node đều trỏ đến cùng một version ZooKeeper

Nếu bạn muốn có nhiều version ZooKeeper cho cụm của bạn , giá trị của thuộc tính zookeeper.connect trên mỗi nút phải là một chuỗi giống hệt nhau, được phân tách bằng dấu phẩy liệt kê địa chỉ IP và số cổng của tất cả các version ZooKeeper.

Bước 10 - Hạn chế user Kafka

Bây giờ tất cả cài đặt đã hoàn tất, bạn có thể xóa quyền administrator của user kafka . Trước khi bạn làm như vậy, hãy đăng xuất và đăng nhập lại với quyền là bất kỳ user sudo không phải root nào khác. Nếu bạn vẫn đang chạy cùng một phiên shell mà bạn đã bắt đầu hướng dẫn này, chỉ cần nhập exit .

Để xóa các quyền quản trị của user kafka , hãy xóa nó khỏi group sudo .

  • sudo deluser kafka sudo

Để cải thiện hơn nữa bảo mật cho server Kafka của bạn, hãy khóa password của user kafka bằng lệnh passwd . Điều này đảm bảo không ai có thể trực tiếp đăng nhập vào nó.

  • sudo passwd kafka -l

Đến đây, chỉ user root hoặc sudo mới có thể đăng nhập bằng kafka bằng lệnh lệnh sau:

  • sudo su - kafka

Trong tương lai, nếu bạn muốn mở khóa nó, sử dụng passwd với -u tùy chọn:

  • sudo passwd kafka -u

Kết luận

Đến đây bạn có Apache Kafka bảo mật đang chạy trên server Ubuntu của bạn . Bạn có thể dễ dàng sử dụng nó trong các dự án của bạn bằng cách tạo ra các nhà production và người tiêu dùng Kafka bằng các ứng dụng khách Kafka có sẵn cho hầu hết các ngôn ngữ lập trình. Để tìm hiểu thêm về Kafka, hãy xem qua tài liệu của nó.


Tags:

Các tin liên quan

Cách thiết lập xác thực mật khẩu với Apache trên Ubuntu 14.04
2015-08-10
Cách bảo vệ chống lại DoS và DDoS với mod_evasive cho Apache trên CentOS 7
2015-07-30
Cách cài đặt LAMP (Linux, Apache, MySQL, PHP) trên Fedora 22
2015-07-08
Cách thiết lập mod_rewrite cho Apache trên Ubuntu 14.04
2015-06-27
Cách cài đặt Apache Tomcat 8 trên CentOS 7
2015-06-19
Cách cài đặt Apache Tomcat 8 trên Ubuntu 14.04
2015-06-19
Cách tạo chứng chỉ SSL trên Apache cho Debian 8
2015-06-19
Cách cài đặt Apache Tomcat 7 trên CentOS 7 qua Yum
2015-06-15
Cách cấu hình Apache để sử dụng các trang lỗi tùy chỉnh trên Ubuntu 14.04
2015-06-09
Cách cấu hình Apache để sử dụng các trang lỗi tùy chỉnh trên CentOS 7
2015-06-09