Hướng dẫn cài đặt Hadoop trên UbuntuHướng dẫn tải xuống và cài đặt

⚡ Tóm tắt thông minh

Cài đặt Apache Hadoop trên Ubuntu Quá trình này gồm hai bước: giải nén bản phát hành bằng tài khoản hệ thống chuyên dụng với SSH không cần mật khẩu, sau đó chỉnh sửa bốn tệp XML trước khi định dạng HDFS và khởi động cụm máy chủ đơn nút.

  • 🔘 Điều kiện tiên quyết: A đang chạy Ubuntu máy móc và được hỗ trợ Java Trước tiên, cần phải có bộ công cụ phát triển.
  • ☑️ Tài khoản chuyên dụng: Hãy tạo nhóm hadoop_ và tài khoản hduser_ để các tiến trình nền không bao giờ chạy với tư cách người dùng đăng nhập của bạn.
  • SSH không cần mật khẩu: Hadoop khởi chạy các tiến trình nền thông qua SSH, vì vậy lệnh ssh localhost phải thành công mà không cần nhập mật khẩu.
  • 🧪 Bốn tệp cấu hình: Các tệp hadoop-env.sh, core-site.xml, mapred-site.xml và hdfs-site.xml chứa tất cả các thiết lập mà hướng dẫn này thay đổi.
  • 🛠️ Điểm xuất phát: Định dạng NameNode một lần, sau đó chạy start-dfs.sh và start-yarn.sh rồi xác nhận năm tiến trình nền bằng lệnh jps.
  • 🧭 Sự thay đổi phiên bản: Ảnh chụp màn hình sử dụng Hadoop 2.2.0, vì vậy hãy kiểm tra phiên bản, cổng và tên thuộc tính so với Hadoop 3.x.

Hướng dẫn cài đặt Hadoop trên Ubuntu

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước cài đặt Apache Hadoop trên máy Linux (UbuntuĐây là một quy trình gồm hai bước: đầu tiên là tải xuống và cài đặt phiên bản, sau đó cấu hình nó.

Có hai điều kiện tiên quyết:

Ghi chú về phiên bản Hadoop 3.x cho thiết lập này

Các ảnh chụp màn hình trong hướng dẫn này được chụp trên Hadoop 2.2.0. Trình tự các bước không thay đổi trên các phiên bản hiện tại, nhưng một số tên và giá trị mặc định đã được thay đổi. Vui lòng kiểm tra bảng bên dưới trước khi sao chép bất kỳ lệnh nào một cách nguyên văn.

Cài đặt hoặc bước Trong hướng dẫn này (Hadoop 2.x) Phiên bản Hadoop 3.x hiện tại
Lưu trữ bản phát hành hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gzPhiên bản 3.5 ổn định đầu tiên được phát hành vào ngày 2 tháng 4 năm 2026.
Thuộc tính hệ thống tệp mặc định fs.default.name trong văn xuôi, fs.defaultFS trong XML fs.defaultFS chỉ có; fs.default.name không được dùng nữa
Thuộc tính MapReduce mapreduce.jobtracker.address mapreduce.framework.name đặt thành yarnCông việcTracker không còn tồn tại nữa sau khi YARN lên lịch thực hiện công việc.
mapred-site.xml Được sao chép từ mapred-site.xml.template Tàu trong etc/hadoop đã có sẵn rồi, nên bước sao chép là không cần thiết.
Cổng giao diện người dùng web NameNode 50070 9870
Java Java 6 hoặc Java 7 Java 8 hoặc Java 11

Mọi thứ khác trong hướng dẫn này đều hoạt động theo cùng một cách trên Hadoop 3: tài khoản chuyên dụng, khóa SSH, bốn tệp cấu hình và các tập lệnh khởi động và dừng.

Phần 1) Tải xuống và cài đặt Hadoop

Bước 1) Thêm người dùng hệ thống Hadoop

Thêm người dùng hệ thống Hadoop bằng lệnh dưới đây.

