7

Elaticsearch là gì?

Elaticsearch có khả năng mở rộng cao, công cụ tìm kiếm và phân tích toàn văn bản nguồn mở được phân phối rộng rãi. Bạn có thể, trong rất gần tìm kiếm thời gian thực, lưu trữ và lập chỉ mục khối lượng dữ liệu lớn. Nó sử dụng nội bộ  Apache Lucene để lập chỉ mục và lưu trữ dữ liệu. Dưới đây là vài trường hợp sử dụng cho nó.

  • Tìm kiếm sản phẩm cho các trang web thương mại điện tử.
  • Thu thập nhật ký ứng dụng và dữ liệu giao dịch để phân tích nó theo xu hướng và sự bất thường.
  • Lập chỉ mục số liệu (sức khỏe, số liệu thống kê) và thực hiện phân tích, tạo cảnh báo cho sức khỏe cá thể theo định kỳ.
  • Đối với các ứng dụng phân tích / kinh doanh thông minh.

Khái niệm cơ bản của Elaticsearch

Chúng tôi sẽ sử dụng một vài thuật ngữ trong khi nói về Elaticsearch. Chúng ta hãy nhìn vào các khối xây dựng cơ bản của Elaticsearch.

Gần thời gian thực

Elaticsearch gần thời gian thực. Điều này mô tả thời gian (độ trễ) giữa việc lập chỉ mục của tài liệu và tính sẵn sàng của nó để tìm kiếm.

Cụm

Nó là một tập hợp của một hoặc nhiều nút (máy chủ) cùng nhau giữ tất cả dữ liệu và cung cấp cho bạn khả năng lập chỉ mục và tìm kiếm cụm dữ liệu đó.

Nút

Nó là một máy chủ duy nhất là một phần của cụm của bạn. Nó có thể lưu trữ dữ liệu, tham gia lập chỉ mục và tìm kiếm và quản lý cụm tổng thể. Một nút có thể có bốn hương vị khác nhau, tức là các nút chính, HTTP, dữ liệu, các nút phối hợp / máy khách.

Mục lục

Một chỉ mục là một tập hợp các loại / đặc điểm tương tự của tài liệu. Nó được xác định theo tên (tất cả chữ thường) và được gọi bằng tên để thực hiện lập chỉ mục, tìm kiếm và cập nhật và xóa các hoạt động đối với các tài liệu.

Tài liệu

Nó là một đơn vị thông tin có thể được lập chỉ mục.

Mảnh vỡ và bản sao

Một chỉ mục duy nhất có thể lưu trữ hàng tỷ tài liệu có thể dẫn đến việc lưu trữ chiếm TB không gian. Một máy chủ có thể vượt quá giới hạn của nó để lưu trữ một lượng lớn thông tin hoặc thực hiện thao tác tìm kiếm trên dữ liệu đó. Để giải quyết vấn đề này, Elaticsearch chia nhỏ chỉ mục của bạn thành nhiều đơn vị gọi là phân đoạn.

Sao chép là quan trọng chủ yếu để có tính sẵn sàng cao trong trường hợp lỗi nút / phân đoạn và cho phép bạn mở rộng quy mô tìm kiếm của mình. Theo mặc định, Elaticsearch có 5 phân đoạn và 1 bản sao, có thể được định cấu hình tại thời điểm tạo chỉ mục.

Cài đặt Elaticsearch

Elaticsearch yêu cầu Java để chạy. Khi viết bài viết này, Elaticsearch 6.2.X + yêu cầu ít nhất Java 8.

Cài đặt Java 8

#Installing Open JDK
sudo apt-get install openjdk-8-jdk

#Installing Oracle JDK
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer

Cài đặt Elaticsearch với tệp tar

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

tar -xvf elasticsearch-6.2.4.tar.gz

Cài đặt Elaticsearch với trình quản lý gói

#import the Elasticsearch public GPG key into apt:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

#Create the Elasticsearch source list
echo "deb http://packages.elastic.co/elasticsearch/6.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-6.x.list

sudo apt-get update

sudo apt-get -y install elasticsearch

Cấu hình một cụm Elaticsearch

Vị trí tệp cấu hình nếu bạn đã tải xuống tệp tar:

vi /[YOUR_TAR_LOCATION]/config/elasticsearch.yml

Vị trí tệp cấu hình nếu bạn đã sử dụng trình quản lý gói để cài đặt Elaticsearch:

vi /etc/elasticsearch/elasticsearch.yml

Tên cụm

Sử dụng một số tên mô tả cho cụm. Các nút Elaticsearch sẽ sử dụng tên này để hình thành và tham gia một cụm.

cluster.name: lineofcode-prod

Tên nút

Để xác định duy nhất một nút trong cụm:

node.name: ${HOSTNAME}

Thuộc tính tùy chỉnh cho một nút

Thêm giá vào một nút để nhóm hợp lý các nút được đặt trên cùng một trung tâm dữ liệu / máy vật lý:

node.attr.rack: us-east-1

Máy chủ mạng

Một nút sẽ liên kết với tên máy chủ hoặc địa chỉ IP này và quảng cáo máy chủ này đến các nút khác trong cụm.

network.host: [_VPN_HOST_, _local_]

Elaticsearch không đi kèm với xác thực và ủy quyền. Vì vậy, đề nghị không bao giờ ràng buộc một thuộc tính máy chủ mạng với địa chỉ IP công cộng.

Cài đặt tìm cụm

Để tìm và tham gia một cụm, bạn cần biết ít nhất một vài địa chỉ IP hoặc tên máy chủ khác. Điều này có thể dễ dàng được thiết lập bởi  discovery.zen.ping.unicast.hoststài sản.

Thay đổi cổng HTTP

Bạn có thể định cấu hình số cổng mà Elaticsearch có thể truy cập qua HTTP bằng thuộc http.porttính.

Định cấu hình tùy chọn JVM (Tùy chọn cho cục bộ / Kiểm tra)

Bạn cần điều chỉnh các tùy chọn JVM theo cấu hình phần cứng của bạn. Bạn nên phân bổ một nửa bộ nhớ trong tổng số bộ nhớ khả dụng của máy chủ cho Elaticsearch và phần còn lại sẽ được xử lý bởi các luồng của Lucene và Elaticsearch.

#For example if your server have eight GB of RAM then set following property as
-Xms4g
-Xmx4g

Ngoài ra, để tránh các lần truy cập hiệu năng, hãy để Elaticsearch chặn bộ nhớ với thuộc bootstrap.memory_lock: truetính.

Elaticsearch sử dụng đánh dấu đồng thời và quét GC và bạn có thể thay đổi nó thành G1GC với các cấu hình sau.

-XX:-UseParNewGC
-XX:-UseConcMarkSweepGC
-XX:+UseCondCardMark
-XX:MaxGCPauseMillis=200
-XX:+UseG1GC
-XX:GCPauseIntervalMillis=1000
-XX:InitiatingHeapOccupancyPercent=35

Bắt đầu nghiên cứu

sudo service elasticsearch restart

Tada! Elaticsearch là lên và chạy trên máy cục bộ của bạn.

Để có một thiết lập cấp sản xuất, tôi khuyên bạn nên truy cập các bài viết sau.

Hướng dẫn kỹ thuật số để thiết lập sản xuất Elaticsearch

Elaticsearch - Fred Suy nghĩ

|