Giảm 50% tất cả các gói, thời gian có hạn. Bắt đầu từ $2.48/mo
13 phút còn lại
Cơ sở dữ liệu & Phân tích

Cách Cài Đặt Hadoop trên Ubuntu: Hướng Dẫn Toàn Diện

Pius Bodenmann By Pius Bodenmann Đọc trong 13 phút Cập nhật 1 tháng 5, 2024
cách cài đặt hadoop trên ubuntu linux

Ngày nay, khi một doanh nghiệp hoặc bất kỳ hoạt động liên quan đến máy tính nào phát triển đến mức yêu cầu nhiều hơn một máy tính để xử lý, chúng tôi ngay lập tức bắt đầu sử dụng nhiều máy tính như một phần của một mạng duy nhất để xử lý khối lượng công việc hiệu quả hơn. Điều này đã trở thành phổ biến đến mức ngày nay hầu như tất cả các hoạt động trong các lĩnh vực như khoa học dữ liệu đều được thực hiện bởi các máy tính được kết nối mạng này. Mặc dù không có nghi ngờ rằng thực hiện các tác vụ máy tính khó khăn hiệu quả hơn theo cách này, nhưng nó cũng vô cùng phức tạp, vì bạn cần phải cấu hình riêng từng máy tính và sau đó quản lý toàn bộ mạng khi nó thực hiện các tác vụ của bạn. Đây là lúc các chương trình như Hadoop ra tay giúp cứu rỗi.

Hadoop là một bộ công cụ được phát hành bởi Apache cho phép kết nối một nhóm máy tính với nhau một cách hiệu quả và dễ dàng hơn. Trong bài viết này, tôi sẽ đánh giá Hadoop, xem xét các trường hợp sử dụng của nó, phân tích ưu điểm và nhược điểm, cũng như cung cấp tổng quan về kiến trúc nâng cao của nó, rồi chuyển sang hướng dẫn từng bước về cách cài đặt Hadoop trên Ubuntu 20.04 để hoàn thành hướng dẫn Hadoop 2024 này.

Apache Hadoop là gì?

Hadoop là bộ công cụ của Apache, đã biến đổi cách thiết lập và sử dụng mạng trong hơn 15 năm. Người dùng có thể tận dụng hiệu quả tài nguyên của Hadoop, cho phép họ sử dụng sức mạnh tính toán hiện có để thực hiện các tác vụ nặng mà không cần nâng cấp tốn kém. Bộ công cụ bao gồm bốn mô-đun: HDFS, YARN, MapReduce, và Hadoop Common, mỗi mô-đun được thiết kế cho các trường hợp sử dụng cụ thể.

Sức mạnh của Hadoop nằm ở khả năng sử dụng hiệu quả các nguồn lực, giúp cá nhân và tổ chức kết hợp khả năng tính toán hiện có thành một lực lượng thống nhất có khả năng giải quyết những thách thức tính toán lớn. Nếu không có Hadoop, những thực thể này sẽ buộc phải chi tiêu lớn để mua các máy tính mạnh hơn.

Các Trường Hợp Sử Dụng Hadoop

Bây giờ chúng ta đã biết Hadoop là gì. Nhưng các trường hợp sử dụng của nó áp dụng thực tế như thế nào? Hiểu biết về một chương trình trên giấy là tốt, nhưng nó sẽ không bao giờ thay thế được việc nhận ra tiềm năng của nó trong hoạt động thực tế. Vì vậy, ở đây tôi sẽ cung cấp một số ví dụ trước khi chuyển sang hướng dẫn Hadoop.

Phân Tích Rủi Ro

Như đã đề cập, Hadoop cho phép bạn khai thác sức mạnh của nhiều hệ thống máy tính như một phần của một đơn vị mạng duy nhất để xử lý hiệu quả các lô dữ liệu lớn và phân tích chúng nhanh hơn bình thường. Với bất kỳ doanh nghiệp nào, có những rủi ro cần được phân tích và tính toán. Hadoop rất hữu ích ở đây. Thực tế, nhiều bệnh viện uy tín sử dụng nó để phân tích rủi ro của các phương pháp điều trị khác nhau và dự đoán kết quả tiềm năng cũng như số liệu thống kê hoạt động của họ cho bệnh nhân. Bạn có thể tìm hiểu thêm về vai trò của Hadoop trong chăm sóc sức khỏe tại đây.

Phát Hiện Vi Phạm Bảo Mật

Khi lượng thiết bị mạng và các thiết bị được sử dụng trong mạng hoặc doanh nghiệp tăng lên, số lượng lỗ hổng bảo mật tiềm ẩn cũng tăng theo. Hadoop giúp bạn đánh giá toàn bộ hoạt động bằng cách phân tích lượng lớn dữ liệu và xác định các điểm yếu trong hệ thống.

