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 PATH và JAVA_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/