sudo addgroup hadoop_

Đang chạy lệnh `sudo addgroup hadoop_` trên cửa sổ dòng lệnh.

sudo adduser --ingroup hadoop_ hduser_

adduser prompt thu thập thông tin chi tiết cho hduser_

Nhập mật khẩu, tên và các thông tin khác.

LƯU Ý: Có khả năng xảy ra lỗi được đề cập bên dưới trong quá trình thiết lập và cài đặt này.

“hduser không có trong tập tin sudoers. Sự việc này sẽ được báo cáo.”

Thông báo lỗi: hduser không có trong tệp sudoers

Lỗi này có thể được khắc phục bằng cách đăng nhập với tư cách người dùng root.

Chuyển sang người dùng root trong terminal

Thực hiện lệnh

sudo adduser hduser_ sudo

Thêm hduser_ vào nhóm sudo

Re-login as hduser_

Đăng nhập lại với tư cách hduser_

Bước 2) Định cấu hình SSH

Để quản lý các node trong một cụm, Hadoop yêu cầu quyền truy cập SSH.

Đầu tiên, chuyển đổi người dùng, nhập lệnh sau

su - hduser_

Chuyển đổi người dùng bằng lệnh su - hduser_

Lệnh này sẽ tạo một khóa mới.

ssh-keygen -t rsa -P ""

ssh-keygen tạo cặp khóa RSA cho hduser_

Kích hoạt quyền truy cập SSH vào máy cục bộ bằng khóa này.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Thêm id_rsa.pub vào tệp authorized_keys

Bây giờ hãy kiểm tra thiết lập SSH bằng cách kết nối với localhost với tư cách người dùng 'hduser_'.

ssh localhost

Thiết lập kết nối SSH localhost thành công cho người dùng hduser_

Lưu ý: Nếu bạn thấy lỗi bên dưới khi thực hiện lệnh 'ssh localhost', thì có khả năng SSH không khả dụng trên hệ thống này.

Kết nối SSH đến localhost thất bại với lỗi "connection refused".

Để giải quyết vấn đề này –

Lọc SSH bằng cách sử dụng,

sudo apt-get purge openssh-server

Nên thực hiện việc xóa sạch dữ liệu trước khi bắt đầu cài đặt.

apt-get purge gỡ bỏ gói openssh-server hiện có

Cài đặt SSH bằng lệnh-

sudo apt-get install openssh-server

apt-get cài đặt gói openssh-server

Bước 3) Tải xuống Hadoop

Bước tiếp theo là tải xuống Hadoop từ... Trang phát hành Apache Hadoop.

Trang thông tin phát hành Apache Hadoop liệt kê các phiên bản hiện có.

Chọn ổn định

Danh sách thư mục cho phiên bản Hadoop ổn định

Chọn tệp tar.gz (không phải tệp có đuôi src).

Chọn tệp nhị phân Hadoop tar.gz thay vì tệp lưu trữ mã nguồn.

Sau khi quá trình tải xuống hoàn tất, hãy điều hướng đến thư mục chứa tệp tar.

Cửa sổ dòng lệnh được mở trong thư mục chứa tệp tar đã tải xuống.

nhập,

sudo tar xzf hadoop-2.2.0.tar.gz

Extracnén tệp tin tarball của Hadoop bằng lệnh tar xzf

Bây giờ, hãy đổi tên hadoop-2.2.0 thành hadoop.

sudo mv hadoop-2.2.0 hadoop

Đổi tên người yêu cũtracchuyển thư mục ted hadoop-2.2.0 sang hadoop

Cuối cùng, hãy giao thư mục đó cho người nhận tài khoản mới.

sudo chown -R hduser_:hadoop_ hadoop

Lệnh `chown` gán thư mục hadoop cho người dùng `hduser_` và `hadoop_`.

Thay thế bằng phiên bản bạn thực sự đã tải xuống. hadoop-2.2.0 trong ba lệnh trên.