Xem lại Ánh xạ

Nhiều doanh nghiệp dựa vào phản hồi của khách hàng để cải thiện sản phẩm hoặc phát triển chiến lược thị trường mới. Nếu con người phải xử lý một lượng lớn bình luận, điều này sẽ mất rất nhiều thời gian. Hadoop xử lý công việc này nhanh chóng hơn rất nhiều nhờ tính toán phân tán.

Phân tích thị trường

Khi nói đến chiến lược thị trường, việc phân tích bình luận khách hàng chỉ là một phần nhỏ so với khối lượng công việc cần thiết để đánh giá tiềm năng của một sản phẩm mới. Hadoop giúp các doanh nghiệp nhỏ vừa có thể đánh giá thị trường hiệu quả bằng cách sử dụng nhiều máy tính cùng lúc mà vẫn tiết kiệm thời gian và chi phí.

Kiểm Tra Tệp Nhật Ký

Khi doanh nghiệp phát triển, số lượng phần mềm mà họ sử dụng cũng tăng lên, dẫn đến nhiều lỗi và vấn đề hơn. Việc quản lý file log và xử lý các sự cố này thường yêu cầu một nhân viên chuyên trách và rất tốn thời gian. Với Hadoop, bạn có thể nhanh chóng xem xét và phân tích các file log để tìm ra và khắc phục các lỗi.

Hadoop có rất nhiều trường hợp sử dụng và ứng dụng khác, nhưng để giữ trọng tâm của bài viết, chúng tôi sẽ không đi sâu thêm vào các trường hợp đó.

Tổng Quan Kiến Trúc Hadoop

Giả sử bạn đã nghe nói về Hadoop, các trường hợp sử dụng của nó và những gì nó làm. Hoặc nếu chưa, bài viết này cũng đã giải thích cho bạn. Bây giờ bạn cần hiểu sâu hơn về cấu trúc của Hadoop và cách các thành phần hoạt động với nhau. Như đã đề cập, Hadoop có bốn lớp chính. Phần này của hướng dẫn sẽ giới thiệu HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce và Hadoop Common. Vì Hadoop Common không có nhiều tính năng cần giải thích, những điểm chính của nó được gọi là Zookeeper. Trong phần này, tôi sẽ cố gắng giải thích kiến trúc Hadoop phức tạp và hệ sinh thái của nó cũng như bốn thành phần chính bằng những thuật ngữ đơn giản, trước khi hướng dẫn cách cài đặt Hadoop trên Ubuntu 20.04.

HDFS

HDFS trong hệ sinh thái Hadoop là hệ thống lưu trữ mà tất cả các tiểu hệ thống và ứng dụng Hadoop sử dụng để đánh giá, truyền tải và lưu lại dữ liệu. Điểm chính của kiến trúc HDFS là, khác với Hadoop (một chương trình mã nguồn mở), HDFS là hệ thống file chịu trách nhiệm thực hiện tất cả các hoạt động cơ bản của một cụm Hadoop duy nhất. HDFS là một hệ thống file rất bền vững, chia dữ liệu thành các khối 128 MB và tối ưu hóa chúng cho các hoạt động tuần tự.

Vai trò chính của HDFS trong phần mềm Hadoop là cung cấp tất cả dữ liệu như một phần của một kho dữ liệu tổng thể, sau đó có thể được thao tác thông qua các namenode khác nhau và các rack thứ cấp thành các phần nhỏ để tổ chức hoạt động phân tích dữ liệu của bạn. Bạn có thể sử dụng các tùy chọn khác như Journal rack, QJM, HA, fsimage và các file edit log cũng như tổng thể log để theo dõi và thực hiện các tác vụ khác.

YARN

YARN là một thành phần quan trọng khác của Hadoop được sử dụng để phân bổ các tài nguyên máy tính cho các ứng dụng cụ thể trong hệ sinh thái Hadoop. Về cơ bản, nó cho phép bạn sử dụng trình quản lý tài nguyên để phân bổ các tài nguyên này thông qua một tập hợp các node khác nhau cho các tác vụ và ứng dụng khác nhau. YARN cũng có một bản ghi tương tự như trong HDFS, cho phép bạn theo dõi tất cả các tài nguyên được phân bổ và hoạt động. YARN được chia thành ba thành phần chính: Resource Manager, Application Master và Node Manager.

