Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
3,02 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Lê Đinh Hợp lu an va Thuâ ̣t toán đánh mục ngược với MapReduce n ứng du ̣ng việc đánh giá ý kiến to p ie gh tn học sinh Hịa Bình mạng xã hội w Khoa học máy tính Mã số 60 48 01 01 d oa nl Chuyên ngành: ll u nf va an lu : oi m z at nh Người hướng dẫn khoa học: PGS TS Đỗ Trung Tuấn z m co l gm @ an Lu Thái Nguyên, 12 - 2016 n va ac th i si Lời cam đoan Tôi xin cam đoan: Những kết nghiên cứu trình bày luận văn hồn tồn trung thực, tơi, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hồn toàn chịu trách nhiệm trước pháp luật TÁC GIẢ LUẬN VĂN Lê Đinh Hợp lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th ii si Lời cám ơn Tôi xin chân thành cảm ơn Trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên tạo điều kiện thuận lợi cho tơi hồn thành khóa học Tôi xin chân thành cảm ơn Thầy Cô giáo – Các nhà khoa học trực tiếp giảng dạy truyền đạt kiến thức chuyên ngành Khoa học máy tính cho tơi tháng năm học tập trường Đặc biệt tơi xin bày tỏ lịng biết ơn chân thành sâu sắc tới PGS TS Đỗ Trung Tuấn tận tình hướng dẫn, dìu dắt bảo cho kiến thức chuyên môn thiết thực dẫn khoa học quý báu để tơi hồn thành luận văn lu Luận văn cịn nhiều thiếu sót, mong thầy cô giáo hội đồng chấm luận văn xem xét, góp ý kiến để luận văn hồn thiện an n va Tôi xin chân thành cảm ơn! tn to p ie gh Thái Nguyên, tháng 12 năm 2016 d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th iii si Mục lục Lời cam đoan i Lời cám ơn iii Mục lục iv Danh sách từ viết tắt vi Danh mục hình vẽ, bảng biểu vii Chương mở đầu Đặt vấn đề .9 Đối tượng phạm vi nghiên cứu 11 Hướng thực đề tài .11 lu Những nội dung nghiên cứu 11 an va CHƯƠNG MƠ HÌNH MapReduce 12 n 1.1 Tổng quan MapReduce 12 tn to 1.1.1 Sự quan trọng MapReduce 12 gh p ie 1.1.2 Các ý tưởng MapReduce 13 w 1.1.3 Cấu trúc liệu MapReduce 15 oa nl 1.1.4 Mapper Reducer 15 d 1.1.5 Partitioner Combiner 17 lu an 1.2 Bộ khung thực thi 19 u nf va 1.2.1 Lập lịch 19 ll 1.2.2 Di chuyển liệu mã lệnh 19 m oi 1.2.3 Đồng hóa .20 z at nh 1.2.4 Xử lý lỗi 20 1.3 Hệ thống file phân tán 20 z gm @ 1.3.1 Kiến trúc HDFS 21 1.3.2 Nhiệm vụ NameNode 21 l m co 1.3.3 Nhiệm vụ DataNode 22 1.3.4 Nhiệm vụ Secondary NameNode 23 an Lu CHƯƠNG 2THUẬT TOÁN XỬ LÝ DỮ LIỆU VĂN BẢN VỚI MapReduce 25 n va 2.1 Thiết kế thuật toán MapReduce .25 ac th iv si 2.1.1 Gộp lớn cục 26 2.1.2 Bộ hai ba 30 2.1.3 Tính toán tần số tương đối 33 2.1.4 Sắp xếp thứ cấp 36 2.2 Thuật tốn tính mục ngược để tìm kiếm liệu văn .36 2.2.1 Dị tìm Web 37 2.2.2 Thuật toán mục ngược 39 2.2.3 Cài đặt theo 41 2.2.4 Cài đặt thuật toán cải tiến 43 2.2.5 Nén mục 45 lu 2.3 Về tìm kiếm 52 an n va CHƯƠNG THỬ NGHIỆM THUẬT TOÁN ĐÁNH GIÁ Ý KIẾN TRÊN MẠNG XÃ HỘI 56 gh tn to 3.1 Mã nguồn mở Solr 56 p ie 3.1.1 Giới thiệu 56 3.1.2 Các tính Solr: 56 nl w 3.2 Mã nguồn mở Nutch .56 d oa 3.2.1 Các lý để tự xây dựng Search Engine 56 an lu 3.2.2 Các tính Nutch 57 u nf va 3.3 API biểu đồ Facebook 58 3.4 Solr Hadoop tìm kiếm thử nghiệm 60 ll oi m 3.4.1 Sơ đồ 60 z at nh 3.4.1 Cài đặt cụm máy Hadoop 62 3.4.2 Cài đặt Nutch tích hợp với Solr 67 z 3.4.3 Thu thập liệu .69 @ l gm 3.5 Thực tìm kiếm thử nghiệm tập mục thu thập 72 Kết luận 75 m co an Lu n va ac th v si Danh sách từ viết tắt Công nghệ Thông tin HDFS Hadoop Distributed File System URL Uniform Resource Locator HTML HyperText Markup Language LISP LISt Processing ML Markup Language HPC High-Performance Computing NAS Network-Attach Storage SAN Storage Area Network GFS Google File System SPOF Single Point Of Failure lu CNTT an n va p ie gh tn to Secondary NameNode Representational State Transfer va an Parallel Random Access Machine ll u nf PRAM lu REST Associated Press Wordstream d APW oa nl w SNN Bulk Synchronous Parallel oi m BSP z at nh z m co l gm @ an Lu n va ac th vi si Danh mục hình vẽ, bảng biểu Hình 1.1 Mơ hình chia để trị .14 Hình 1.2 Hàm Map Fold Functional Programming 15 Hình 1.3 Hai pha Map Reduce MapReduce job 16 Hình 1.4 Mơ hình MapReduce đầy đủ thành phần .19 Hình 1.5 Kiến trúc HDFS 21 Hình 1.6 Vai trị NameNode DataNode HDFS 23 lu Hình 1.7 Kiến trúc HDFS đầy đủ 23 an Hình 2.1 Bảo tồn trạng thái Hadoop 26 va n Hình 2.2 Tiến trình hoạt động chương trình WordCount 27 gh tn to Hình 2.3 Thời gian chạy thuật tốn "pairs" "stripes" 32 Hình 2.4 Ví dụ minh họa cặp giá trị 35 ie p Hình 2.5 Minh họa đơn giản mục ngược 40 oa nl w Hình 2.6: Minh họa đơn giản sở thuật toán lập mục ngược MapReduce với ba mapper hai reducer 43 d Hình 2.7 Mười số nguyên dương nguyên phân, γ, mã Golomb (b = 5, 10) 49 va an lu u nf Hình 2.8 Ma trận Term-document .53 ll Hình 3.1 Sơ đồ hoạt động Nutch sử dụng Crawler 57 m oi Hình 3.2 Sơ đồ đầy đủ Nutch sử dụng Search Engine 58 z at nh Hình 3.3 Facebook 58 Hình 3.4 Trao đổi qua API 59 z gm @ Hình 3.5: Mơ hình tổng quan hệ thống khảo sát 60 l Hình 3.6: Sơ đồ giai đoạn đánh mục 61 m co Hình 3.7: đánh mục với MapRedece Solr .61 an Lu Hình 3.8: Giao diện làm việc Solr 68 Hình 3.9: Giao diện làm việc Facebook Graph API 69 n va Hình 3.10: Access Token trình Facebook Graph API 70 ac th vii si Hình 3.11: Thu thập liệu từ trang mạng trường THPT Hoàng Văn Thụ 70 Hình 3.12:Giao diên theo dõi trình làm việc MapReduce 71 Bảng 3.2: Kết thu thập liệu chế độ 72 Hình 3.13: Giao diện trang web tìm kiếm Solr 73 Bảng 3.3: Một số kết truy vấn theo chủ đề 73 lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th viii si Chương mở đầu Đặt vấn đề Trong thời đại nay, công nghệ thông tin ứng dụng lĩnh vực sống, với hệ thống máy tính người ta làm nhiều cơng việc, tiết kiệm thời gian, công sức tiền bạc Với phát triển vượt bậc Internet nay, lượng thông tin ngày nhiều, tăng trưởng nói tính cấp số nhân, theo nghiên cứu khoảng năm lượng tri thức nhân loại tăng gấp đôi, với lượng thông tin đồ sộ mạng việc tìm kiếm khai thác thông tin công việc quan trọng, mang lại nhiều lợi ích khoa học kinh tế lu an n va Như biết ngày thông tin đưa lên trang mạng xã hội dạng Posts nhiều người dùng để lại nhận xét (comments) thông tin đưa lên, ta thấy kho thơng tin vơ hưu ích, ta tìm kiếm phân loại liệu ấy, thu kết khảo sát cần thiết phục vụ cho hoạt động nghiên cứu hoạt động sản xuất kinh doanh Kết khảo sát tỉ lệ "thích" (like) khơng có ý kiến vấn đề đưa Việc tìm kiếm xử lý tổng hợp thơng tin hưu ích cần phải có mơ hình đáp ứng nhu cầu việc làm việc lượng liệu lớn tốc độ cao p ie gh tn to Cùng với đời Internet, xuất phát triển không ngừng lĩnh vực thương mại điện tử, lĩnh vực nghiên cứu xã hội khiến cho việc xúc tiến hoạt động kinh doanh nghiên cứu, quảng bá sản phẩm dịch vụ diễn khắp kênh thông tin xã hội, đặc biêt Internet d oa nl w ll u nf va an lu oi m Mơ hình MapReduce mơ hình lập trình giúp ứng dụng xử lý nhanh lượng liệu lớn liệu trện máy phần tán song song, độc lập với từ giúp rút ngắn thời gian xử lý tồn liệu MapReduce chạy phần cứng thơng thường (commodity hardware), khơng địi hỏi server chạy MapReduce phải máy tính có cấu hình đặc biết mạnh mẽ Do chi phí triển khai Mapreduce rẻ z at nh z gm @ m co l MapReduce làm đơn giản hóa giải thuật tính tốn phân tán Với MapReduce, bạn cần cung cấp hai hàm Map Reduce với số thành phần xử lý liệu đầu vào Do vậy, nhà phát triển ứng dụng phần tán tập trung nhiều cho phần logic úng dụng, bỏ qua chi tiết phức an Lu n va ac th si tạp việc phân tán xử lý Sự đời MapReduce mở cho doanh nghiện trung tâm nhiên cứu hội xử lý nguồn liệu đồ sộ với chi phí thấp thời gian nhanh Hiện nay, có nhiều cơng ty lớn triển khai sử dụng mơ hình MapReduce việc kinh doanh khảo sát Công ty Amazon sử dụng MapReduce để xử lý file log trình mua hàng khách hàng để dự đoán xu hướng mua hàng Facebook xử lý khối lượng 10 tỷ hình ảnh mà hộ lưu trữ để thu thập thơng tin hình ảnh, thu thập 15 terabyte liệu ngày vào kho liệu quy mô Petabyte để thực việc khảo sát đánh giá xu hướng người dùng lu an n va p ie gh tn to Việc nghiên cứu xu hướng, đánh giá khảo sát vấn đề quy mô lớn vấn đề gặp nhiều khó khăn Trước nhà khảo sát, đánh giá ý kiến đối tượng nghiên cứu thường sử dụng phương pháp thủ công tốn nhiều thời gian để tổng hợp tin tức, chẳng hạn muốn khảo sát ý kiến học sinh số thay đổi chương trình học, người ta khơng thể lựa chọn hỏi ý kiến tất học sinh mà lựa chọn số địa điểm đặc trưng để thực khảo sát, đôi khi, kết khảo sát khơng mang tính khách quan tâm lý e ngại em học sinh Và khảo sát này, phải thực vịng vài năm có kết tổng hợp Như nhiều công sức, cải thời gian Với việc thực trạng hầu hết em lứa tuổi học sinh, sinh viên biết sử dụng thích tham gia mạng xã hội Internet ( đặc biết Facebook) việc tìm kiếm từ khóa có tần suất xuất cao phản ánh xu hướng, ý kiến người dùng việc khảo sát thủ công nhiều việc nhận kết khảo sát ý kiến Tổng hợp thông tin máy tính với hỗ trợ mơ hình MapReduce giúp thực q trình đánh giá, khảo sát ý kiến nhanh chóng mang lại hiệu quả, tiết kiệm nhiều thời gian tiền bạc d oa nl w ll u nf va an lu oi m z at nh z Với nhu cầu cấp thiết trên, học viên thực nghiên cứu kỹ thuật mục ngược (Inverted Indexing) phương pháp thực quét lần văn sau lập danh sách thuật ngữ (từ, cụm từ) file bao gồm thông tin kèm với thuật ngữ (term) ( vị trí, tần suất, độ quan trọng ) Các thông tin tổ chức theo cấu trúc liệu riêng gọi mục Với phương pháp đánh mục ngược kết hợp với mơ hình MapReduce giải hạn chế trước phương pháp thông kê, đánh giá ý kiến quy mô lớn, lý học viên lựa chọn m co l gm @ an Lu n va 10 ac th si Để gọi class MapReduceIndexerTool Solr ta làm sau: $ hadoop jar /opt/cloudera/parcels/CDH/lib/solr/contrib/mr/search-mr-*job.jar \ org.apache.solr.hadoop.MapReduceIndexerTool \ -D 'mapred.child.java.opts=-Xmx500m' \ log4j /opt/cloudera/parcels/CDH/share/doc/search*/examples/solrnrt/log4j.properties \ morphline-file morphline.conf \ output-dir hdfs://nameservice1:8020/tmp/outdir \ verbose go-live zk-host localhost:2181/solr Ngồi cịn có số class hỗ trợ đánh mục Solr như: SolrIndexUpdateMapper lu SolrXMLDocRecordReader an SolrIndexUpdater n va 3.4.1 Cài đặt cụm máy Hadoop to p ie gh tn Phần trình bày cách xây dựng cụm máy Hadoop hoàn chỉnh với máy mơi trường ảo hóa Máy ảo đóng vai trị máy khách máy đóng vai trị máy chủ Q trình cài đặt trải qua bước sau: w Bước 1: Chuẩn bị oa nl Cài đặt java d Hadoop viết Java, để chạy Hadoop, máy cụm phải cài đặt môi trường Java (báo cáo sử dụng Java phiên 1.8) Kiểm tra cài đặt môi trường java câu lệnh sau: va an lu ll u nf $ 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 oi m z at nh mode) z Nếu kết thị có dạng tương tự điều có nghĩa máy tính cài đặt mơi trường Java @ gm Cài đặt mạng m co l Hadoop sử dụng IP4 sau hồn tất bước (cài đặt Hadoop) ta thực vơ hiệu hóa IP6 máy chạy Hadoop Việc thực cách thêm dịng sau vào tệp tin có đường dẫn /usr/local/hadoop/conf/hadoop-env.sh: an Lu export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true n va Tiếp theo, để đơn giản ta gán địa IP cho máy chủ 192.168.18.1 máy ac th 62 si khách 192.168.18.128 Tên máy xác định bước này, máy có tên gọi MAY_CHU MAY_KHACH Mở tệp hosts đường dẫn /etc/hosts máy thêm dòng sau vào cuối nội dung tệp: 192.168.18.1 MAY_CHU 192.168.18.128 MAY_KHACH Người dùng máy Trên máy ta sử dụng người dùng có tên hduser để đơn giản để tránh việc Hadoop xung đột với chương trình khác chạy máy Việc tạo người dùng hduser hệ thống máy thực sau: $ sudo addgroup hadoop $ sudo adduser ingroup hadoop hduser Cấu hình SSH lu an n va p ie gh tn to Hadoop sử dụng SSH để điều khiển việc chạy tiến trình máy khách từ máy chủ Theo chế trên, máy chủ thực kết nối với máy khách cách tự động thông qua qua dịch vụ SSH máy khách Do vậy, máy khách cần cài đặt SSH SSH máy khách cần cấu hình phép tiến trình chạy với quyền người dùng Hadoop (hduser) đăng nhập vào mà không cần điền mật Nếu máy chưa cài đặt SSH ta phải cài đặt gói OpenSsh cho máy câu lệnh sau: w $ sudo apt-get install openssh-server d oa nl Sau cài đặt SSH thành cơng, ta thực cấu hình cho máy phép tiến trình hoạt động quyền hdsuer mà không cần điền mật khẩu: u nf va an lu $ su - hduser $ ssh-keygen -t rsa -P "" $ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys ll Trên máy chủ ta thực câu lệnh sau để ghi đè mật lên máy chủ máy khách: oi m z at nh $ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@MAY_KHACH $ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@MAY_CHU z Sau cấu hình thành cơng mật ta thực kết nối với máy chủ với máy chủ máy chủ với máy khách sau: @ l gm $ ssh hduser@MAY_CHU $ ssh hduser@MAY_KHACH m co Bước 2: Cài đặt hadoop an Lu Bước 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ủ đóng vai trị: vai trị điều khiển đơng thời với vai trị lưu trữ thực tác vụ máy khách Máy khách đóng vai trị lưu trữ xử lý tác vụ n va ac th 63 si Ta thực bước sau tất máy: Tải Hadoop 1.2.0 từ trang chủ Hadoop máy, đặt tệp tin cài đặt hadoop vào thư mục địa /usr/local Ta thự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 thêm dòng sau vào cuối nội dung tệp tin địa $HOME/.bashrc: lu an n va p ie gh tn to # 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 } d oa nl w ll u nf va an lu oi m z at nh z # Add Hadoop bin/ directory to PATH export PATH=$PATH:$HADOOP_HOME/bin @ m co l gm Thay đổi biến môi trường Java cho Hadoop cách sửa tệp tin đường dẫn /usr/local/hadoop/conf/hadoop-env.sh sau: Sửa dòng sau: an Lu # The java implementation to use Required # export JAVA_HOME=/usr/lib/j2sdk1.5-sun n va Thành ac th 64 si # The java implementation to use Required export JAVA_HOME=/usr/lib/jvm/java-8-oracle Cấu hình thư mục máy tính mà Hadoop Hadoop lưu liệu 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 dòng sau vào thẻ tệp tin đường dẫn /usr/local/hadoop/conf/core-site.xml: lu an n va p ie gh tn to hadoop.tmp.dir /app/hadoop/tmp A base for other temporary directories fs.default.name hdfs://MAY_CHU:54310 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 d oa nl w lu ll u nf va an Cấu hình địa máy cổng mà cơng việc thực Thêm dòng sau vào thẻ tệp tin đường dẫn /usr/local/ hadoop/ conf/mapred-site.xml: m oi mapred.job.tracker MAY_CHU:54311 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 z at nh z m co l gm @ an Lu Cấu hình số lượng nhân mà Hadoop thực để nhân liệu cách thêm dòng sau vào thẻ tệp tin đường dẫn sau /usr/local/hadoop/conf/hdfs-site.xml: n va ac th 65 si dfs.replication 2 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 Riêng máy chủ ta phải cấu hình thêm sau: Cấu hình máy làm nhiệm vụ điều khiển 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 lu Ta cấu hình máy làm nhiệm vụ làm việc máy đóng vai trị làm việc nên ta thêm dòng sau vào cuối tệp tin đường dẫn /usr/local/hadoop/conf/slaves an va n MAY_CHU MAY_KHACH p ie gh tn to Trước 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 câu lệnh sau: w $ cd /usr/local/hadoop $ bin/hadoop namenode -format d oa nl Chú ý ta thực câu lệnh này, tất liệu có hệ thống liệu HDFS bị xóa bỏ lu an Bước 3: Khởi động cụm máy Hadoop kết thúc hồn thành cơng việc ll u nf va Quá trình khởi động thực qua bước: Khởi động HDFS khởi động MapReduce oi m Thành phần điều khiển khởi động máy Chu máy lưu trữ khởi động máy Chu may LamViec Chạy tệp tin $HADOOP_HOME/bin/start-dfs.sh máy Chu: z at nh z $ cd $HADOOP_HOME $ bin/start-dfs.sh @ m co l gm Khởi động MapReduce: Thành phần quản lý công việc khởi động máy Chu thành phần quản lý tác vụ khởi động máy Chu máy LamViec Chạy câu lệnh bin/start-mapred.sh máy chủ Kiểm tra hoàn tất cài đặt Hadoop câu lênh jps: an Lu $ cd $HADOOP_HOME $ bin/start-dfs.sh n va ac th 66 si Trên máy chủ: $ jps 16017 14799 15686 14880 15596 14977 Jps NameNode TaskTracker DataNode JobTracker SecondaryNameNode Trên máy khách: $ jps 15183 DataNode 15897 TaskTracker 16284 Jps lu Nếu kết có nghĩa việc cài đặt Hadoop hoàn tất Để tắt Hadoop ta thực câu lệnh sau: an n va $ cd $HADOOP_HOME $ bin/stop-all.sh tn to 3.4.2 Cài đặt Nutch tích hợp với Solr p ie gh Hướng dẫn cài đặt Nutch tích hợp với Solr Trong báo cáo ta sử dụng Nutch 1.6 Solr 4.8.0 w Cài đặt Nutch d oa nl Tải tệp tin apache-nutch-1.6-src.tar.gz từ địa https://archive.apache.org/dist/nutch/1.6/ Giải nén tệp tin chuyển thư mục tới đường dẫn /usr/local/nutch an lu u nf va $ tar –xvzf apache-nutch-1.6-src.tar.gz $ sudo mv apache-nutch-1.6-src /usr/local/nutch ll Đi đến thư mục cài đặt Nutch câu lệnh cd /usr/local/nutch Chỉnh sửa tệp tin nutch-default.xml câu lệnh sudo gedit conf/nutch-default.xml, thêm dòng sau vào cuối nội dung tệp tin: oi m z at nh z http.agent.name My Nutch Spider l gm @ m co Chạy câu lệnh: an Lu $ cd /usr/local/nutch $ ant runtime n va Kết câu lệnh thư mục /usr/local/nutch/runtime tạo ac th 67 si Kiểm tra cài đặt Nutch thành công câu lệnh sau $ cd /usr/local/nutch/runtime/deploy $ bin/nutch Nếu kết có dạng sau có nghĩa việc cài đặt Nutch hoàn tất: Usage: nutch [-core] COMMAND Cài đặt Solr Tải tệp tin solr-4.8.0.tgz từ địa https://archive.apache.org/dist/lucene/solr/4.8.0/ Giải nén tệp tin di chuyển tới địa /usr/local/solr câu lệnh: $ tar –xvzf solr-4.8.0.tgz $ sudo mv solr-4.8.0.tgz /usr/local/solr lu an n va p ie gh tn to d oa nl w an lu va Hình 0.8: Giao diện làm việc Solr ll u nf Đi đến thư mục example Solr khởi động Solr câu lệnh: oi m $cd /usr/local/solr/example $java –jar start.jar z at nh z Sau khởi động Solr ta kiểm tra hồn tất cài đặt Solr cách truy cập trình duyệt web theo đường dẫn sau: http://localhost:8983/solr/ gm @ Tích hợp Solr với Nutch l m co Sao chép tệp tin /usr/local/nutch/conf/schema-solr4.xml vào thư mục conf đường dẫn /usr/local/solr/example/solr/conf đổi tên tệp tin thành schema.xml Thêm dòng sau vào tệp tin schema.xml sau dòng : ac th 68 si Khởi động Solr câu lệnh $cd /usr/local/solr/example $java –jar start.jar Ta truy cập vào địa web http://localhost:8983/solr/ 3.4.3 Thu thập liệu lu Quá trình thu thập liệu thực tảng MapReduce Hadoop, tất bước trình thu thập liệu thực song song tất máy cụm máy Hadoop Từng máy làm nhiệm vụ thu thập liệu với URL phân cơng sau kết q trình thu thập liệu trộn lại với hàm rút gọn kết (reducer) Các thư mục cuối trình thu thập lưu lại hệ thống lưu trữ phân tán HDFS an Trước hết, việc thu thập liệu Facebook thực qua Facebook Graph API Ta truy cập vào Facebook Graph API qua đường link sau: n va tn to https://developers.facebook.com/tools/explorer p ie gh Giao diện lên hình dưới: d oa nl w ll u nf va an lu oi m z at nh z gm @ l Hình 0.9: Giao diện làm việc Facebook Graph API m co Đăng ký App công cụ phát triển Facebook, ta cấp Access Token (Là mã cho phép gửi đòi hỏi tới Server Nếu bạn login vào tài khoản facebook đó, giá trị mặc định hiển thị cho tài khoản đó.), sử dụng để truy cập vào trang Fanpage trang cá nhân an Lu n va ac th 69 si Hình 0.10: Access Token trình Facebook Graph API Sau ta thực việc lấy thơng tin từ trang Facebook cần dị tìm khảo sát Với cơng cụ Facebook Graph API, lựa chọn tìm kiếm thể rõ ràng hình dưới: lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh Hình 0.11: Thu thập liệu từ trang mạng trường THPT Hoàng Văn Thụ z Tất liệu sau Crawler lấy từ Fabook Graph API đưa Hadoop định dạng JSON an Lu cd $HADOOP_HOME bin/start-all.sh cd $SOLR_HOME/example java –jar start.jar m co $ $ $ $ l gm @ Khởi động Hadoop Solr: n va Sauk hi hoàn tất việc đưa thư mục chứa URL cần thu thập liệu lên HDFS ta ac th 70 si bắt đầu thực công việc thu thập liệu câu lệnh sau: $ cd /usr/local/nutch/runtime/deploy $ hadoop –jar org.apache.nutch.crawl.Crawl thuthap1 http://localhost:8983/solr -depth apache-nutch-1.6.job –dir data –solr Câu lệnh thực thu thập liệu từ trang web đưa kết đên Solr để tạo mục ngược cho liệu Sau câu lệnh cụm máy hadoop bắt đầu thu thập liệu từ địa có nội dung tệp tin seed.txt Ta theo dõi q trình thu thập liệu các, công việc tiến hành mapReduce cách truy cập địa http://localhost:50030/jobtracker.jsp: lu an n va p ie gh tn to d oa nl w lu va an Hình 0.12:Giao diên theo dõi trình làm việc MapReduce u nf Để đọc thơng tin Crawldb Nutch ta thực câu lệnh sau: ll $ cd $NUTCH_HOME $ bin/nutch readdb data/crawldb –stats oi m z at nh Quá trình thu thập liệu trang nhóm học sinh THPT 19-5 Hịa Bình ta có kết sau: z m co l gm @ an Lu n va ac th 71 si Bảng 0.1: Kết thu thập liệu chế độ Chiều Chế độ máy đơn sâu (Standalone) Chế độ phân tán ảo Số URL (pseudo distributed) thu thập 137 giây 576 giây 748 giây 2016 giây 226 10264 giây Hơn 10 4513 lu an n va p ie gh tn to Dựa vào bảng ta thấy, với chiều sâu lớn thời gian thu thập liệu tăng lên Điều hoàn toàn dễ hiểu qua vòng lặp số URL mà Nutch phải thu thập tăng lên ( từ đến 4513) So sánh chế độ máy đơn chế độ phân tán ảo ta thấy có khác biệt rõ ràng Chế độ phân tán ảo cho kết thời gian thu thập liệu lớn nhiều so với chế độ máy đơn Có thể giải thích điều sau: với môi trường phân tán ảo thực tế tài nguyên máy bị chi phối vào việc trì mơi trường ảo hóa tài nguyên RAM, tài nguyên chip xử lý không tận dụng mà bị chi phối Tuy nhiên việc thử nghiệm môi trường phân tán ảo cho ta kết nhân khối liệu đúng, điều chứng minh khả chịu lỗi khôi phục liệu có trục trặc Hadoop oa nl w 3.5 Thực tìm kiếm thử nghiệm tập mục thu thập d Sau thực thu thập liệu ta truy cập trang http://localhost:8983/solr để thực câu lệnh truy vấn Kết câu lệnh truy vấn nhiều dạng khác dễ dàng tích hợp với ứng dụng web Có nhiều định dạng khác Solr sử dụng định dạng PHP, XML, Json … ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th 72 si Hình 0.13: Giao diện trang web tìm kiếm Solr Ta dễ dàng xây dựng giao diện web để thực giao tiêp với Solr Việc giao tiếp bao gồm công việc gửi từ truy vấn đến Solr, sau nhận yêu cầu truy vấn Solr thực tìm kiếm trả lại kết Kết trang web phân tích hiển thị cho người dùng Có nhiều thư viện cho phép ta làm công việc Báo cáo sử dụng thư viện giao tiếp với Solr có tên gọi AJAX SOLR AJAX SOLR cung cấp thư viện cho phép giao tiếp với Solr dễ sử dụng Để thực tìm kiếm thử Nutch cho kết rõ ràng hơn, báo cáo thực thu thập liệu nhóm học sinh số trường tỉnh Hịa Bình: https://www.facebook.com/groups/1573580766273010 lu https://www.facebook.com/Trường-THPT-Cơng-Nghiệp-Hịa-Bình an n va https://www.facebook.com/pages/THPT-chuyên-Hoàng-Văn-Thụ p ie gh tn to Tổng số tài liệu mà việc thu thập thực khoảng 2000 trang(bao gồm trang mạng cá nhân trang fanpage tập thể học sinh) Với dung lượng liệu lên đến khoảng 2GB Kết tìm kiếm thử nghiệm theo số chủ đề phổ biến ghi lại bảng sau: w Bảng 0.2: Một số kết truy vấn theo chủ đề Thời gian tìm kiếm (1/1000 giây) 103 94 10 31 54 30 d oa nl ll u nf va an lu oi m z at nh z Số kết 2910 4361 3689 5743 3713 4078 4333 3477 4118 4103 3570 gm @ Từ khóa Giáo dục Tuyển sinh Bóng đá Tình u Luật pháp Lớp Gia đình Đồng phục Tốn Văn Tiếng Anh m co l Một yêu cầu bắt buộc chương trình tìm kiếm liệu yêu cầu thời gian Một chương trình tìm kiếm phải đảm bảo đáp ứng thời gian tìm kiếm nhanh nhiều so với đại đa số nhiệm vụ liệu lớn khác Theo đánh giá ban đầu kết tìm kiếm tập liệu tương đối khả quan với điều kiện phần cứng trung bình Các kết truy vấn khơng có thời gian vượt q hàng phút đáp ứng yêu cầu thời gian tìm kiếm môi trường web an Lu n va ac th 73 si Chương trình bày cách xây dựng cụm máy Hadoop hoàn chỉnh với thử nghiệm môi trường phân tán ảo so sánh khả hoạt động Hadoop môi trường phân tán ảo với máy tính Thực nghiệm cho thấy khả hoạt động Hadoop phụ thuộc nhiều vào dung lượng RAM khả tính tốn chip xử lý, tốc độ Hadoop thực tăng lên cụm máy Hadoop mở rộng quy mô RAM chip xử lý Việc thực thử nghiệm Hadoop mội trường phân tán ảo, vậy, cung đem lại nhiều kết tích cực ta thấy thực tế q trình nhân liệu qua máy mạng Hadoop, ta thấy khả phục hồi liệu xảy cố Hadoop Cách mà Hadoop phân chia trình công việc thu thập liệu Nutch cụm máy phân tán Theo dõi công việc hoạt động MapReduce, trình tạo cấu trúc liệu Nutch lu an n va p ie gh tn to Chương thực việc cấu hình Nutch với chương trình đánh mục tìm kiếm nguồn mở sử dụng rộng rãi Solr Solr cho kết truy vấn mục tương đối khả quan với điều kiện phần cứng liệu mức trung bình Hồn thành việc xây dựng trang web tìm kiêm đơn giản giao tiếp với Solr thay cho giao diện tìm kiếm mặc định Solr d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th 74 si Kết luận Đánh giá kết đề tài Đề tài tìm hiểu kiến thức tổng quan MapReduce, thuật toán đánh mục mục ngược Đồng thời xây dựng hệ thống tìm kiếm khảo sát đánh giá ý kiến học sinh mạng xã hội Đề Tài thực nội dung sau: Tìm hiểu tổng quan MapReduce xây dựng thuật toán MapReduce - Tìm hiểu thuật tốn đánh mục mục ngược kết hợp với MapReduce - Xây dựng chương trình khảo sát ý kiến mạng xã hội, tổng hợp,cài đặt thử nghiệm hệ thống lu - an Hạn chế n va Chưa nghiên cứu giải pháp tách từ tiếng Việt đầy đủ, ảnh hưởng tới kết độ xác hệ thống khảo sát ý kiến - Hệ thống dị tìm Web cịn đơn giản, chưa hỗ trợ mạng xã hội Url website internet mức độ khác p ie gh tn to - w Hướng phát triển đề tài d oa nl Mặc dù thực nội dung xây dựng hệ thống hành thành công Tuy nhiên, đề hồn thiện tốt hơn, đề tài cần nghiên cứu bổ sung thêm nội dung tìm kiếm web mạng xã hội khác Facebook, mở rộng thêm tìm kiếm website, Forum học tập học sinh Tăng cường hiệu tìm kiếm từ xác ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th 75 si TÀI LIỆU THAM KHẢO [1] Data-Intensive Text Processing with MapReduce - Jimmy Lin The iSchool University of Maryland [2] MapReduce: Simplified Data Processing on Large Clusters - Jeffrey Dean and Sanjay Ghemawat Google Inc [3] Azza Abouzeid, Kamil Bajda-Pawlikowski, Daniel Abadi, Avi Silberschatz, and Alexander Rasin HadoopDB: An architectural hybrid of MapReduce and DBMS technologies for analytical workloads In Proceedingsof the 35th International Conference on Very Large Data Base (VLDB 2009), pages 922{933, Lyon, France, 2009 [4] Vo Ngoc Anh and Alistair Mo_at Inverted index compression using word-aligned binary codes Information Retrieval, (1):151{166, 2005 lu an [5] Stefan Buttcher, Charles L A Clarke, and Gordon V Cormack Information Retrieval: Implementing and Evaluating Search Engines MIT Press, Cambridge, Massachusetts, 2010 n va to [7] Jeffrey Dean and Sanjay Ghemawat MapReduce: A exible data processing tool Communications of the ACM, 53 (1):72{77, 2010 p ie gh tn [6] Jonathan Cohen Graph twiddling in a MapReduce world Computing in Science and Engineering, 11 (4):29{41, 2009 nl w d oa [8] F N Afrati, A D Sarma, D Menestrina, A G Parameswaran, and J D Ullman Fuzzy joins using mapreduce In ICDE, pages 498–509, 2012 [3] F N Afrati and J D Ullman Optimizing multiway joins in a map-reduce environment TKDE, 23 (9):1282–1298, 2011 va an lu ll u nf [9] S Blanas, J M Patel, V Ercegovac, J Rao, E J Shekita, and Y Tian A comparison of join algorithms for log processing in mapreduce In SIGMOD, pages 975–986, 2010 oi m z at nh z m co l gm @ an Lu n va ac th 76 si