Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,5 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP TỐT NGHIỆP Đề tài TÌM HIỂU VÀ CÀI ĐẶT HADOOP GVHD : Hồng Xuân Dậu Lớp : Sinh viên : Chu Quốc Anh Hà Nội - 2016 I II Mục lục : III IV I V II GIỚI THIỆU KHÁI QUÁT VỀ HADOOP VI Mục đích : VII Định nghĩa : VIII III IX IV PHẦN HADOOP X HDFS (Hadoop Distributed File System) XI XII XIII V XIV A XV B XVI VI XVII XVIII Một số tài liệu tham khảo : 41 XIX XX MỞ ĐÂU – TẠI SAO HADOOP RA ĐỜI ? Một hệ thống với liệu lớn cỡ hàng Peta Bytes, rõ ràng việc vận hành, thực thi xử lý liệu khó khăn Để giải vấn đề đó, người ta có cách làm tăng khả xử lý hệ thống máy tính lên Và có phương án đưa Scale Up Scale Out Scale Up phương án làm tăng khả xử lý máy chủ lên cách tăng CPU tăng nhớ (RAM) Còn Scale Out phương án làm tăng khả xử lý hệ thống máy chủ cách tăng số lượng máy chủ lên, cấu hình máy chủ khơng u cầu cao Nội dung liệt kê ưu nhược điểm phương án này: Scale Up Ưu điểm: o Việc thực thi dễ dàng Đơn giản lắp thêm (hoặc thay thế) CPU RAM cho máy chủ o Vì số máy chủ khơng đổi nên khơng thêm chi phí license cho phần mềm chạy o Việc quản lý, vận hành máy chủ không thay đổi so với trước số lượng máy cũ Nhược điểm: o Việc tăng hiệu cho máy chủ có giới hạn Bạn khơng thể muốn lắp thêm CPU, RAM o Chi phí cho linh kiện CPU, RAM có cấu hình cao ngày đắt đỏ o Việc vận hành hệ thống máy chủ gặp phải nhiều rủi ro máy bị dừng hệ thống ngừng hoạt động o Scale Out: Ưu điểm: o Việc tăng hiệu hệ thống gần không giới hạn cần tăng máy chủ tăng hiệu hệ thống o Có thể tận dụng máy chủ cấu hình thấp, rẻ tiền o Một vài máy chủ ngừng hoạt động hệ thống hoạt động bình thường mà khơng bị gián đoạn Nhược điểm: o Việc tăng số lượng máy làm tăng số lượng license phần mềm máy chủ o Việc quản lý hệ thống với số lượng lớn máy chủ phức tạp Hãy tưởng tượng vận hành hệ thống lên tới hàng nghìn máy chủ bạn vất vả đến cỡ o Việc cài đặt, triển khai hệ thống phần mềm hoạt động nhiều máy chủ không đơn giản Nhìn vào ưu nhược điểm trên, rõ ràng phương án Scale Out có lợi điểm nhiều so với phương án Scale Up việc tăng hiệu xử lý hệ thống máy chủ Ngồi so sánh trên, khó khăn cần phải kể đến tốc độ truyền tải (đọc, ghi) của ổ cứng Với tốc độ truyền tải liệu ổ cứng vào khoảng 100MB/s việc đọc 1TB liệu 10,000 giây (khoảng tiếng), với 1PB liệu 10,000,000 giây (khoảng 115 ngày) Với tốc độ đọc liệu cho dù triển khai phương án Scale Up với máy chủ cấu hình khủng đến khơng thể đáp ứng u cầu sử dụng thực tế Nói cách cụ thể, người dùng khơng thể đợi 115 ngày để có kết báo cáo từ việc phân tích 1PB liệu Khi triển khai theo mơ hình Scale Out việc đọc liệu song song, giả sử bạn xử lý 1PB liệu hệ thống gồm 1000 máy chủ việc đọc liệu nhanh 1000 lần, nói cách khác thời gian người dùng phải chờ giảm từ 115 ngày xuống tiếng Như vậy, để giải tốn Big Data có phương án hệ thống phải triển khai theo mô hình Scale Out Và Hadoop framework cho phép thực thi theo mơ hình Hơn nữa, Hadoop cho phép người quản trị quản lý, cài đặt & vận hành cách dễ dàng thông qua giao diện UI Command line XXI GIỚI THIỆU KHÁI QUÁT VỀ HADOOP Mục đích : Mong muốn doanh nghiệp tận dụng lượng liệu khổng lồ để đưa định kinh doanh, Hadoop giúp cơng ty xử lí khối lượng cỡ Terabyte chí Petabytes liệu phức tạp với chi phí hiệu thấp Các doanh nghiệp nỗ lực tìm kiếm thơng tin q giá từ khối lượng lớn liệu phi cấu trúc tạo web log, công cụ clickstream, sản phẩm truyền thơng xã hội Chính yếu tố dẫn làm tăng quan tâm đến công nghệ mã nguồn mở Hadoop Hadoop, dự án phần mềm quản lí liệu Apache với nhân khung phần mềm MapReduce Google, thiết kế để hỗ trợ ứng dụng sử dụng số lượng lớn liệu cấu trúc phi cấu trúc Không giống hệ quản trị sở liệu truyền thống, Hadoop thiết kế để làm việc với nhiều loại liệu liệu nguồn Công nghệ HDFS Hadoop cho phép khối lượng lớn công việc chia thành khối liệu nhỏ nhân rộng phân phối phần cứng cluster để xử lí nhanh Công nghệ sử dụng rộng rãi số trang web lớn giới, chẳng hạn Facebook, eBay, Amazon, Baidu, Yahoo Các nhà quan sát nhấn mạnh Yahoo nhà đóng góp lớn Hadoop Định nghĩa : Hadoop Apache framework mã nguồn mở viết java, cho phép xử lý phân tán (distributed processing) tập liệu lớn cụm máy tính (clusters of computers) thơng qua mơ hình lập trình đơn giản Hadoop thiết kế để mở rộng quy mô từ máy chủ đơn sang hàng ngàn máy tính khác có tính tốn lưu trữ cục (local computation and storage) XXII.KIẾN TRÚC HADOOP Dự án Hadoop Apache có hai thành phần cốt lõi, kho lưu trữ tệp gọi Hadoop Distributed File System (HDFS – Hệ thống tệp phân tán Hadoop) khung cơng tác lập trình gọi MapReduce Có số dự án hỗ trợ để sử dụng HDFS MapReduce Bài cung cấp nhìn sơ lược, bạn tìm đọc sách OReily "Hadoop The Definitive Guide", tái lần thứ 3, để biết thêm chi tiết Các định nghĩa nhằm cung cấp cho bạn thông tin để sử dụng ví dụ mã Bài thực mong muốn giúp bạn bắt đầu trải nghiệm thực hành với công nghệ Đây hướng dẫn hỏi đáp thảo luận HDFS: Nếu bạn muốn có 4000 máy tính làm việc với liệu bạn, tốt bạn nên phổ biến liệu bạn 4000 máy tính HDFS thực điều cho bạn HDFS có vài phận dịch chuyển Các Datanode (Nút liệu) lưu trữ liệu bạn Namenode (Nút tên) theo dõi nơi lưu trữ thứ Ngồi cịn có thành phần khác nữa, đủ để bắt đầu MapReduce: Đây mơ hình lập trình cho Hadoop Có hai giai đoạn, không ngạc nhiên gọi Map Reduce Để gây ấn tượng với bạn bè bạn nói với họ có q trình shuffle-sort (ND.: mơ ơt q trình mà thống thực hiê nô xếp chuyển kết đầu map tới đầu vào bô ôrút gọn) hai giai đoạn Map Reduce JobTracker (Trình theo dõi cơng việc) quản lý 4000 thành phần cơng việc MapReduce Các TaskTracker (Trình theo dõi nhiệm vụ) nhận lệnh từ JobTracker Nếu bạn thích Java viết mã Java Nếu bạn thích SQL ngơn ngữ khác khơng phải Java may bạn sử dụng tiện ích gọi Hadoop Streaming (Luồng liệu Hadoop) Hadoop Streaming: Một tiện ích để tạo nên mã MapReduce ngôn ngữ nào: C, Perl, Python, C++, Bash, v.v Các ví dụ bao gồm trình mapper Python trình reducer AWK Xong ta hình dưới: 28 Ấn chuột phải vào TestServer chọn Edit Hadoop location: Chọn Advanced parameters , tìm đến “mapred.system.dir” : 29 Sửa lại thành “/hadoop/mapred/system” ấn “Finish” Tiếp theo, “Create new directory ” : 30 Ta gõ “input” vào: Click chuột phải vào thư mục Hadoop-user, chọn “Refresh” : 31 Tiếp tục click chuột phải vào hadoop-user, chọn : “Upload directory to DFS” : 32 Chọn input click OK: 33 “Refresh” lại “hadoop-user” Ta file txt hình : 34 Truy nhập : https://archive.apache.org/dist/hadoop/core/hadoop-0.18.0/ để tải hadoop-0.18.0 Sau giải nén file Trên menu eclipse ta chọn File -> New -> Project -> Map/Reduce Project -> Next Gõ “wordcounttest” vào “Project Name” Sau chọn “Configure Hadoop install directory ” : Click vào “Browse ” tìm đến file hadoop-0.18.0 vừa tải Sau click Apply -> OK : 35 Ấn “Finish” Ta có : 36 Trong “src” , ta click chuột phải, chọn New -> Class : Tạo class có tên : WordCountMapper Coppy dòng lệnh sau vào class : import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.mapred.MapReduceBase; import org.apache.hadoop.mapred.Mapper; 37 import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reporter; public class WordCountMapper extends MapReduceBase implements Mapper { private final IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(WritableComparable key, Writable value, OutputCollector output, Reporter reporter) throws IOException { String line = value.toString(); StringTokenizer itr = new StringTokenizer(line.toLowerCase()); while(itr.hasMoreTokens()) { word.set(itr.nextToken()); output.collect(word, one); } } } Tạo class WordCountReducer : Coppy dòng lệch sau vào class : import java.io.IOException; import java.util.Iterator; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.mapred.MapReduceBase; import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reducer; import org.apache.hadoop.mapred.Reporter; public class WordCountReducer extends MapReduceBase implements Reducer { 38 public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { IntWritable value = (IntWritable) values.next(); sum += value.get(); // process value } output.collect(key, new IntWritable(sum)); } } Cuối tạo class: WordCount Coppy dòng lệnh sau vào class : import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.FileInputFormat; import org.apache.hadoop.mapred.FileOutputFormat; import org.apache.hadoop.mapred.JobClient; import org.apache.hadoop.mapred.JobConf; public class WordCount { public static void main(String[] args) { JobClient client = new JobClient(); JobConf conf = new JobConf(WordCount.class); / specify output types conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); / specify input and output dirs FileInputPath.addInputPath(conf, new Path("input")); 39 FileOutputPath.addOutputPath(conf, new Path("output")); / specify a mapper conf.setMapperClass(WordCountMapper.class); / specify a reducer conf.setReducerClass(WordCountReducer.class); conf.setCombinerClass(WordCountReducer.class); client.setConf(conf); try { JobClient.runJob(conf); } catch (Exception e) { e.printStackTrace(); } } } Sau ân chuột phải vào class WordCount , chọn Run As -> Run on Hadoop Ta có kết : Ta lại “Refresh” hadoop-user Trong “out-put” , mở file “part-0000(33,0 b, r3), ta có : 40 XXV KẾT LUẬN Ưu điểm Hadoop framework cho phép người dùng nhanh chóng viết kiểm tra hệ thống phân tán Đây cách hiệu cho phép phân phối liệu công việc xuyên suốt máy trạm nhờ vào chế xử lý song song lõi CPU Hadoop không dựa vào chế chịu lỗi phần cứng fault- tolerance and high availability (FTHA), thay thân Hadoop có thư viện thiết kế để phát xử lý lỗi lớp ứng dụng Các server thêm vào gỡ bỏ từ cluster cách linh hoạt hoạt động mà không bị ngắt quãng Một lợi lớn Hadoop ngồi mã nguồn mở khả tương thích tất tảng phát triển Java Một số tài liệu tham khảo : 41 Các trang web : http://blog.asilla.net/bigdata/lam_quen_voi_hadoop.html http://forums.bsdinsight.com/threads/big-data-6-%E2%80%93-hadoopla- gi.6728/ https://www.ibm.com/developerworks/vn/library/data/2013Q1/dm1209hadoopbigdata/ 42 ... Hadoop tính cho ta: 18 Bước : Tắt Hadoop : Gõ lệnh : sudo poweroff Sau ta nhập password hadoop vào : 19 Sau chạy xong Hadoop Vmware tự động tắt B CÀI ĐẶT HADOOP TRÊN ECLIPSE Bước : Tải cài đặt. .. hadoop ta có tài khoản người dùng gơm tài khoản “root” có mật “root” tài khoản ? ?hadoop- user” có mật ? ?hadoop? ?? Mỗi tài khoản có mật trùng với tên Ta tiến hành đăng nhập vào tài khoản hadoop- user... khác thực thi tác vụ MapReduce trả kết output lưu hệ thống file XXIV CÀI ĐẶT THỬ NGHIỆM HADOOP A CÀI ĐẶT HADOOP TRÊN WINDOW DÙNG VMWARE Tài liệu tham khảo : https://developer.yahoo.com /hadoop/ tutorial/module3.html