Ba thành phần này tạo ra một instance mới của chính chúng trên mỗi cụm, ứng dụng và node tương ứng. Không chỉ có thể phân bổ tài nguyên cho các tác vụ khác nhau bằng YARN, bạn còn có thể lên lịch cho các tài nguyên này thay đổi theo thời gian để tạo ra các quy trình thuật toán nâng cao. YARN không bị giới hạn trong thành phần con của nó. Sẽ có nhiều trường hợp mà bạn sử dụng YARN kết hợp với các lớp kiến trúc khác như HDFS và Zookeeper để phân bổ tài nguyên và đánh giá hoạt động tổng thể của bạn.

Hadoop MapReduce

Hadoop MapReduce là một thành phần chính khác trong hệ sinh thái Hadoop. Sau khi cài đặt Hadoop trên Ubuntu, bạn có thể sử dụng tính năng này để phân tích hiệu quả một lượng lớn dữ liệu theo cách phân tán bởi nhiều máy tính khác nhau. Về cơ bản, Hadoop MapReduce hoạt động như thế này: bạn nhập một bản đồ dữ liệu lớn vào chương trình. Bản đồ dữ liệu này sẽ được xáo trộn, chia nhỏ và phân phối trên các máy tính trong mạng của bạn. Sau đó, sử dụng các giao thức cụ thể được gọi là reducer, dữ liệu được rút gọn thành các thành phần thiết yếu nhất. Mỗi hoạt động này được gọi là một Job.

Giả sử bạn có một câu gồm ba từ mà bạn muốn phân tích bằng MapReduce. Hãy nói câu đó là Bear Hunt Rabbit. Hadoop MapReduce sẽ chia nhỏ và rút gọn câu này thành ba lô khác nhau, mỗi lô chứa một từ, sau đó sử dụng các từ này và tạo ra các kết hợp mới với dữ liệu đầu vào tương tự từ các job khác của bạn để tạo ra một lô dữ liệu cuối cùng được đồng nhất với dữ liệu không cần thiết được loại bỏ và có thể dễ dàng phân tích.

Zookeeper

Zookeeper là một thành phần khác của hệ sinh thái Hadoop, bắt đầu được sử dụng rộng rãi kể từ khi phát hành Hadoop phiên bản 2.0. Mục đích chính của Zookeeper là điều phối các hoạt động khác nhau mà bạn đang chạy như một phần của một instance Hadoop duy nhất. Do đó, Zookeeper hầu như luôn được sử dụng kết hợp với Resource Manager của YARN và các tính năng khác nhau của HDFS trong Hadoop. Vai trò chính của Zookeeper trong các hoạt động này là phát hiện và khắc phục các điểm có thể xảy ra lỗi. Để làm điều này, nó sử dụng hai công cụ khác nhau: ZKFailoverController và Zookeeper Quorum.

Trong các quy trình này, các data node được quản lý bởi các thành phần khác của kiến trúc Hadoop được phân loại là các namenode hoạt động, được giám sát bởi người dùng. Sau đó, mỗi namenode này được kiểm tra kỹ lưỡng trong hai thành phần của Zookeeper đã đề cập. Điều này được thực hiện để xác định các khu vực khó khăn và xác định các lỗi tiềm ẩn.

Cài đặt Hadoop trên Ubuntu 20.04 - Hướng dẫn từng bước

Và cuối cùng, sau khi tìm hiểu về kiến trúc Hadoop, đã đến lúc xem xét phần chính của bài viết này, đó là cách cài đặt Hadoop trên Ubuntu 20.04 như phần cuối cùng của hướng dẫn Hadoop này. Hãy xem xét các yêu cầu trước khi chuyển sang hướng dẫn từng bước để cài đặt Hadoop trên Ubuntu 20.04. Hãy nhớ rằng hướng dẫn này cũng có thể được sử dụng cho Ubuntu 18.04.

Điều kiện tiên quyết

Các yêu cầu cần thiết để cài đặt Hadoop trên Ubuntu khá đơn giản. Tất cả những gì bạn cần là một máy tính chạy Ubuntu với quyền truy cập root, có sẵn cục bộ hoặc có thể truy cập từ xa thông qua máy chủ VPS. Về các chương trình cần thiết, hãy đảm bảo bạn đã cài đặt Java 11 và SSH. Nếu bạn chưa có, hãy chạy các lệnh sau một cái một để cài đặt chúng:

sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y

Về giấy phép, bạn sẽ không cần bất kỳ giấy phép nào, vì Hadoop là miễn phí và mã nguồn mở. Đó là tất cả những gì bạn cần. Hãy chuyển sang bước một.

Bước 1: Tạo Người Dùng Không Có Quyền Root cho Hadoop

