Ngày nay, khi một doanh nghiệp hoặc bất kỳ hoạt động nào liên quan đến máy tính phát triển đến mức cần nhiều máy tính để xử lý, chúng ta sẽ 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 để xử lý khối lượng công việc hiệu quả hơn. Điều này đã trở nên phổ biến đến mức ngày nay hầu hết mọi 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 nối mạng này. Mặc dù chắc chắn việc thực hiện các tác vụ máy tính đòi hỏi khắt khe sẽ hiệu quả hơn theo cách này nhưng nó cũng cực kỳ phức tạp vì bạn cần phải định 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 xuất hiện để giải quyết vấn đề.
- Apache Hadoop là gì?
- Các trường hợp sử dụng của Hadoop
- Tổng quan về kiến trúc Hadoop
- Cài đặt Hadoop trên Ubuntu 20.04 - Hướng dẫn từng bước
- Điều kiện tiên quyết
- Bước 1: Tạo người dùng không root cho Hadoop
- Bước 2: Thiết lập khóa SSH
- Bước 3: Tải xuống và cài đặt Hadoop trên Ubuntu
- Bước 4: Định cấu hình môi trường Hadoop
- Bước 5: Chỉnh sửa tệp cấu hình
- Bước 6: Định dạng HDFS
- Bước 7: Bắt đầu dịch vụ Hadoop
- Bước 8: Xác minh cài đặt
- Bước 9: Truy cập giao diện web
- Bước 10: Chạy ví dụ MapReduce
- Bước 11: Đặt biến môi trường
- Phần kết luận
- Câu hỏi thường gặp
Hadoop là một bộ công cụ và chương trình do Apache phát hành, cho phép toàn bộ quá trình kết nối mạng nhiều máy tính với nhau được thực hiện hiệu quả và dễ dàng hơn nhiều. Vì vậy, trong bài viết này, tôi sẽ xem xét Hadoop, kiểm tra các trường hợp sử dụng, xem xét ưu và nhược điểm của nó, đồng thời cung cấp tổng quan về kiến trúc nâng cao của nó, trước khi 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, một bộ công cụ được cung cấp bởi Apache, đã chuyể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ọ khai thác sức mạnh tính toán hiện tại của mình cho các tác vụ đòi hỏi khắt khe mà không cần nâng cấp tốn kém. Bộ này 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ự xuất sắc của Hadoop nằm ở khả năng tháo vát vốn có của nó, trao quyền một cách khéo léo cho cả cá nhân và tổ chức để hợp nhất các khả năng tính toán hiện có của họ thành một lực lượng gắn kết có khả năng vượt qua những thách thức tính toán đáng kể. Nếu không có sự hướng dẫn của Hadoop, các thực thể này sẽ buộc phải bắt tay vào việc theo đuổi tốn kém để có được những cỗ máy tính toán ngày càng mạnh mẽ.
Các trường hợp sử dụng của Hadoop
Bây giờ chúng ta biết Hadoop là gì. Nhưng chính xác thì các trường hợp sử dụng của nó được áp dụng như thế nào trong thế giới thực? Hiểu một chương trình trên giấy tờ là điều 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ó như một phần của một hoạt động nghiêm túc. Vì vậy, ở đây tôi sẽ cung cấp một số ví dụ trước khi chuyển sang phần hướng dẫn về 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 một số 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 mở rộng và phân tích chúng nhanh hơn bình thường. Với bất kỳ hoạt động kinh doanh nào cũng có những rủi ro cần được phân tích, tính toán. Hadoop ở đây cực kỳ tiện dụng. Trên thực tế, nhiều bệnh viện đáng tin cậy 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à phỏng đoán kết quả cũng như số liệu thống kê tiềm năng về hoạt động của họ đối với bệnh nhân. Bạn tìm hiểu thêm về vai trò mang tính cách mạng của Hadoop trong lĩnh vực chăm sóc sức khỏe tại đây.
Phát hiện vi phạm bảo mật
Khi tổng số lượng mạng và thiết bị được sử dụng tăng lên trong mạng hoặc doanh nghiệp, ngày càng có nhiều vi phạm bảo mật tiềm ẩn cần lưu ý. Một trong những tiện ích thiết yếu của Hadoop là đánh giá toàn bộ hoạt động bằng cách phân tích các lô dữ liệu lớn và nêu bật các điểm yếu tiềm ẩn của hệ thống đó.
Đánh giá bản đồ
Nhiều doanh nghiệp dựa vào phản hồi đánh giá mà họ nhận được về sản phẩm của mình để cải thiện sản phẩm hoặc phát triển các chiến lược thị trường mới. Trong khi con người sẽ mất nhiều thời gian để xử lý một tệp đánh giá đủ lớn, thì Hadoop sẽ thực hiện phép thuật máy tính được nối mạng để mang lại kết quả nhanh hơn nhiều.
Phân tích thị trường
Nói về chiến lược thị trường, bản đồ đánh giá nói trên không thể so sánh được với số lượng nguồn lực cần thiết để phân tích thị trường nhằm đánh giá tiềm năng cho một sản phẩm hoàn toàn mới gia nhập thị trường. Đây là một trường hợp sử dụng khác mà Hadoop tỏa sáng vì nó cho phép ngay cả các doanh nghiệp nhỏ mới thành lập đánh giá thị trường một cách hiệu quả bằng một số máy tính theo khung thời gian và cách thức hiệu quả.
Đánh giá tệp nhật ký
Một khía cạnh khác của hoạt động kinh doanh trở nên phức tạp hơn theo thời gian và ngày càng trở nên quan trọng hơn là số lượng phần mềm mà họ sẽ bắt đầu sử dụng trên diện rộng. Việc sử dụng ngày càng nhiều phần mềm gây ra nhiều lỗi và điểm yếu tiềm ẩn hơn và cần một nhân viên tận tâm để quản lý tệp nhật ký và xử lý các vấn đề. Việc này sẽ mất rất nhiều thời gian, nhưng bằng cách sử dụng một số giao thức đơn giản, doanh nghiệp có thể sử dụng Hadoop để nhanh chóng xem xét và đánh giá các tệp nhật ký nhằm tìm ra các lỗi này và loại bỏ chúng.
Có rất nhiều trường hợp và ứng dụng sử dụng Hadoop khác, nhưng để duy trì sự tập trung vào mục đích của bài viết, chúng ta sẽ không thảo luận thêm nữa.
Tổng quan về kiến trúc Hadoop
Giả sử bạn đã nghe nói về Hadoop và các trường hợp sử dụng tổng thể của nó cũng như chức năng của nó. Và ngay cả khi bạn chưa làm vậy thì bài viết này có thể đã giúp bạn điều đó cho đến nay. Nhưng bây giờ bạn cần hiểu sâu hơn về cấu tạo thực sự của Hadoop và cách mỗi phần của nó hoạt động với các tính năng khác của nó. Như đã đề cập trước đó, có bốn lớp chung của Hadoop; Trong phần hướng dẫn Hadoop này, chúng ta sẽ tìm hiểu thêm về HDFS (Hệ thống tệp phân tán Hadoop), YARN (Yet Another Resource Negotiator), MapReduce và Hadoop Common. Tuy nhiên, vì Hadoop Common không có nhiều tính năng cần giải thích nên những tính năng cơ bản của nó được gọi là Người giữ vườn thú. Vì vậy, trong phần này, tôi sẽ cố gắng tóm tắt kiến trúc và hệ sinh thái Hadoop nâng cao cũng như bốn phần của nó một cách cơ bản, trước khi chuyển sang cách cài đặt Hadoop trên Ubuntu 20.04.
HDFS
HDFS trong hệ sinh thái Hadoop, cấu thành hệ thống lưu trữ tổng thể mà tất cả các phần phụ và ứng dụng của Hadoop sử dụng để đánh giá, truyền và lưu dữ liệu. Điểm chính trong Kiến trúc HDFS là không giống như chính Hadoop, một chương trình nguồn mở, HDFS trong Hadoop thực sự là hệ thống tệp chịu trách nhiệm chạy 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 tệp cực kỳ linh hoạt, chia các lô dữ liệu thành các phần nhỏ 128 MB và tối ưu hóa chúng cho các hoạt động dựa trên trình 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 giá dữ liệu tổng thể, sau đó có thể được thao tác thông qua các nút tên và giá đỡ phụ khác nhau thành các phần phụ để tổ chức hoạt động phân tích dữ liệu của bạn. Sau đó, bạn có thể sử dụng các tùy chọn khác như Giá đỡ nhật ký, QJM, HA, fsimage và chỉnh sửa tệp nhật ký cũng như nhật ký chú giải tổng thể để theo dõi và thực hiện các tác vụ khác.
SỢI
YARN là một nhánh điều hành khác của Hadoop được sử dụng để chỉ định số lượng tài sản điện toán mong muốn cho các ứng dụng cụ thể trong hệ sinh thái Hadoop. Về bản chất, nó cho phép bạn sử dụng trình quản lý tài nguyên cho khách hàng của mình để phân bổ các tài nguyên này thông qua một tập hợp các nút khác nhau cho các tác vụ và ứng dụng khác nhau. Ngoài ra còn có một chú giải trong YARN, tương tự như chú giải trong HDFS, cho phép bạn theo dõi tất cả các tài sản và hoạt động được phân bổ của mình. Bản thân YARN được chia thành ba phần phụ: Trình quản lý tài nguyên, Trình quản lý ứng dụng và Trình quản lý nút.
Mỗi phần trong số ba phần phụ này lần lượt tạo ra một phiên bản mới của chính chúng trên mỗi cụm, ứng dụng và nút. Bạn không chỉ có thể phân bổ tài nguyên cho các tác vụ khác nhau bằng YARN mà còn có thể lên lịch thay đổi các tài nguyên này theo thời gian để đưa ra quy trình làm việc thuật toán nâng cao. YARN không bị giới hạn ở phần phụ của nó. Sẽ có nhiều trường hợp bạn sẽ 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 mình.
Bản đồ Hadoop
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 để nhận được một lượng lớn dữ liệu được phân tích theo cách phân tán bởi nhiều máy tính khác nhau một cách hiệu quả. Về bản chất, 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 nối mạng của bạn. Sau đó, bằng cách sử dụng các giao thức cụ thể được gọi là bộ giảm tốc, dữ liệu được rút gọn thành các thành phần thiết yếu nhất và được giảm bớt. Mỗi một trong những hoạt động này được gọi là một Công việc.
Giả sử bạn có một câu gồm ba từ đóng vai trò là bản đồ dữ liệu bạn muốn phân tích bằng MapReduce. Giả sử câu là Bear Hunt Rabbit. Hadoop MapReduce sẽ chia nhỏ và giảm câu này thành ba cụm khác nhau, mỗi cụm có một từ, sau đó sử dụng các từ này và tạo các kết hợp mới với dữ liệu đầu vào tương tự của các công việc khác của bạn để tạo lô dữ liệu đồng nhất cuối cùng với dữ liệu không cần thiết đã loại bỏ và có thể dễ dàng phân tích.
Người giữ vườn thú
Zookeeper là một phần phụ khác của hệ sinh thái Hadoop ban đầu trở nên nổi bật và được sử dụng phổ biến khi phát hành phiên bản Hadoop 2.0. Điểm dịch vụ chính của Zookeeper là phối hợp giữa các hoạt động khác nhau mà bạn đang chạy như một phần của một phiên bản Hadoop duy nhất. Do đó, Zookeeper hầu như luôn được sử dụng cùng với Trình quản lý tài nguyên của YARN và các tính năng khác nhau của HDFS trong Hadoop. Công dụng 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 lỗi tiềm ẩn. Để làm điều này, nó sử dụng hai công cụ khác nhau: ZKFiloverControer và Zookeeper Quorum.
Trong các quy trình này, các nút dữ liệu đượ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 thành các nút tên hoạt động, do người dùng giám sát. Sau đó, mỗi nút tên này đều được xem xét kỹ lưỡng trong hai phần phụ nói trên của Zookeeper. Điều này được thực hiện để xác định các khu vực khó khăn và xác định những thất bạ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 đi sâu vào vấn đề cách cài đặt Hadoop trên Ubuntu 20.04 như là phần cuối cùng của hướng dẫn Hadoop này. Hãy đề cập đến các điều kiện tiên quyết 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 điều kiện tiên quyết 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 có 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 tiên quyết, hãy đảm bảo bạn đã cài đặt Java 11 và SSH. Nếu bạn không có chúng, hãy chạy lần lượt các lệnh sau để 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à nguồn mở và miễn phí. Đó 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 root cho Hadoop
Tạo 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ấ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 với nó. 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
Khi các khóa được tạo, dòng sau đây sẽ cho phép bạn đánh dấu chúng là ủy quyền_keys và lưu chúng vào thư mục SSH của bạn:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Bây giờ hãy 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ần thiết:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Xác nhận các thay đổi và bạn sẽ có thể dễ dàng kết nối với localhost của mình mọi lúc với người dùng bạn đã tạo:
ssh localhost
Bước 3: Tải xuống và cài đặt Hadoop trên Ubuntu
Bạn có thể ghé thăm Trang web Apache Hadoop để xem danh sách các phiên bản có nhật ký thay đổi gần đây của chúng. Chọn phiên bản bạn thích và bạn sẽ thấy một liên kết có thể được sử dụng bằng lệnh sau để tải xuống và cài đặt Hadoop trên Ubuntu. Ở đây tôi đang 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 quá trình tải xuống hoàn tất, hãy sử dụng dòng này để hoàn tất 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: Định cấu hình môi trường Hadoop
Bộ 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 cụm 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 tin Hadoop.
/usr/local/hadoop/bin/hdfs namenode -format
Bước 7: Bắt đầu dịch vụ Hadoop
Khởi chạy 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 đang chạy.
jps
Bước 9: Truy cập giao diện web
Mở trình duyệt web tới giao diện NameNode và ResourceManager của Hadoop.
TênNode: http://localhost:9870
Trình quản lý tài nguyên: http://localhost:8088
Bước 10: Chạy ví dụ MapReduce
Thực hiện công việc MapReduce mẫu để xác thực thiết lập.
/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ái thùng Và sbin thư mục vào hệ thống PATH.
echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc
Và thế là xong! Bạn vừa cấu hình và cài đặt thành công Apache Hadoop trên Ubuntu 20.04!
Phần kết luận
Tóm lại, quá trình cài đặt Hadoop trên Ubuntu 20.04 là một quá trình kỹ lưỡng đòi hỏi sự chú ý tỉ mỉ và sẵn sàng khám phá các sắc thái của quá trình thiết lập. Bằng cách tuân thủ các bước được cung cấp trong hướng dẫn này, người dùng Ubuntu có thể bắt tay vào hành trình biến đổi, khai thác các khả năng đáng kể của Hadoop để nhận ra đầy đủ tiềm năng theo đuổi phân tích dữ liệu của họ.
Đề xuất của tôi là triển khai Hadoop dưới dạng triển khai một nút bằng cách sử dụng phân phối hạn chế nếu bạn chỉ có ý định tìm hiểu và chơi với nó. Với mục đích này, VPS sẽ hoạt động hoàn hảo cho bạn. Cloudzy cung cấp cho bạn nhiều tính năng khác nhau Dịch vụ VPS Linux bao gồm một Ironclad, đáng tin cậy VPS Ubuntu có thể được cấu hình ngay lập tức để trở thành sân chơi học tập Hadoop hoàn hảo cho bạn. Bắt đầu từ 4,95 USD mỗi tháng, bạn có thể nhận VPS Ubuntu của riêng mình với hơn 12 địa điểm và hỗ trợ chăm sóc 24/7!
Sự 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 phải là bạn? Khám phá lý do tại sao mọi người đều yêu thích Ubuntu — sở hữu một VPS Ubuntu được tối ưu hóa
Nhận VPS Ubuntu của bạnCâ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 nhưng chúng phục vụ các mục đích riêng biệt. HDFS hoạt động như một hệ thống tệp phân tán, hỗ trợ khả năng truy cập dữ liệu. Mặt khác, MapReduce vượt trội 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à cơ sở dữ liệu, mặc dù quan niệm sai lầm này khá phổ biến. Đúng hơn, 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ổng lồ bằng cách sử dụng mạng các máy tính được kết nối với nhau. Nó không nên được sử dụng như một sự 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 (Hệ thống tệp phân tán Hadoop), YARN (Công cụ đàm phán tài nguyên khác), MapReduce và Hadoop Common. Ngoài ra, một số tài nguyên coi 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 tìm thấy các ứng dụng trong nhiều lĩnh vực khác nhau, nơi việc 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ó phục vụ cho các hoạt động từ các doanh nghiệp và bệnh viện quy mô vừa cho đến các công ty khởi nghiệp đang phát triển, cung cấp các giải pháp dựa trên dữ liệu.