Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
0,99 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 III II Mục lục : III.I MỞ ĐÂU - TẠI SAO HADOOP RA ĐỜI ? IV Hadoop hoạt động ? 10 V V CÀI ĐẶT THỬ NGHIỆM HADOOP 10 VI.A .CÀI ĐẶT HADOOP TRÊN WINDOW DÙNG VMWARE 10 VII B CÀI ĐẶT HADOOP TRÊN ECLIPSE 20 VIII VI KẾT LUẬN 41 IX Ưu điểm 41 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 yê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 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 yêu cầu sử dụng thực tế Nói cách cụ thể, người dùng đợ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, cácsả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ự ánHDFS Hadoop thành cốt lõi, kho lưu trữ tệpđể gọi Hadoop khung cơng Distributed tácMapReduce lậpApache trình File System gọicó làhai MapReduce (HDFS - phần Hệ thống Có tệp số phân dựnhìn ántán hỗ trợ sửlà dụng Bài cung cấp sơHadoop) 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ó 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 • Hive Hue: Nếu bạn thích SQL, bạn vui biết bạn viết SQL yêu cầu Hive chuyển đổi thành tác vụ MapReduce Đúng bạn chưa có mơi trường ANSI-SQL đầy đủ, bạn có 4000 ghi chép khả mở rộng quy mô nhiều Petabyte Hue cung cấp cho bạn giao diện đồ họa dựa trình duyệt để làm cơng việc Hive bạn • Pig: Một mơi trường lập trình mức cao để viết mã MapReduce Ngôn ngữ Pig gọi Pig Latin Bạn thấy quy ước đặt tên khác thường chút, bạn có tỷ số giá-hiệu đáng kinh ngạc tính sẵn sàng cao • Sqoop: Cung cấp việc truyền liệu hai chiều Hadoop sở liệu quan hệ yêu thích bạn • Oozie: Quản lý luồng cơng việc Hadoop Oozie khơng thay trình lập lịch biểu hay cơng cụ BPM bạn, cung cấp cấu trúc phân nhánh ifthenelse điều khiển phạm vi tác vụ Hadoop bạn • HBase: Một kho lưu trữ key-value mở rộng quy mơ lớn Nó hoạt động giống hash-map để lưu trữ lâu bền (với người hâm mộ python, nghĩ đến từ điển) Nó khơng phải sở liệu quan hệ, có tên HBase • FlumeNG: Trình nạp thời gian thực để tạo luồng liệu bạn vào Hadoop Nó lưu trữ liệu HDFS HBase Bạn muốn bắt đầu với FlumeNG, để cải thiện luồng ban đầu 10 3S Edit Hadoop location Detine Hadoop location Define the location of a Hadoop inírastructure íor running MapReduce applications General Advanced parameters A mapred.merge.recordsBeíoreProgress 10000 mapred.min.split.size mapred.output.compress false mapred.output.compression.codec org.apache.hadoop.io.compress.DeíaultCodec mapred.output.compression.type RECORD mapred.reduce.copy.backoff 300 mapred.reduce.max.attempts mapred.reduce.parallel.copies mapred.reduce.tasks mapred.reduce.tasks.speculative.execution true mapred.submit.replication 10 mapred.System.dir /tmp/hadoop-PRINCE D TOAD/mapred/system mapred.task.cache.levels mapred.task.proíile falie| mapred.task.profile.maps 0-2 mapred.task.proíile.reduces 0-2 mapred.task.timeout 600000 mapred.task.tracker.http.address 0.0.0.0:50060 mapred.task.tracker.report.address 127.0.0.1:0 Load from íile V Validate location Ẹinish I Cancel Sửa lại thành “/hadoop/mapred/system” ấn “Finish” Tiếp theo, “Create new directory ” : 36 Proje rrnpTed (1) ỉ > íyĩtem (0J us*f (1) I■ - - - - - Dcvvnlữad írom DFSr-r CreaU ncw d*rcctũfy , uplũád íiles to DFS upload directory to DFS-.* c* Reíreh M Ddrtc i' Prcbkmi ✓ Taskí iữvadoc / Mapí Reduce LO' Ta gõ “input” vào: Click chuột phải vào thư mục Hadoop-user, chọn “Refresh” : ■ DPSLocations 4» hadoop [1) a Lí? mapred (1) & syítem (0) User a) : Đovvnload írom DFS,„ Create ne* directoíy Upload ĩiles to OFS>., j uplodd directory to 0F5 Tiếp tục click chuột phải vào hadoop-user, chọn : “Upload directory to DFS” : EE :>ỊQ >[□[[□ BA Ịndui uỏqo * C7 —TT—G -fỊ-' »HPa X HM1PM '■■SJO °) Áiữpanp peo)dn 71 ■'■SJŨ °» »I'J P*0|dn Jt*NM I iuoi]# J lío = - »)O|ơr3» “Refresh” lại “hadoop-user” Ta file txt hình : 42 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 ” : New MapReduce Project Wizard MapReduce Project ộ Invalid Hadoop Runtime speciíied; please click 'Contigure Hadoop install directory' orfill in library location inputtield Mụ Project name: I wordcounttestj Use deíault location Location: E:\Hadoop\wordcounttest Brovvse Choose file System detault Hadoop MapReduce Library Installation Path (•) Use dault Hadoop (currently not set) o Speciíy Hadoop library location < Back Cancel Click vào “Browse ” tìm đến file hadoop-0.18.0 vừa tải Sau click Apply -> OK : 43 J Preýect Explorer ;■ D'F5 LocationĩỊ ^^^^õrdccuntteĩt > u5 src ■à JRE System Library ji e1.S.0_60] imn Mmlenc-0,52,jar - E:\Hadoop\hadoop-0,18,c\lib ™ slf4j-log4j12-1.4.3.jar ■ E:\Hadoop' hadoDp-0.18jữ lib ÙIO slf4j-api-1.4.ỉ.jar - E:',Hadoop hadocp-0.18.0'lib > imn servlet-api.jar - E:\Hadoop\hadoop-0.18.C\lib > imj oro-2.tì.8.jar - E:\Hadoop\hadoop-0.18.C\lib mỊ Iog4j-1.2.1ỉ.jar - E:\Hladoop hadoop-O.IS.Ơ ib ÙIÙ lds-0.13.jar E:' Hadoop''hadcop-j.18.~ lib mò junit-38.1.jar - E:\Hadooip\hadoop-0.18.Ơ lib mò jetty-5.1.4.jar E:\Hadoop' hadoop-O.IS.Ơ lib > imn jetsỉt-0.6.0.jar - E:\Hadoop\hadoop-0.18.0Mib ÙIÙ commonĩ-net-1.4.1 ,jar E:' Hadoop'-hadcop-j.1E-.C’ lib ■ s commons-logging-api-1,0,4.jar - E:\Hadoop\hadoop-0,18,c\lib imj commonĩ-logging-1,0.4.jar - E:\Hadũũp\hadoop-0.18.CMib ■mo commons-httpclient-3.ũ.1.jar - E:\Hadoop\hadoop-0.1S.CMib ■Mũ commonĩ-codec-1.ỉ.jar - E:\Hadoop\hadoop-ũ.18.ũ\lib ÙIÍ commonĩ-cli-2,0-SNAPSH0T,jar E:\Hadoop\hadoop-0,13.ơ lih ỨIÙ hadoop-0.18.0-tữols.jar E:\Hadoop’ adoDp-0.18.0 > Mũ hadoop-0.18.0-core.jar - E:''.Hadoop\hadoop-ũ,18.0 I* Problerì Trong “src” , ta click chuột phải, chọn New -> Class : Tạo class có tên : WordCountMapper Coppy dòng import java.io.IOException; lệnh sau vào 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; class : 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.nextT oken()); 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 { public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws lOException { 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")); 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); tr y{ 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 : WordCount [Java Application] C:\Program Files\Java\jre6\bin\javaw.exe (13 févr 14 21:53:11) lĩ Problems ✓) Tasks lavadoc tér1 Map/Reduce Locations Q Console Ỉ3 Coinbine output record3“20 14/02/13 21:53:54 INF0 mapred.JobCllent: Map input records"!! 14/02/13 21:53:54 INF0 rr.apred JobClient: Reduce output records»5 14/02/13 21:53:54 INF0 rr.apred JobClient: Map output bytes“399 14/02/13 21:53:54 INF0 rr.apred.JobClier.t: Map input bỵtea"2ie 14/02/13 21:53:54 INF0 mapred.JobClient: Combine input records«59 14/02/13 21:53:54 INF0 rr.apred.JobClient: Map output records«49 14/02/13 21:53:54 INF0 mapred JobClier.t: Reduce mput recorda“10 114/02/13 21:53:54 INFO Mpred.ơobClient: Ta lại “Refresh” hadoop-user Trong “out-put” , mở file “part-0000(33,0 b, r3), ta có : 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 faulttolerance 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 có thể’ thêm vào gỡ bỏ từ cluster cách linh hoạt hoạt động mà khơng bị ngắt qng • 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 : - Các trang web : http://blog.asilla.net/big-data/lam quen voi hadoop.html http://forums.bsdinsight.com/threads/big-data-6-%E2%80%93-hadoop-lagi.6728/ https://www.ibm com/developerworks/vn/library/data/2013Q1/ dm1209hadoopbigdata/ ... xong Hadoop Vmware tự động tắt B CÀI ĐẶT HADOOP TRÊN ECLIPSE Bước : Tải cài đặt Java Bước : Tải cài đặt Eclipse Bước : Chạy Hadoop Virtual machine : [ O ] [ [ [ [ [ [ ] ] ] ] ] ] O O O O O O hadoop- appliance-0.18.0... Hadoop : Khi khỏi động 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... 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