Tạo một người dùng không phải root cho Hadoop của bạn bằng lệnh sau. Đây là một phần của các cấu hình trước mà chúng ta cần thực hiện trước khi thực sự tải xuống và cài đặt Hadoop:

sudo adduser hdoop
su - hdoop

Bước 2: Thiết Lập Khóa SSH

Bây giờ để cài đặt Hadoop trên Ubuntu, chúng tôi sẽ sử dụng người dùng Hadoop mà bạn vừa tạo và sử dụng nó để tạo kết nối SSH. Sử dụng lệnh này để tạo cặp khóa SSH và lưu nó:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

Sau khi các khóa được tạo, dòng sau sẽ cho phép bạn đánh dấu chúng là authorized_keys và lưu chúng trong thư mục SSH của bạn:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Bây giờ sử dụng lệnh này để đảm bảo rằng kết nối SSH của bạn có tất cả các quyền được yêu cầu:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Xác nhận các thay đổi và bạn sẽ có thể kết nối dễ dàng đến localhost của mình mọi lúc với người dùng bạn vừa tạo:

ssh localhost

Bước 3: Tải Xuống và Cài Đặt Hadoop trên Ubuntu

Bạn có thể truy cập trang web Hadoop Apache để xem danh sách các phiên bản kèm nhật ký thay đổi gần đây. Chọn phiên bản mà bạn muốn và bạn sẽ nhận được một liên kết có thể sử dụng với lệnh sau để tải xuống và cài đặt Hadoop trên Ubuntu. Ở đây tôi chọn phiên bản 3.3.6. Thay thế '3.3.6' bằng phiên bản ổn định mới nhất nếu cần:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

Sau khi tải xuống hoàn tất, sử dụng dòng lệnh này để hoàn thành quá trình giải nén và cài đặt:

tar xzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hdoop:hdoop /usr/local/hadoop

Bước 4: Cấu Hình Môi Trường Hadoop

Đặt JAVA_HOME in /usr/local/hadoop/etc/hadoop/hadoop-env.sh:

echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")' | sudo tee -a /usr/local/hadoop/etc/hadoop/hadoop-env.sh

Bước 5: Chỉnh Sửa Tệp Cấu Hình

Cập nhật các tệp cấu hình XML của Hadoop bằng cài đặt cluster của bạn.

nano /usr/local/hadoop/etc/hadoop/core-site.xml

Bước 6: Định Dạng HDFS

Khởi tạo không gian tên hệ thống tệp Hadoop.

/usr/local/hadoop/bin/hdfs namenode -format

Bước 7: Khởi Động Các Dịch Vụ Hadoop

Khởi động các dịch vụ HDFS và YARN.

/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh

Bước 8: Xác Minh Cài Đặt

Kiểm tra các tiến trình Java đang chạy để xác nhận Hadoop hoạt động.

jps

Bước 9: Truy Cập Giao Diện Web

Mở trình duyệt web để truy cập giao diện NameNode và ResourceManager của Hadoop.

NameNode: http://localhost:9870
ResourceManager: http://localhost:8088

Bước 10: Chạy Ví Dụ MapReduce

Chạy một tác vụ MapReduce mẫu để xác thực cài đặt.