Phần 2) Định cấu hình Hadoop

Bước 1) Chỉnh sửa tệp ~/.bashrc

Thêm các dòng sau vào cuối tệp ~/.bashrc.

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

Tệp bashrc với các phần xuất HADOOP_HOME, JAVA_HOME và PATH được thêm vào.

Bây giờ, hãy cập nhật cấu hình môi trường này bằng lệnh dưới đây.

. ~/.bashrc

Nạp lại tệp bashrc để các biến môi trường mới có hiệu lực.

Bước 2) Cấu hình liên quan đến HDFS

Thiết lập biến môi trường JAVA_HOME trong tệp $HADOOP_HOME/etc/hadoop/hadoop-env.sh, như hình bên dưới.

Dòng JAVA_HOME mặc định bên trong tệp hadoop-env.sh

Tệp hadoop-env.sh được mở trong trình soạn thảo và hiển thị phần xuất JAVA_HOME.

Với

hadoop-env.sh JAVA_HOME đã được thay thế bằng giá trị thực tế. Java đường dẫn cài đặt

Có hai tham số trong tệp $HADOOP_HOME/etc/hadoop/core-site.xml cần được thiết lập.

1. 'hadoop.tmp.dir' – Dùng để chỉ định thư mục mà Hadoop sẽ sử dụng để lưu trữ các tệp dữ liệu của nó.

2. 'fs.defaultFS' – Thuộc tính này chỉ định hệ thống tệp mặc định. Tên cũ của thuộc tính này, 'fs.default.name', đã lỗi thời.

Để đặt các tham số này, hãy mở core-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

Mở core-site.xml bằng gedit

Sao chép các dòng bên dưới vào giữa thẻ.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

Tệp core-site.xml chứa các thuộc tính hadoop.tmp.dir và fs.defaultFS.

Điều hướng đến thư mục $HADOOP_HOME/etc/hadoop.

Cửa sổ dòng lệnh bên trong thư mục cấu hình Hadoop etc/hadoop.

Bây giờ, hãy tạo thư mục được đề cập trong core-site.xml.

sudo mkdir -p <Path of Directory used in above setting>

Lệnh `mkdir -p` tạo đường dẫn `hadoop.tmp.dir`.

Cấp quyền truy cập vào thư mục.

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

chown cấp quyền sở hữu cho hduser_ đối với thư mục tạm thời

sudo chmod 750 <Path of Directory created in above step>

Lệnh chmod 750 được áp dụng cho thư mục tạm thời.

Bước 3) Cấu hình MapReduce

Trước khi bắt đầu với các cấu hình này, chúng ta hãy thiết lập đường dẫn HADOOP_HOME.

sudo gedit /etc/profile.d/hadoop.sh

và nhập

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

Tập lệnh cấu hình hadoop.sh xuất khẩu HADOOP_HOME

Tiếp theo nhập

sudo chmod +x /etc/profile.d/hadoop.sh

Sử dụng lệnh `chmod +x` để cấp quyền thực thi cho tập lệnh cấu hình hadoop.sh.

Thoát khỏi cửa sổ Terminal và khởi động lại.

Gõ lệnh `echo $HADOOP_HOME` để kiểm tra đường dẫn.

Hiển thị đường dẫn cài đặt đã cấu hình: `echo $HADOOP_HOME`

Bây giờ sao chép tập tin

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

Sao chép tệp mapred-site.xml.template sang tệp mapred-site.xml

Mở tệp mapred-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

Mở mapred-site.xml bằng gedit

Thêm các thiết lập bên dưới vào giữa Và thẻ.

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

Tệp mapred-site.xml chứa thông tin về công việc MapReduce. tracthuộc tính ker

Mở tệp $HADOOP_HOME/etc/hadoop/hdfs-site.xml như hình bên dưới,

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Mở hdfs-site.xml bằng gedit

Thêm các thiết lập bên dưới vào giữa Và thẻ.

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

