Hadoop - Thiết lập Môi trường

Hadoop được hỗ trợ bởi nền tảng GNU / Linux và các hương vị của nó. Do đó, chúng ta phải cài đặt hệ điều hành Linux để thiết lập môi trường Hadoop. Trong trường hợp bạn có hệ điều hành không phải Linux, bạn có thể cài đặt phần mềm Virtualbox trong đó và có Linux bên trong Virtualbox.

Cài đặt trước Cài đặt

Trước khi cài đặt Hadoop vào môi trường Linux, chúng ta cần thiết lập Linux bằng ssh(Vỏ an toàn). Làm theo các bước dưới đây để thiết lập môi trường Linux.

Tạo người dùng

Lúc đầu, bạn nên tạo một người dùng riêng cho Hadoop để tách hệ thống tệp Hadoop khỏi hệ thống tệp Unix. Làm theo các bước dưới đây để tạo người dùng -

  • Mở thư mục gốc bằng lệnh “su”.

  • Tạo người dùng từ tài khoản gốc bằng lệnh “useradd username”.

  • Bây giờ bạn có thể mở một tài khoản người dùng hiện có bằng lệnh “su username”.

Mở thiết bị đầu cuối Linux và nhập các lệnh sau để tạo người dùng.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd

Thiết lập SSH và tạo khóa

Thiết lập SSH được yêu cầu để thực hiện các hoạt động khác nhau trên một cụm như khởi động, dừng, các hoạt động trình bao daemon phân tán. Để xác thực những người dùng khác nhau của Hadoop, cần phải cung cấp cặp khóa công khai / riêng tư cho người dùng Hadoop và chia sẻ nó với những người dùng khác nhau.

Các lệnh sau được sử dụng để tạo cặp giá trị khóa bằng SSH. Sao chép các khóa công khai biểu mẫu id_rsa.pub vào allow_keys và cung cấp cho chủ sở hữu quyền đọc và ghi đối với tệp ủy quyền.

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys

Cài đặt Java

Java là điều kiện tiên quyết chính cho Hadoop. Trước hết, bạn nên xác minh sự tồn tại của java trong hệ thống của mình bằng lệnh “java -version”. Cú pháp của lệnh phiên bản java được đưa ra dưới đây.

$ java -version

Nếu mọi thứ theo thứ tự, nó sẽ cung cấp cho bạn kết quả sau.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Nếu java chưa được cài đặt trong hệ thống của bạn, hãy làm theo các bước dưới đây để cài đặt java.

Bước 1

Tải xuống java (JDK <phiên bản mới nhất> - X64.tar.gz) bằng cách truy cập liên kết sau www.oracle.com

Sau đó jdk-7u71-linux-x64.tar.gz sẽ được tải xuống hệ thống của bạn.

Bước 2

Nói chung, bạn sẽ tìm thấy tệp java đã tải xuống trong thư mục Tải xuống. Xác minh nó và trích xuấtjdk-7u71-linux-x64.gz sử dụng các lệnh sau.

$ cd Downloads/ 
$ ls 
jdk-7u71-linux-x64.gz 

$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz

Bước 3

Để cung cấp java cho tất cả người dùng, bạn phải di chuyển nó đến vị trí “/ usr / local /”. Mở root và nhập các lệnh sau.

$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
# exit

Bước 4

Để thiết lập PATHJAVA_HOME biến, thêm các lệnh sau vào ~/.bashrc tập tin.

export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin

Bây giờ áp dụng tất cả các thay đổi vào hệ thống đang chạy hiện tại.

$ source ~/.bashrc

Bước 5

Sử dụng các lệnh sau để định cấu hình các lựa chọn thay thế java:

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Bây giờ hãy xác minh lệnh java -version từ terminal như đã giải thích ở trên.

Tải xuống Hadoop

Tải xuống và giải nén Hadoop 2.4.1 từ nền tảng phần mềm Apache bằng các lệnh sau.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit

Chế độ hoạt động Hadoop

