Cách cài đặt Hadoop ở chế độ độc lập trên Ubuntu 16.04
Hadoop là một khung lập trình dựa trên Java, hỗ trợ xử lý và lưu trữ các bộ dữ liệu cực lớn trên một cụm máy rẻ tiền. Đây là dự án nguồn mở lớn đầu tiên trong playground dữ liệu lớn và được tài trợ bởi Apache Software Foundation.Hadoop 2.7 bao gồm bốn lớp chính:
- Hadoop Common là tập hợp các tiện ích và thư viện hỗ trợ các module Hadoop khác.
- HDFS , viết tắt của Hadoop Distributed File System, chịu trách nhiệm lưu trữ dữ liệu vào đĩa.
- YARN , viết tắt của Yet Another Resource Negotiator, là “hệ điều hành” cho HDFS.
- MapReduce là mô hình xử lý ban đầu cho các cụm Hadoop. Nó phân phối công việc trong cụm hoặc bản đồ, sau đó tổ chức và giảm kết quả từ các node thành phản hồi cho một truy vấn. Nhiều mô hình xử lý khác có sẵn cho version 2.x của Hadoop.
Các cụm Hadoop tương đối phức tạp để cài đặt , vì vậy dự án bao gồm một chế độ độc lập phù hợp để tìm hiểu về Hadoop, thực hiện các thao tác đơn giản và gỡ lỗi.
Trong hướng dẫn này, ta sẽ cài đặt Hadoop ở chế độ độc lập và chạy một trong các chương trình MapReduce ví dụ mà nó bao gồm để xác minh cài đặt.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
-   Server  Ubuntu 16.04 với  user  không phải root có  quyền  sudo: Bạn có thể tìm hiểu thêm về cách cài đặt user có các quyền này trong hướng dẫn Cài đặt server ban đầu với Ubuntu 16.04 của ta .
Khi bạn đã hoàn thành yêu cầu này, bạn đã sẵn sàng cài đặt Hadoop và các phụ thuộc của nó.
Trước khi bắt đầu, bạn cũng có thể cần xem Giới thiệu về các khái niệm và thuật ngữ dữ liệu lớn hoặc Giới thiệu về Hadoop
Bước 1 - Cài đặt Java
Để bắt đầu, ta sẽ cập nhật danh sách gói của bạn :
- sudo apt-get update 
Tiếp theo, ta sẽ cài đặt OpenJDK, Bộ phát triển Java mặc định trên Ubuntu 16.04.
- sudo apt-get install default-jdk 
Sau khi cài đặt xong, hãy kiểm tra version .
- java -version 
Outputopenjdk version "1.8.0_91" OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14) OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) Đầu ra này xác minh OpenJDK đã được cài đặt thành công.
Bước 2 - Cài đặt Hadoop
Với Java tại chỗ, ta sẽ truy cập trang Bản phát hành Apache Hadoop để tìm bản phát hành ổn định mới nhất . Làm theo binary cho bản phát hành hiện tại:
Trên trang tiếp theo, nhấp chuột phải và sao chép liên kết cho bản binary phát hành ổn định mới nhất.
 Trên  server ,  ta  sẽ sử dụng wget để tìm nạp nó:
- wget http://apache.mirrors.tds.net/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz 
Lưu ý: Trang web Apache sẽ tự động chuyển hướng bạn đến máy nhân bản tốt nhất, vì vậy URL của bạn có thể không  trùng với  URL ở trên.
Để đảm bảo file ta đã download không bị thay đổi, ta sẽ kiểm tra nhanh bằng SHA-256. Trả lại trang bản phát hành , sau đó nhấp vào liên kết Apache:
 Nhập folder  cho version  bạn đã  download : 
 Cuối cùng, định vị file  .mds cho bản phát hành bạn đã  download , sau đó sao chép liên kết cho file  tương ứng: 
   ,  ta  sẽ nhấp chuột phải để sao chép vị trí file , sau đó sử dụng wget để chuyển file :
- wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz.mds 
Sau đó chạy xác minh:
- shasum -a 256 hadoop-2.7.3.tar.gz 
Outputd489df3808244b906eb38f4d081ba49e50c4603db03efd5e594a1e98b09259c2  hadoop-2.7.3.tar.gz So sánh giá trị này với giá trị SHA-256 trong file  .mds :
- cat hadoop-2.7.3.tar.gz.mds 
... hadoop-2.7.3.tar.gz: SHA256 = D489DF38 08244B90 6EB38F4D 081BA49E 50C4603D B03EFD5E 594A1E98 B09259C2 ... Bạn có thể an toàn bỏ qua sự khác biệt trong trường hợp và khoảng trống. Đầu ra của lệnh mà ta đã chạy đối với file ta đã download từ máy nhân bản phải trùng với giá trị trong file ta đã download từ apache.org.
 Bây giờ  ta  đã  xác minh  file  không bị hỏng hoặc thay đổi,  ta  sẽ sử dụng lệnh tar với cờ -x để  extract , -z để  extract , -v cho  kết quả  dài dòng và -f để chỉ định rằng  ta  ' đang  extract  từ một file . Sử dụng hoàn thành tab hoặc thay thế số version  chính xác trong lệnh bên dưới:
- tar -xzvf hadoop-2.7.3.tar.gz 
Cuối cùng,  ta  sẽ di chuyển các file  đã  extract  vào /usr/local , nơi thích hợp cho phần mềm được cài đặt local . Thay đổi số version , nếu cần, để  trùng với  version  bạn đã  download .
- sudo mv hadoop-2.7.3 /usr/local/hadoop 
Với phần mềm tại chỗ, ta đã sẵn sàng để cấu hình môi trường của nó.
Bước 3 - Cấu hình Trang chủ Java của Hadoop
Hadoop yêu cầu bạn đặt đường dẫn đến Java, dưới dạng một biến môi trường hoặc trong file cấu hình Hadoop.
 Đường dẫn đến Java, /usr/bin/java là một  softlink  đến /etc/alternatives/java , đến lượt nó, đây là một  softlink  đến binary  Java mặc định.  Ta  sẽ sử dụng readlink với -f cờ để làm theo tất cả các  softlink  trong mỗi phần của con đường, một cách đệ quy. Sau đó,  ta  sẽ sử dụng sed để cắt bin/java khỏi  kết quả  để cung cấp cho  ta  giá trị chính xác cho JAVA_HOME .
Để tìm đường dẫn Java mặc định
- readlink -f /usr/bin/java | sed "s:bin/java::" 
Output/usr/lib/jvm/java-8-openjdk-amd64/jre/ Bạn có thể sao chép  kết quả  này để đặt trang chủ Java của Hadoop thành version  cụ thể này, điều này  đảm bảo  nếu Java mặc định thay đổi, giá trị này sẽ không. Ngoài ra, bạn có thể sử dụng động lệnh readlink trong file  để Hadoop sẽ tự động sử dụng bất kỳ version  Java nào được đặt làm mặc định của hệ thống.
 Để bắt đầu, hãy mở hadoop-env.sh :
- sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh 
Sau đó, chọn một trong các tùy chọn sau:
Tùy chọn 1: Đặt giá trị tĩnh
 . . . #export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/  . . .  Tùy chọn 2: Sử dụng Readlink để Đặt Giá trị Động
 . . . #export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")  . . .  Lưu ý: Đối với Hadoop, giá trị của JAVA_HOME trong hadoop-env.sh sẽ overrides  bất kỳ giá trị nào được đặt trong môi trường bởi /etc/profile hoặc trong profile của  user .