Tệp hdfs-site.xml chứa các thuộc tính dfs.replication và dfs.datanode.data.dir.

Tạo thư mục được chỉ định trong phần cài đặt ở trên.

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

Lệnh `mkdir -p` tạo thư mục dữ liệu của DataNode.

Sau đó, cấp quyền sở hữu và quyền truy cập cho nó.

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

chown cấp quyền sở hữu cho hduser_ đối với thư mục dữ liệu DataNode

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

Lệnh `chmod 750` đã được áp dụng cho thư mục dữ liệu của DataNode.

Bước 4) Định dạng HDFS

Trước khi khởi động Hadoop lần đầu tiên, hãy định dạng HDFS bằng lệnh dưới đây.

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format output định dạng hệ thống tệp mới

Bước 5) Khởi động cụm máy chủ đơn Hadoop

Khởi động cụm Hadoop một nút bằng lệnh dưới đây.

$HADOOP_HOME/sbin/start-dfs.sh

Kết quả của lệnh trên được hiển thị bên dưới.

Kết quả đầu ra của lệnh start-dfs.sh khi khởi động NameNode và DataNode.

Sau đó khởi động các tiến trình nền YARN.

$HADOOP_HOME/sbin/start-yarn.sh

Kết quả đầu ra của lệnh start-yarn.sh là quá trình khởi động ResourceManager và NodeManager.

Sử dụng công cụ 'jps' để kiểm tra xem tất cả các tiến trình liên quan đến Hadoop có đang chạy hay không.

Lệnh `jps output` liệt kê năm tiến trình nền Hadoop đang chạy.

Nếu Hadoop khởi động thành công, kết quả đầu ra của lệnh jps sẽ hiển thị NameNode, NodeManager, ResourceManager, SecondaryNameNode và DataNode.

Bước 6) Dừng lạiping Hadoop

Tắt cụm máy chủ theo thứ tự ngược lại.

$HADOOP_HOME/sbin/stop-dfs.sh

Kết quả đầu ra của lệnh stop-dfs.sh khi tắt các tiến trình nền HDFS.

$HADOOP_HOME/sbin/stop-yarn.sh

Kết quả đầu ra của lệnh stop-yarn.sh khi tắt các tiến trình nền YARN.

Cách kiểm tra xem Hadoop có đang chạy hay không và khắc phục các lỗi thường gặp

Kết quả đầu ra của lệnh jps xác nhận rằng các tiến trình đã được khởi chạy, nhưng không xác nhận rằng cụm máy chủ có thể sử dụng được. Bốn bước kiểm tra bổ sung sẽ giải quyết vấn đề đó.

  • Mở giao diện web của NameNode tại http://localhost:9870 (cổng 50070 trên Hadoop 2.x) và xác nhận báo cáo tóm tắt chỉ còn một nút đang hoạt động.
  • Mở giao diện ResourceManager tại http://localhost:8088 Để xác nhận YARN đã chấp nhận NodeManager.
  • chạy hdfs dfsadmin -report để kiểm tra dung lượng, các DataNode đang hoạt động và bất kỳ khối nào chưa được sao chép đầy đủ.
  • Hãy viết gì đó: hdfs dfs -mkdir /test tiếp theo hdfs dfs -ls / Chứng minh rằng không gian tên chấp nhận các thay đổi.

Hầu hết những lần thất bại đầu tiên đều thuộc một trong năm trường hợp sau.