Khi bạn đã tải xuống Hadoop, bạn có thể vận hành cụm Hadoop của mình ở một trong ba chế độ được hỗ trợ -

  • Local/Standalone Mode - Sau khi tải xuống Hadoop trong hệ thống của bạn, theo mặc định, nó được định cấu hình ở chế độ độc lập và có thể chạy như một quy trình java duy nhất.

  • Pseudo Distributed Mode- Nó là một mô phỏng phân tán trên một máy. Mỗi daemon Hadoop như hdfs, fiber, MapReduce, v.v., sẽ chạy như một quy trình java riêng biệt. Chế độ này rất hữu ích cho sự phát triển.

  • Fully Distributed Mode- Chế độ này được phân phối đầy đủ với tối thiểu hai máy trở lên như một cụm. Chúng ta sẽ tìm hiểu chi tiết về chế độ này trong các chương tới.

Cài đặt Hadoop ở Chế độ độc lập

Ở đây chúng ta sẽ thảo luận về việc cài đặt Hadoop 2.4.1 ở chế độ độc lập.

Không có daemon nào đang chạy và mọi thứ đều chạy trong một JVM duy nhất. Chế độ độc lập phù hợp để chạy các chương trình MapReduce trong quá trình phát triển, vì nó dễ dàng kiểm tra và gỡ lỗi chúng.

Thiết lập Hadoop

Bạn có thể đặt các biến môi trường Hadoop bằng cách thêm các lệnh sau vào ~/.bashrc tập tin.

export HADOOP_HOME=/usr/local/hadoop

Trước khi tiếp tục, bạn cần đảm bảo rằng Hadoop đang hoạt động tốt. Chỉ cần đưa ra lệnh sau:

$ hadoop version

Nếu mọi thứ đều ổn với thiết lập của bạn, thì bạn sẽ thấy kết quả sau:

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4

Nó có nghĩa là thiết lập chế độ độc lập của Hadoop của bạn đang hoạt động tốt. Theo mặc định, Hadoop được định cấu hình để chạy ở chế độ không phân phối trên một máy.

Thí dụ

Hãy kiểm tra một ví dụ đơn giản của Hadoop. Cài đặt Hadoop cung cấp tệp jar MapReduce ví dụ sau, cung cấp chức năng cơ bản của MapReduce và có thể được sử dụng để tính toán, chẳng hạn như giá trị Pi, số lượng từ trong danh sách tệp nhất định, v.v.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

Hãy có một thư mục đầu vào mà chúng ta sẽ đẩy một vài tệp và yêu cầu của chúng ta là đếm tổng số từ trong các tệp đó. Để tính tổng số từ, chúng tôi không cần phải viết MapReduce của mình, miễn là tệp .jar chứa phần triển khai cho số từ. Bạn có thể thử các ví dụ khác bằng cách sử dụng cùng một tệp .jar; chỉ cần đưa ra các lệnh sau để kiểm tra các chương trình chức năng MapReduce được hỗ trợ bởi tệp hadoop-mapreduce -amples-2.2.0.jar.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar

Bước 1

Tạo các tệp nội dung tạm thời trong thư mục đầu vào. Bạn có thể tạo thư mục đầu vào này ở bất kỳ đâu bạn muốn làm việc.