Bước 4 - Chạy Hadoop
Bây giờ ta có thể chạy Hadoop:
- /usr/local/hadoop/bin/hadoop 
OutputUsage: hadoop [--config confdir] [COMMAND | CLASSNAME]   CLASSNAME            run the class named CLASSNAME  or   where COMMAND is one of:   fs                   run a generic filesystem user client   version              print the version   jar <jar>            run a jar file                        note: please use "yarn jar" to launch                              YARN applications, not this command.   checknative [-a|-h]  check native hadoop and compression libraries availability   distcp <srcurl> <desturl> copy file or directories recursively   archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive   classpath            prints the class path needed to get the   credential           interact with credential providers                        Hadoop jar and the required libraries   daemonlog            get/set the log level for each daemon Trợ giúp  nghĩa là   ta  đã  cấu hình  thành công Hadoop để chạy ở chế độ độc lập.  Ta  sẽ  đảm bảo  nó hoạt động bình thường bằng cách chạy chương trình MapReduce mẫu mà nó vận hành. Để làm như vậy, hãy tạo một folder  được gọi là input trong folder  chính của  ta  và sao chép các file  cấu hình của Hadoop vào đó để sử dụng các file  đó làm dữ liệu của  ta .
- mkdir ~/input 
- cp /usr/local/hadoop/etc/hadoop/*.xml ~/input 
Tiếp theo,  ta  có thể sử dụng lệnh sau để chạy chương trình MapReduce hadoop-mapreduce-examples , một repository  Java với một số tùy chọn.  Ta  sẽ gọi chương trình grep của nó, một trong nhiều ví dụ có trong hadoop-mapreduce-examples , tiếp theo là folder  input , input và folder   kết quả  grep_example . Chương trình Grep MapReduce sẽ đếm các kết quả phù hợp của một từ theo nghĩa đen hoặc biểu thức chính quy. Cuối cùng,  ta  sẽ cung cấp một biểu thức chính quy để tìm các lần xuất hiện của từ principal bên trong hoặc ở cuối câu khai báo. Biểu thức có phân biệt chữ hoa chữ thường, vì vậy  ta  sẽ không tìm thấy từ nếu nó được viết hoa ở đầu câu:
- /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep ~/input ~/grep_example 'principal[.]*' 
Khi nhiệm vụ hoàn thành, nó cung cấp một bản tóm tắt về những gì đã được xử lý và các lỗi mà nó đã gặp phải, nhưng điều này không chứa kết quả thực tế.
Output . . .         File System Counters                 FILE: Number of bytes read=1247674                 FILE: Number of bytes written=2324248                 FILE: Number of read operations=0                 FILE: Number of large read operations=0                 FILE: Number of write operations=0         Map-Reduce Framework                 Map input records=2                 Map output records=2                 Map output bytes=37                 Map output materialized bytes=47                 Input split bytes=114                 Combine input records=0                 Combine output records=0                 Reduce input groups=2                 Reduce shuffle bytes=47                 Reduce input records=2                 Reduce output records=2                 Spilled Records=4                 Shuffled Maps =1                 Failed Shuffles=0                 Merged Map outputs=1                 GC time elapsed (ms)=61                 Total committed heap usage (bytes)=263520256         Shuffle Errors                 BAD_ID=0                 CONNECTION=0                 IO_ERROR=0                 WRONG_LENGTH=0                 WRONG_MAP=0                 WRONG_REDUCE=0         File Input Format Counters                 Bytes Read=151         File Output Format Counters                 Bytes Written=37 Lưu ý: Nếu folder kết quả đã tồn tại, chương trình sẽ không thành công và thay vì xem bản tóm tắt, phần xuất hiện sẽ giống như sau:
Output . . .         at java.lang.reflect.Method.invoke(Method.java:498)         at org.apache.hadoop.util.RunJar.run(RunJar.java:221)         at org.apache.hadoop.util.RunJar.main(RunJar.java:136) Kết quả được lưu trữ trong folder   kết quả  và có thể được kiểm tra bằng cách chạy cat trên folder   kết quả :
- cat ~/grep_example/* 
Output6       principal 1       principal. Tác vụ MapReduce đã tìm thấy một lần xuất hiện của từ principal theo sau là một dấu chấm và sáu lần xuất hiện ở vị trí không. Việc chạy chương trình ví dụ đã  xác minh  cài đặt độc lập của  ta  đang hoạt động bình thường và  user  không có  quyền  trên hệ thống có thể chạy Hadoop để thăm dò hoặc gỡ lỗi.
Kết luận
Trong hướng dẫn này, ta đã cài đặt Hadoop ở chế độ độc lập và xác minh nó bằng cách chạy một chương trình ví dụ mà nó cung cấp. Để tìm hiểu cách viết các chương trình MapReduce của bạn , bạn có thể cần xem hướng dẫn MapReduce của Apache Hadoop, hướng dẫn này đi qua đoạn mã đằng sau ví dụ. Khi đã sẵn sàng cài đặt một cụm, hãy xem hướng dẫn Cài đặt Cụm Hadoop của Apache Foundation.
Các tin liên quan
Cách cài đặt và cấu hình NATS trên Ubuntu 16.042016-10-07
Cách kết nối Internet of Things của bạn với Node-RED trên Ubuntu 16.04
2016-09-23
Cách cài đặt R trên Ubuntu 16.04
2016-09-19
Cách cài đặt Gói R bằng cách sử dụng devtools trên Ubuntu 16.04
2016-09-17
Cách cài đặt Gói R bằng cách sử dụng devtools trên Ubuntu 16.04
2016-09-17
Cách sử dụng LVM để quản lý thiết bị lưu trữ trên Ubuntu 16.04
2016-09-14
Cách cài đặt và cấu hình PostGIS trên Ubuntu 14.04
2016-09-01
Cách thiết lập vsftpd cho Tải xuống ẩn danh trên Ubuntu 16.04
2016-08-25
Cách triển khai ứng dụng Node.js bằng Terraform trên Ubuntu 14.04
2016-08-25
Cách cấu hình Cụm Galera với MariaDB 10.1 trên server Ubuntu 16.04
2016-08-19
 