Triệu chứng Nguyên nhân Sửa chữa
Biến môi trường JAVA_HOME chưa được thiết lập và không thể tìm thấy. Biến này được xuất trong tệp .bashrc nhưng không được xuất trong tệp hadoop-env.sh. Hãy thiết lập đường dẫn tuyệt đối của JDK bên trong tệp hadoop-env.sh.
Quyền truy cập bị từ chối (publickey, password) trên ssh localhost Biến authorized_keys bị thiếu hoặc quá lỏng lẻo. Thêm lại nội dung tệp id_rsa.pub, sau đó chạy lệnh chmod 600 trên thư mục ~/.ssh/authorized_keys.
Kết nối bị từ chối trên cổng 22 openssh-server chưa được cài đặt hoặc không đang chạy. Cài đặt openssh-server và khởi động dịch vụ ssh.
DataNode bị thiếu trong jps sau khi định dạng lại. Cluster Lỗi không khớp ID giữa NameNode đã định dạng và thư mục DataNode cũ. Xóa sạch thư mục dfs.datanode.data.dir, sau đó định dạng lại một lần nữa.
start-dfs.sh: lệnh không tìm thấy Biến môi trường HADOOP_HOME và PATH chưa bao giờ được nạp vào shell hiện tại. Chạy tệp . ~/.bashrc hoặc mở một cửa sổ terminal mới.

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

Bất kỳ ai được hỗ trợ tích cực Ubuntu Phiên bản LTS hoạt động tốt, bao gồm cả 22.04 và 24.04. Hadoop 3.x đã được xây dựng và kiểm thử. Java 8 và Java 11, vì vậy hãy cài đặt một trong những JDK đó; các JDK mới hơn không được hỗ trợ đầy đủ và các phiên bản cũ hơn Java Phiên bản 7 không còn áp dụng nữa.

Các tập lệnh start-dfs.sh và start-yarn.sh khởi chạy mọi tiến trình nền thông qua SSH, ngay cả khi máy chủ duy nhất là localhost. Nếu không có khóa không cần mật khẩu, các tập lệnh sẽ bị kẹt ở bước yêu cầu nhập mật khẩu và không có tiến trình nền nào được khởi chạy.

hadoop.tmp.dir là đường dẫn tạm thời cơ bản mà Hadoop sử dụng để tạo ra các vị trí tạm thời khác. dfs.datanode.data.dir là nơi DataNode lưu trữ các tập tin khối thực sự. Hãy trỏ đường dẫn thứ hai đến bộ nhớ lưu trữ bền vững, không bao giờ trỏ đến /tmp, nếu không các khối dữ liệu sẽ biến mất khi khởi động lại.

Chỉ cần định dạng một lần, trước khi khởi động lần đầu. Việc chạy lại quá trình định dạng sẽ xóa không gian tên và khiến các thư mục DataNode hiện có vẫn giữ ID cụm cũ, đó là lý do tại sao DataNode sau đó từ chối đăng ký và biến mất khỏi kết quả jps.

Vâng, đúng vậy. Windows Cần có các tệp nhị phân gốc winutils.exe và hadoop.dll cho phiên bản tương ứng. Hầu hết mọi người tránh điều đó bằng cách chạy cùng một phiên bản. Ubuntu các bước thực hiện bên trong WSL 2, hoạt động như một máy chủ Linux thông thường.

Để học hỏi thì đúng vậy: ảnh hệ thống dựng sẵn giúp bỏ qua bước tạo người dùng, khóa SSH và chỉnh sửa XML. Tuy nhiên, tự cài đặt vẫn đáng làm một lần, vì nó cho thấy tệp nào kiểm soát từng thiết lập khi cụm máy chủ thực tế gặp sự cố.

Các mô hình học máy dựa trên số liệu NameNode và YARN dự đoán giới hạn dung lượng, phát hiện các tác vụ bị lệch và cảnh báo sớm các ổ đĩa bị lỗi. Một số nền tảng cũng tự động đề xuất kích thước container, thay thế phần lớn việc tinh chỉnh cấu hình thủ công trước đây.

Copilot soạn thảo nhanh các khối thuộc tính core-site.xml và hdfs-site.xml và ghi nhớ chính xác chính tả. Hãy kiểm tra từng đề xuất so với tài liệu cho phiên bản của bạn, vì nó thường đề xuất các thuộc tính đã bị loại bỏ như mapreduce.jobtracker.address hoặc fs.default.name.

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