Cài đặt cụm máy Hadoop

Một phần của tài liệu Thuật toán đánh chỉ mục ngược với mapreduce và ứng dụng trong việc đánh giá ý kiến của học sinh hòa bình trên mạng xã hội (Trang 63 - 68)

CHƯƠNG 3 THỬ NGHIỆM THUẬT TOÁN ĐÁNH GIÁ Ý KIẾN TRÊN MẠNG XÃ HỘI

3.4. Solr trên Hadoop và tìm kiếm thử nghiệm

3.4.1. Cài đặt cụm máy Hadoop

Phần này trình bày cách xây dựng một cụm máy Hadoop hoàn chỉnh với 2 máy trong môi trường ảo hóa. Máy ảo sẽ đóng vai trò là máy khách và máy chính sẽ đóng vai trò máy chủ. Quá trình cài đặt trải qua các bước sau:

Bước 1: Chuẩn bị Cài đặt java

Hadoop được viết bằng Java, vì vậy để chạy được Hadoop, tại mỗi máy trên cụm đều phải được cài đặt môi trường Java (báo cáo này sử dụng Java phiên bản 1.8) Kiểm tra cài đặt môi trường java bằng câu lệnh như sau:

$ java -version

java version "1.8.0_91"

Java (TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot (TM) 64bit server VM (build 25.91-b14, mixed mode)

Nếu kết quả hiện thị có dạng tương tự như trên thì điều này có nghĩa máy tính đã được cài đặt môi trường Java.

Cài đặt mạng

Hadoop sử dụng IP4 vì vậy sau khi hoàn tất bước 2 (cài đặt Hadoop) ta sẽ thực hiện vô hiệu hóa IP6 khi máy chạy Hadoop. Việc này được thực hiện bằng cách thêm dòng sau vào tệp tin có đường dẫn là /usr/local/hadoop/conf/hadoop-env.sh:

export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true

Tiếp theo, để đơn giản ta sẽ gán địa chỉ IP cho máy chủ là 192.168.18.1 và máy

khách là 192.168.18.128. Tên của 2 máy này cũng được xác định ở bước này, 2 máy sẽ có tên gọi là MAY_CHU và MAY_KHACH. Mở tệp hosts ở đường dẫn /etc/hosts trên cả 2 máy và thêm 2 dòng sau vào cuối nội dung của tệp:

192.168.18.1 MAY_CHU 192.168.18.128 MAY_KHACH

Người dùng trên các máy

Trên cả 2 máy ta đều sử dụng người dùng có tên là hduser để đơn giản và để tránh việc Hadoop xung đột với các chương trình khác đang chạy trên máy. Việc tạo người dùng hduser trên hệ thống của cả 2 máy được thực hiện như sau:

$ sudo addgroup hadoop

$ sudo adduser --ingroup hadoop hduser

Cấu hình SSH

Hadoop sử dụng SSH để điều khiển việc chạy các tiến trình trên các máy khách từ máy chủ. Theo cơ chế trên, máy chủ sẽ thực hiện kết nối với các máy khách một cách tự động thông qua qua dịch vụ SSH trên máy khách này. Do vậy, trên mỗi máy khách cần được cài đặt SSH và SSH trên mỗi máy khách này cần được cấu hình để cho phép các tiến trình chạy với quyền của người dùng Hadoop (hduser) có thể đăng nhập vào mà không cần điền mật khẩu. Nếu máy chưa được cài đặt SSH ta phải cài đặt gói OpenSsh cho máy bằng câu lệnh sau:

$ sudo apt-get install openssh-server

Sau khi cài đặt SSH thành công, ta thực hiện cấu hình cho cả 2 máy để cho phép các tiến trình hoạt động dưới quyền hdsuer mà không cần điền mật khẩu:

$ su - hduser

$ ssh-keygen -t rsa -P ""

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

Trên máy chủ ta thực hiện câu lệnh như sau để ghi đè mật khẩu lên cả máy chủ và máy khách:

$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@MAY_KHACH

$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@MAY_CHU

Sau khi đã cấu hình thành công mật khẩu ta thực hiện kết nối với máy chủ với máy chủ và máy chủ với máy khách như sau:

$ ssh hduser@MAY_CHU

$ ssh hduser@MAY_KHACH

Bước 2: Cài đặt hadoop

Bước này sẽ hướng dẫn cấu hình cụm máy Hadoop với cấu trúc khách – chủ.

Máy chủ sẽ đóng 2 vai trò: vai trò điều khiển đông thời với vai trò lưu trữ và thực hiện tác vụ con như một máy khách. Máy khách sẽ đóng vai trò lưu trữ và xử lý tác vụ con.

Ta thực hiện các bước sau trên tất cả các máy:

 Tải Hadoop 1.2.0 từ trang chủ của Hadoop về máy, đặt tệp tin cài đặt hadoop vào thư mục ở địa chỉ /usr/local. Ta thực hiện các câu lệnh sau:

$ cd /usr/local

$ sudo tar xzf hadoop-1.2.0.tar.gz

$ sudo mv hadoop-1.2.0 hadoop

 Mở tệp tin $HOME/.bashrc và thêm các dòng sau vào cuối nội dung của tệp tin ở địa chỉ $HOME/.bashrc:

# Set Hadoop-related environment variables export HADOOP_HOME=/usr/local/hadoop

# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

# Some convenient aliases and functions for running Hadoop-related commands

unalias fs &> /dev/null alias fs="hadoop fs"

unalias hls &> /dev/null alias hls="fs -ls"

# If you have LZO compression enabled in your Hadoop cluster and

# compress job outputs with LZOP (not covered in this tutorial):

# Conveniently inspect an LZOP compressed file from the command

# line; run via:

#

# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo

#

# Requires installed 'lzop' command.

#

lzohead () {

hadoop fs -cat $1 | lzop -dc | head -1000 | less }

# Add Hadoop bin/ directory to PATH export PATH=$PATH:$HADOOP_HOME/bin

 Thay đổi biến môi trường Java cho Hadoop bằng cách sửa tệp tin ở đường dẫn /usr/local/hadoop/conf/hadoop-env.sh như sau:

Sửa 2 dòng sau:

# The java implementation to use. Required.

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

Thành

# The java implementation to use. Required.

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

 Cấu hình thư mục trên máy tính mà Hadoop Hadoop sẽ lưu dữ liệu như sau:

$ sudo mkdir -p /app/hadoop/tmp

#...and if you want to tighten up security, chmod from 755 to 750...

$ sudo chmod 750 /app/hadoop/tmp

 Thêm các dòng sau đây vào giữa thẻ <configuration>... </configuration>

của tệp tin ở đường dẫn /usr/local/hadoop/conf/core-site.xml:

<property>

<name>hadoop.tmp.dir</name>

<value>/app/hadoop/tmp</value>

<description>A base for other temporary directories.

</description>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://MAY_CHU:54310</value>

<description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.

</description>

</property>

 Cấu hình địa chỉ của máy cũng như cổng mà công việc sẽ được thực hiện. Thêm các dòng sau đây vào giữa thẻ <configuration>...

</configuration> của tệp tin ở đường dẫn /usr/local/ hadoop/

conf/mapred-site.xml:

<property>

<name>mapred.job.tracker</name>

<value>MAY_CHU:54311</value>

<description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map

and reduce task.

</description>

</property>

 Cấu hình số lượng nhân bản mà Hadoop sẽ thực hiện để nhân bản dữ liệu bằng cách thêm các dòng sau vào giữa thẻ <configuration>...

</configuration> của tệp tin ở đường dẫn sau /usr/local/hadoop/conf/hdfs-site.xml:

<property>

<name>dfs.replication</name>

<value>2</value>

<description>Default block replication. The actual number of replications can be specified when the file is created.

The default is used if replication is not specified in create time.

</description>

</property>

 Riêng trên máy chủ ta phải cấu hình thêm như sau:

Cấu hình máy sẽ làm nhiệm vụ điều khiển ở đây là máy Chu. Trên máy chủ, ta thêm dòng sau vào tệp tin ở đường dẫn /usr/local/hadoop/conf/masters:

MAY_CHU

Ta cấu hình các máy sẽ làm nhiệm vụ làm việc ở đây cả 2 máy sẽ đóng vai trò làm việc nên ta thêm 2 dòng sau vào cuối tệp tin ở đường dẫn /usr/local/hadoop/conf/slaves.

MAY_CHU MAY_KHACH

 Trước khi bắt đầu sử dụng cụm máy Hadop này, ta phải định dạng lại HDFS thông qua máy điều khiển bằng câu lệnh như sau:

$ cd /usr/local/hadoop

$ bin/hadoop namenode -format

Chú ý rằng khi ta thực hiện câu lệnh này, tất cả dữ liệu hiện đang có trên hệ thống dữ liệu HDFS đều bị xóa bỏ.

Bước 3: Khởi động cụm máy Hadoop và kết thúc khi hoàn thành công việc

Quá trình khởi động thực hiện qua 2 bước: Khởi động HDFS và khởi động MapReduce

Thành phần điều khiển được khởi động trên máy Chu và máy lưu trữ sẽ được khởi động trên cả máy Chu và may LamViec. Chạy tệp tin

$HADOOP_HOME/bin/start-dfs.sh trên máy Chu:

$ cd $HADOOP_HOME

$ bin/start-dfs.sh

Khởi động MapReduce: Thành phần quản lý công việc con sẽ được khởi động trên máy Chu và thành phần quản lý các tác vụ con được khởi động trên cả máy Chu và máy LamViec. Chạy câu lệnh bin/start-mapred.sh trên máy chủ.

$ cd $HADOOP_HOME

$ bin/start-dfs.sh

Kiểm tra đã hoàn tất cài đặt Hadoop bằng câu lênh jps:

Trên máy chủ:

$ jps 16017 Jps 14799 NameNode 15686 TaskTracker 14880 DataNode 15596 JobTracker

14977 SecondaryNameNode

Trên máy khách:

$ jps

15183 DataNode 15897 TaskTracker 16284 Jps

Nếu kết quả như trên thì có nghĩa việc cài đặt Hadoop đã hoàn tất. Để tắt Hadoop ta thực hiện câu lệnh sau:

$ cd $HADOOP_HOME

$ bin/stop-all.sh

Một phần của tài liệu Thuật toán đánh chỉ mục ngược với mapreduce và ứng dụng trong việc đánh giá ý kiến của học sinh hòa bình trên mạng xã hội (Trang 63 - 68)

Tải bản đầy đủ (PDF)

(77 trang)