$ mkdir input 
$ cp $HADOOP_HOME/*.txt input 
$ ls -l input

Nó sẽ cung cấp các tệp sau trong thư mục đầu vào của bạn -

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt

Các tệp này đã được sao chép từ thư mục chính cài đặt Hadoop. Đối với thử nghiệm của mình, bạn có thể có các bộ tệp lớn và khác nhau.

Bước 2

Hãy bắt đầu quá trình Hadoop để đếm tổng số từ trong tất cả các tệp có sẵn trong thư mục đầu vào, như sau:

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input output

Bước 3

Bước 2 sẽ thực hiện xử lý theo yêu cầu và lưu đầu ra trong tệp output / part-r00000, bạn có thể kiểm tra bằng cách sử dụng -

$cat output/*

Nó sẽ liệt kê tất cả các từ cùng với tổng số của chúng có sẵn trong tất cả các tệp có sẵn trong thư mục đầu vào.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Cài đặt Hadoop trong Chế độ phân tán giả

Làm theo các bước dưới đây để cài đặt Hadoop 2.4.1 ở chế độ giả phân phối.

Bước 1 - Thiết lập Hadoop

Bạn có thể đặt các biến môi trường Hadoop bằng cách thêm các lệnh sau vào ~/.bashrc tập tin.

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 

export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME

Bây giờ áp dụng tất cả các thay đổi vào hệ thống đang chạy hiện tại.

$ source ~/.bashrc

Bước 2 - Cấu hình Hadoop

Bạn có thể tìm thấy tất cả các tệp cấu hình Hadoop ở vị trí “$ HADOOP_HOME / etc / hadoop”. Bắt buộc phải thực hiện các thay đổi trong các tệp cấu hình đó theo cơ sở hạ tầng Hadoop của bạn.

$ cd $HADOOP_HOME/etc/hadoop

Để phát triển các chương trình Hadoop trong java, bạn phải đặt lại các biến môi trường java trong hadoop-env.sh tập tin bằng cách thay thế JAVA_HOME giá trị với vị trí của java trong hệ thống của bạn.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Sau đây là danh sách các tệp mà bạn phải chỉnh sửa để cấu hình Hadoop.

core-site.xml

Các core-site.xml tệp chứa thông tin như số cổng được sử dụng cho cá thể Hadoop, bộ nhớ được cấp phát cho hệ thống tệp, giới hạn bộ nhớ để lưu trữ dữ liệu và kích thước của bộ đệm Đọc / Ghi.

Mở core-site.xml và thêm các thuộc tính sau vào giữa các thẻ <configuration>, </configuration>.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
</configuration>

hdfs-site.xml

Các hdfs-site.xmltệp chứa thông tin như giá trị của dữ liệu sao chép, đường dẫn nút tên và đường dẫn nút dữ liệu của hệ thống tệp cục bộ của bạn. Nó có nghĩa là nơi bạn muốn lưu trữ cơ sở hạ tầng Hadoop.

Hãy để chúng tôi giả sử dữ liệu sau đây.

dfs.replication (data replication value) = 1 

(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Mở tệp này và thêm các thuộc tính sau vào giữa các thẻ <configuration> </configuration> trong tệp này.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

Note - Trong tệp trên, tất cả các giá trị thuộc tính đều do người dùng xác định và bạn có thể thực hiện thay đổi theo cơ sở hạ tầng Hadoop của mình.

yarn-site.xml

Tệp này được sử dụng để cấu hình sợi thành Hadoop. Mở tệp fiber-site.xml và thêm các thuộc tính sau vào giữa các thẻ <configuration>, </configuration> trong tệp này.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

Tệp này được sử dụng để chỉ định khung MapReduce mà chúng tôi đang sử dụng. Theo mặc định, Hadoop chứa một mẫu sợi-site.xml. Trước hết, cần phải sao chép tệp từmapred-site.xml.template đến mapred-site.xml sử dụng lệnh sau.

$ cp mapred-site.xml.template mapred-site.xml

Mở mapred-site.xml và thêm các thuộc tính sau vào giữa các thẻ <configuration>, </configuration> trong tệp này.

<configuration>
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Xác minh cài đặt Hadoop

Các bước sau được sử dụng để xác minh cài đặt Hadoop.

Bước 1 - Thiết lập nút đặt tên

Thiết lập nút tên bằng lệnh “hdfs namenode -format” như sau.

$ cd ~ 
$ hdfs namenode -format

Kết quả mong đợi như sau.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Bước 2 - Xác minh dfs Hadoop

Lệnh sau được sử dụng để bắt đầu dfs. Thực thi lệnh này sẽ khởi động hệ thống tệp Hadoop của bạn.

$ start-dfs.sh

Sản lượng dự kiến ​​như sau:

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Bước 3 - Xác minh Tập lệnh Sợi

Lệnh sau được sử dụng để bắt đầu tập lệnh sợi. Việc thực thi lệnh này sẽ bắt đầu các daemon sợi của bạn.

$ start-yarn.sh

Sản lượng dự kiến ​​như sau:

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Bước 4 - Truy cập Hadoop trên trình duyệt

Số cổng mặc định để truy cập Hadoop là 50070. Sử dụng url sau để tải các dịch vụ Hadoop trên trình duyệt.

http://localhost:50070/

Bước 5 - Xác minh tất cả các ứng dụng cho cụm

Số cổng mặc định để truy cập tất cả các ứng dụng của cụm là 8088. Sử dụng url sau để truy cập dịch vụ này.

http://localhost:8088/