/usr/local/hadoop/bin/hdfs dfs -mkdir /input
/usr/local/hadoop/bin/hdfs dfs -put localfile.txt /input
/usr/local/hadoop/bin/hadoop jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /input /output 'dfs[a-z.]+'
/usr/local/hadoop/bin/hdfs dfs -cat /output/*

Bước 11: Đặt Biến Môi Trường

Thêm Hadoop của binsbin thư mục vào PATH của hệ thống.

echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc

Xong rồi! Bạn vừa cấu hình và cài đặt thành công Hadoop Apache trên Ubuntu 20.04!

Kết luận

Tóm lại, cài đặt Hadoop trên Ubuntu 20.04 là một quy trình phức tạp đòi hỏi sự chú ý tỉ mỉ và sẵn sàng khám phá những chi tiết tinh tế của quá trình thiết lập. Bằng cách tuân theo các bước trong hướng dẫn này, người dùng Ubuntu có thể bắt tay vào hành trình nâng cao kỹ năng, tận dụng các khả năng mạnh mẽ của Hadoop để phát triển tối đa cho các nỗ lực phân tích dữ liệu của họ.

Tôi khuyến nghị triển khai Hadoop dưới dạng một nút duy nhất sử dụng phân phối hạn chế nếu bạn chỉ muốn học tập và thử nghiệm. Với mục đích này, một VPS sẽ phù hợp hoàn hảo cho bạn. Cloudzy cung cấp cho bạn nhiều lựa chọn khác nhau dịch vụ Linux VPS bao gồm một Ubuntu VPS đáng tin cậy, mạnh mẽ mà có thể được cấu hình trong thời gian ngắn để trở thành sân chơi học tập Hadoop hoàn hảo cho bạn. Chỉ từ 4,95 USD mỗi tháng, bạn có thể sở hữu Ubuntu VPS của riêng mình với hơn 12 vị trí và hỗ trợ 24/7!

ubuntu-vps Lựa chọn Hiển nhiên

Phần lớn các máy chủ chạy Linux đang sử dụng Ubuntu; tại sao không bạn? Khám phá lý do tại sao mọi người yêu thích Ubuntu, nhận lưu trữ Ubuntu VPS được tối ưu hóa

Nhận Ubuntu VPS của bạn

Câu hỏi thường gặp

Sự khác biệt giữa HDFS và MapReduce là gì?

Mặc dù cả hai mô-đun đều nằm trong hệ sinh thái Hadoop, chúng có mục đích khác nhau. HDFS hoạt động như một hệ thống tệp phân tán, tạo điều kiện cho khả năng tiếp cập dữ liệu. Ngược lại, MapReduce xuất sắc trong việc chia nhỏ và phân tích hiệu quả các khối dữ liệu lớn.

Hadoop có được coi là cơ sở dữ liệu không?

Hadoop không phải là một cơ sở dữ liệu, mặc dù quan niệm sai lầm này khá phổ biến. Thay vào đó, nó hoạt động như một hệ thống tệp phân tán cho phép lưu trữ và xử lý dữ liệu khối lượng lớn bằng cách sử dụng một mạng các máy tính kết nối với nhau. Không nên sử dụng nó thay thế trực tiếp cho hệ thống cơ sở dữ liệu truyền thống.

Bốn thành phần chính của Hadoop là gì?

Hadoop bao gồm bốn thành phần cốt lõi: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce và Hadoop Common. Ngoài ra, một số nguồn tài liệu xem xét ZooKeeper là một thành phần, mặc dù nó không được công nhận chính thức như vậy.

Hadoop thường được sử dụng ở đâu?

Hadoop được ứng dụng trong nhiều lĩnh vực nơi quản lý, lưu trữ, xử lý và phân tích dữ liệu quy mô lớn là điều cần thiết. Nó hỗ trợ các hoạt động từ các doanh nghiệp vừa và bệnh viện đến các startup đang phát triển, cung cấp các giải pháp dựa trên dữ liệu.

Chia sẻ

Bài viết mới từ blog

Tiếp tục đọc.

Ký hiệu gốc của MongoDB được trình bày trên máy chủ tương lai để cài đặt MongoDB trên Ubuntu + khẩu hiệu về những gì để mong đợi từ bài viết + tiêu đề bài viết + logo thương hiệu Cloudzy
Cơ sở dữ liệu & Phân tích

Cách Cài Đặt MongoDB Trên Ba Phiên Bản Mới Nhất của Ubuntu (Từng Bước)

Bạn đã quyết định sử dụng MongoDB, một giải pháp thay thế tuyệt vời cho MariaDB để xây dựng ứng dụng MERN stack, nền tảng phân tích hoặc bất kỳ hệ thống dựa trên tài liệu nào, nhưng gặp khó khăn với các lựa chọn tốt

Jim SchwarzJim Schwarz 12 phút đọc
Quản Lý Dữ Liệu Thông Minh cho Doanh Nghiệp của Bạn: Chiến Lược Lưu Trữ và Sao Lưu Kiểu Cloud với VPS
Cơ sở dữ liệu & Phân tích

Quản Lý Dữ Liệu Thông Minh cho Doanh Nghiệp của Bạn: Chiến Lược Lưu Trữ và Sao Lưu Kiểu Cloud với VPS

VPS để quản lý dữ liệu doanh nghiệp an toàn là chiến lược tôi khuyến nghị bất cứ khi nào một công ty quyết định dừng việc quản lý các tệp rải rác trên các laptop, email đính kèm và các nơi được quên

Rexa CyrusRexa Cyrus 7 phút đọc
Materialized View so với View
Cơ sở dữ liệu & Phân tích

Materialized View so với View: Hiểu vai trò của chúng trong cơ sở dữ liệu

Trong các hệ thống cơ sở dữ liệu, một materialized view là một đối tượng cơ sở dữ liệu lưu trữ các kết quả được tính toán trước của một truy vấn dưới dạng bảng vật lý. Vì dữ liệu được lưu trữ thực tế trên đĩa, các truy vấn phức tạp

Ivy JohnsonIvy Johnson 7 phút đọc

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, hoạt động từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.