1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Dm 1209hadoopbigdata pdf

40 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 1,71 MB

Nội dung

Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Bắt đầu tìm hiểu Hadoop sở liệu yêu thích bạn Marty Lurie (lurie@us.ibm.com) Kỹ sư hệ thống IBM Corporation 19 03 2013 Bài tập trung vào việc giải thích Big Data cung cấp ví dụ đơn giản Hadoop, ứng dụng nguồn mở chuyên dùng để phân tích Big Data Bạn vui mừng biết Hadoop KHÔNG PHẢI để thay cho Informix® DB2®, thực tế Hadoop chạy tốt với sở hạ tầng có Có nhiều thành phần họ Hadoop sâu vào ví dụ mẫu cụ thể thấy khả Hãy thử chạy ví dụ mẫu máy tính Có nhiều điều thú vị Big Data có nhiều nhầm lẫn Bài cung cấp định nghĩa Big Data sau thực loạt ví dụ để bạn có hiểu biết ban đầu số khả Hadoop, công nghệ nguồn mở hàng đầu lĩnh vực Big Data Cụ thể, ta tập trung vào câu hỏi sau: • Big Data, Hadoop, Sqoop, Hive Pig lĩnh vực lại có nhiều điều thú vị? • Hadoop liên quan đến DB2 Informix IBM nào? Các cơng nghệ chạy với khơng? • Tơi bắt đầu với Big Data nào? Có ví dụ dễ để thử chạy máy tính khơng? • Nếu bạn biết khái niệm Hadoop muốn vào thẳng cơng việc với ví dụ mẫu, làm sau Hãy bắt đầu chạy thể Informix DB2 bạn Tải file ảnh cho máy ảo VMWare từ Trang web Cloudera tăng thông số RAM máy ảo lên thành 1,5 GB Chuyển đến mục chứa ví dụ mẫu Có thể MySQL xây dựng sẵn máy ảo VMWare Nếu bạn làm thực hành mà không kết nối mạng, sử dụng ví dụ MySQL © Copyright IBM Corporation 2013 Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Nhẫn hiệu đăng ký Trang 40 developerWorks® ibm.com/developerWorks/vn/ Ngồi ra, xin vui lịng xem tiếp Big Data gì? Big Data lớn số lượng, bắt giữ với tốc độ nhanh, có cấu trúc khơng có cấu trúc, bao gồm yếu tố Những yếu tố làm cho Big Data khó bắt giữ lại, khai phá quản lý dùng phương thức truyền thống Có nhiều ý kiến lĩnh vực này, cần đến tranh luận kéo dài để định nghĩa Big Data Sử dụng công nghệ Big Data không giới hạn khối lượng lớn Bài sử dụng ví dụ mẫu nhỏ để minh họa khả công nghệ Tính đến năm 2012, hệ thống coi lớn nằm phạm vi 100 Petabyte Dữ liệu lớn vừa liệu có cấu trúc, vừa liệu khơng có cấu trúc Các sở liệu quan hệ truyền thống, Informix DB2, cung cấp giải pháp kiểm chứng với liệu có cấu trúc Thơng qua khả mở rộng, sở liệu quản lý liệu khơng có cấu trúc Cơng nghệ Hadoop mang đến kỹ thuật lập trình dễ sử dụng để làm việc với kho liệu lớn có liệu có cấu trúc lẫn liệu khơng có cấu trúc Tại lại có điều thú vị ấy? Có nhiều yếu tố tạo nên cường điệu xoay quanh Big Data, bao gồm: • Mang tính tốn lưu trữ lại với phần cứng thông dụng: Cho kết tốc độ nhanh với chi phí thấp • Tỷ số giá hiệu năng: Công nghệ Big Data Hadoop đưa mức tiết kiệm chi phí đáng kể (hãy nghĩ đến hệ số nhân xấp xỉ 10) với cải thiện hiệu đáng kể (một lần nữa, nghĩ đến hệ số nhân 10) Lời lãi bạn thay đổi Nếu cơng nghệ bị đánh bại nặng nề vậy, thật đáng để xem xét xem Hadoop bổ sung thay khía cạnh kiến trúc bạn khơng • Khả mở rộng quy mơ tuyến tính: Tất cơng nghệ song song tuyên bố dễ mở rộng quy mô Hadoop có khả mở rộng quy mơ kể từ phát hành có khả mở rộng giới hạn số lượng nút vượt 4.000 • Truy cập đầy đủ đến liệu khơng có cấu trúc: Một kho liệu mở rộng quy mơ cao với mơ hình lập trình song song thích hợp, MapReduce, thách thức cho ngành cơng nghiệp từ lâu Mơ hình lập trình Hadoop không giải tất vấn đề, giải pháp mạnh cho nhiều nhiệm vụ Các phân phối Hadoop: IBM Cloudera Đối với người bắt đầu họ thường bối rối "Tơi tìm phần mềm để làm việc với Big Data đâu?" Các ví dụ dựa phân phối Hadoop miễn phí Cloudera gọi CDH (viết tắt Cloudera distribution including Hadoop) Bản phân phối có sẵn dạng file ảnh máy ảo VMWare từ trang web Cloudera Gần IBM sửa đổi tảng Big Data để chạy CDH Xem thơng tin chi tiết phần Tài nguyên Thường thuật ngữ công nghệ đột phá bị lạm dụng nhiều, phù hợp trường hợp Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 ibm.com/developerWorks/vn/ developerWorks® Hadoop gì? Dưới vài định nghĩa Hadoop, định nghĩa nhắm vào nhóm đối tượng khác doanh nghiệp: • Đối với giám đốc điều hành: Hadoop dự án phần mềm nguồn mở Apache để thu giá trị từ khối lượng/ tốc độ/ tính đa dạng đáng kinh ngạc liệu tổ chức bạn Hãy sử dụng liệu thay vứt bỏ hầu hết liệu • Đối với giám đốc kỹ thuật: Hadoop phần mềm nguồn mở để khai phá Big Data có cấu trúc khơng có cấu trúc cơng ty bạn Nó tích hợp với hệ sinh thái Business Intelligence bạn • Đối với nhân viên pháp lý: Hadoop phần mềm nguồn mở nhiều nhà cung cấp đóng gói hỗ trợ Hãy xem phần Tài nguyên việc trả tiền sở hữu trí tuệ (IP) • Đối với kỹ sư: Hadoop môi trường song song thực thi map-reduce dựa Java, khơng chia sẻ Hãy nghĩ đến hàng trăm, hàng ngàn máy tính làm việc để giải vấn đề, có khả khơi phục lỗi dựng sẵn Các dự án hệ sinh thái Hadoop cung cấp khả load (tải) liệu, hỗ trợ ngôn ngữ cấp cao, triển khai đám mây tự động khả khác • Đối với chuyên gia bảo mật: Hadoop phần mềm bảo mật-Kerberos Hadoop có thành phần nào? 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ứ Ngoà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 quá trình mà hệ thống thực hiện sắp xếp và chuyển các kết quả đầu của map tới các đầu vào của các 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) Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang ca 40 developerWorksđ ibm.com/developerWorks/vn/ ã 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 ANSISQL đầ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ệ 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 if-then-else đ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 • Whirr: Cung cấp Đám mây cho Hadoop Bạn khởi động hệ thống vài phút với tệp cấu hình ngắn • Mahout: Máy học dành cho Hadoop Được sử dụng cho phân tích dự báo phân tích nâng cao khác • Fuse: Làm cho hệ thống HDFS trông hệ thống tệp thông thường, bạn sử dụng lệnh ls, cd, rm lệnh khác với liệu HDFS • Zookeeper: Được sử dụng để quản lý đồng cho hệ thống Bạn làm việc nhiều với Zookeeper, làm việc nhiều cho bạn Nếu bạn nghĩ bạn cần viết chương trình có sử dụng Zookeeper bạn rất, thơng minh bạn ủy viên cho dự án Apache bạn có ngày tồi tệ Hình cho thấy phần quan trọng Hadoop Hình Kiến trúc Hadoop HDFS, tầng cùng, nằm cụm phần cứng thông thường Các máy chủ lắp vào tủ khung (rack-mounted) đơn giản, máy chủ có CPU lõi 2-Hex, đến 12 đĩa 32 Gb ram Đối với cơng việc map-reduce, tầng trình ánh xạ đọc từ đĩa tốc độ cao Trình ánh xạ phát cặp khóa giá trị xếp đưa tới trình rút gọn tầng trình rút gọn tóm lược Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 ibm.com/developerWorks/vn/ developerWorks® cặp key-value Khơng, bạn khơng phải tóm lược cặp key-value, thực tế bạn có tác vụ map-reduce có có trình ánh xạ Điều trở nên dễ hiểu bạn xem ví dụ python-awk Hadoop tích hợp với sở hạ tầng Informix DB2 nào? Hadoop tích hợp tốt với sở liệu Informix sở liệu DB2 thông qua Sqoop Sqoop công cụ nguồn mở hàng đầu để di chuyển liệu Hadoop sở liệu quan hệ Nó sử dụng JDBC để đọc viết vào Informix, DB2, MySQL, Oracle nguồn khác Có thích ứng tối ưu hoá cho vài sở liệu, bao gồm Netezza DB2 Hãy xem phần Tài nguyên cách tải thích ứng Tất ví dụ đặc trưng Sqoop Bắt đầu: Làm để chạy ví dụ Hadoop, Hive, Pig, Oozie Sqoop đơn giản Bạn tìm hiểu nhập mơn định nghĩa, lúc bắt đầu công việc thực Để tiếp tục, bạn cần tải VMWare, VirtualBox file ảnh máy ảo khác từ trang Web Cloudera bắt đầu chạy MapReduce! File máy ảo chạy cấu hình 64bit mơi trường ảo hóa phổ biến Hầu hết mơi trường ảo hóa có tải miễn phí Khi bạn cố gắng khởi động file ảnh máy ảo 64bit, bạn nhận thơng báo lỗi thiết lập BIOS Hình cho thấy thay đổi cần thiết BIOS máy, Thinkpad™ Hãy thận trọng thực thay đổi Một số gói bảo mật cơng ty u cầu bạn nhập mật trước lưu thay đổi Hình Các thiết lập BIOS cho khách ảo 64bit Big Data dùng thực nhỏ Vấn đề làm cho máy tính bạn nóng lên xử lý tệp lớn, mà bạn thấy nguồn liệu thú vị công việc map-reduce để trả lời thắc mắc bạn Tải file ảnh máy ảo Hadoop Bạn cần sử dụng file ảnh máy ảo Cloudera để chạy ví dụ Hadoop công nghệ để giải vấn đề Việc đóng gói file ảnh Cloudera cho phép bạn tập trung vào câu hỏi big-data Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 developerWorks® ibm.com/developerWorks/vn/ Nhưng bạn định tự lắp ráp tất phận, Hadoop trở thành vấn đề cần giải quyết, khơng cịn giải pháp Tải máy ảo Máy ảo CDH4, sản phẩm có sẵn đây: CDH4 image Phiên trước, CDH3, có sẵn đây: CDH3 image Bạn chọn cơng nghệ ảo hóa Bạn tải mơi trường ảo hóa miễn phí từ VMWare phần mềm khác Ví dụ, chuyển đến vmware.com tải vmwareplayer Máy tính bạn chạy Windows, tải phiên vmware-player dành cho windows Các ví dụ sử dụng VMWare cho ví dụ chạy hệ điều hành Linux Ubuntu cách sử dụng "tar" thay "winzip" tương đương Sau tải về, giải nén (untar/unzip) sau: tar -zxvf cloudera-demo-vm-cdh4.0.0vmware.tar.gz Hoặc, bạn sử dụng CDH3, sử dụng lệnh sau: tar -zxvf cloudera-demo-vm-cdh3u4vmware.tar.gz Unzip hoạt động với tệp tar Sau giải nén, bạn bắt đầu chạy máy ảo sau: vmplayer cloudera-demo-vm.vmx Bây bạn có hình trơng giống hình hiển thị Hình Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 ibm.com/developerWorks/vn/ developerWorks® Hình Ảnh ảo Cloudera Lệnh Vmplayer sâu vào máy ảo khởi động máy ảo Nếu bạn sử dụng CDH3, bạn cần phải tắt máy ảo thay đổi thiết lập nhớ Sử dụng biểu tượng nút nhấn nguồn bên cạnh đồng hồ phía hình để tắt nguồn máy ảo Sau đó, bạn cần chỉnh sửa quyền truy cập vào thiết lập máy ảo Đối với CDH3, bước bạn tăng nhớ RAM Hầu hết thiết lập thay đổi tắt máy ảo Hình cho thấy cách truy cập vào thiết lập tăng nhớ RAM cấp phát lên 2GB Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 developerWorks® ibm.com/developerWorks/vn/ Hình Thêm nhớ RAM cho máy ảo Như hiển thị Hình 5, bạn thay đổi thiết lập mạng thành bridged (được nối cầu) Với thiết lập này, máy ảo nhận địa IP riêng Nếu điều tạo vấn đề sử dụng mạng bạn, bạn tùy chọn sử dụng Network Address Translation (NAT) Bạn sử dụng mạng để kết nối đến sở liệu Hình Thay đổi thiết lập mạng thành bridged Bạn bị hạn chế nhớ RAM hệ thống máy chủ vật lý, đó, đừng cố gắng cấp phát nhớ RAM nhiều nhớ RAM có máy tính bạn Nếu bạn làm vậy, máy tính chạy chậm Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 ibm.com/developerWorks/vn/ developerWorks® Bây giờ, bạn chờ lát, tiếp tục bật nguồn cho máy ảo Tài khoản cloudera tự động đăng nhập vào lúc khởi động Nếu bạn cần mật mật Cloudera là: cloudera Cài đặt Informix DB2 Bạn cần sở liệu để làm việc với Nếu bạn chưa có sở liệu nào, bạn tải Ấn Informix Developer (Phiên Informix dành cho nhà phát triển) Ấn DB2 Express-C miễn phí Một lựa chọn khác để cài đặt DB2 tải file ảnh máy ảo VMWare cài đặt sẵn DB2 hệ điều hành Linux SuSE Hãy đăng nhập người dùng chủ (root), với mật là: password Chuyển sang mã định danh người dùng (userid) db2inst1 Làm việc trực tiếp tài khoản root giống việc lái xe mà khơng thắt dây an tồn Hãy liên hệ với Quản trị viên sở liệu (DBA) bạn việc chạy sở liệu Bài khơng trình bày điều Đừng cố gắng cài đặt sở liệu bên máy ảo Cloudera khơng có đủ dung lượng đĩa để sử dụng Máy ảo kết nối với sở liệu cách sử dụng Sqoop thông qua driver JDBC Bạn cần có driver JDBC cho sở liệu máy ảo Bạn cài đặt trình điều khiển Informix Trình điều khiển DB2 có đây: http://www.ibm.com/services/forms/preLogin.do?source=swg-idsdjs or http://www-01.ibm.com/support/docview.wss?rs=4020&uid=swg21385217 Việc cài đặt trình driver JDBC Informix (hãy nhớ, cài driver bên máy ảo, sở liệu đó) hiển thị Liệt kê Liệt kê Cài đặt driver JDBC Informix tar -xvf /JDBC.3.70.JC5DE.tar followed by java -jar setup.jar Lưu ý: Chọn thư mục bên /home/cloudera để không bị hỏi quyền hạn cài đặt Driver JDBC DB2 định dạng nén, cần giải nén thư mục đích, Liệt kê Liệt kê Cài đặt driver JDBC DB2 mkdir db2jdbc cd db2jdbc unzip /ibm_data_server_driver_for_jdbc_sqlj_v10.1.zip Giới thiệu ngắn HDFS MapReduce Trước bạn bắt đầu di chuyển liệu sở liệu quan hệ bạn Hadoop, bạn cần biết qua HDFS MapReduce Có nhiều hướng dẫn kiểu "hello world" cho Hadoop, ví dụ đưa nhằm để cung cấp đủ thông tin để bạn hiểu tập thực hành sở liệu Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 developerWorks® ibm.com/developerWorks/vn/ HDFS cung cấp lưu trữ nút cụm bạn Bước việc sử dụng Hadoop đưa liệu vào HDFS Mã hiển thị Liệt kê lấy sách Mark Twain sách James Fenimore Cooper chép văn vào HDFS Liệt kê Nạp văn sách Mark Twain James Fenimore Cooper vào HDFS # install wget utility into the virtual image sudo yum install wget # use wget to download the Twain and Cooper's works $ wget -U firefox http://www.gutenberg.org/cache/epub/76/pg76.txt $ wget -U firefox http://www.gutenberg.org/cache/epub/3285/pg3285.txt # # # # $ $ load both into the HDFS file system first give the files better names DS for Deerslayer HF for Huckleberry Finn mv pg3285.txt DS.txt mv pg76.txt HF.txt # this next command will fail if the directory already exists $ hadoop fs -mkdir /user/cloudera # now put the text into the directory $ hadoop fs -put HF.txt /user/cloudera # $ $ $ # $ # $ way too much typing, create aliases for hadoop commands alias hput="hadoop fs -put" alias hcat="hadoop fs -cat" alias hls="hadoop fs -ls" for CDH4 alias hrmr="hadoop fs -rm -r" for CDH3 alias hrmr="hadoop fs -rmr" # load the other article # but add some compression because we can $ gzip DS.txt # the in the next command references the cloudera home directory # in hdfs, /user/cloudera $ hput DS.txt.gz # now take a look at the files we have in place $ hls Found items -rw-r r cloudera supergroup 459386 2012-08-08 19:34 /user/cloudera/DS.txt.gz -rw-r r cloudera supergroup 597587 2012-08-08 19:35 /user/cloudera/HF.txt Bây bạn có hai tệp thư mục HDFS Đừng phấn khích vội Thật tình, nút với có khoảng megabyte, chả có đáng xem Nhưng cụm có 400 nút bạn có petabyte tồn tại, bạn thực khó kìm giữ hứng thú Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 10 40 developerWorks® ibm.com/developerWorks/vn/ create external table customer ( cn int, fname string, lname string, company string, addr1 string, addr2 string, city string, state string, zip string, phone string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/cloudera/customer' ; # we already imported the db2 staff table above # now tell hive where to find the db2 data create external table staff ( id int, name string, dept string, job string, years string, salary float, comm float) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/cloudera/staff' ; # you can put the commands in a file # and execute them as follows: $ hive -f hivestaff Hive history file=/tmp/cloudera/hive_job_log_cloudera_201208101502_2140728119.txt OK Time taken: 3.247 seconds OK 10 Sanders 20 Mgr 98357.5 NULL 20 Pernal 20 Sales 78171.25 612.45 30 Marenghi 38 Mgr 77506.75 NULL 40 O'Brien 38 Sales 78006.0 846.55 50 Hanes 15 Mgr 10 80 lines deleted # now for the join we've all been waiting for :-) # this is a simple case, Hadoop can scale well into the petabyte range! $ hive Hive history file=/tmp/cloudera/hive_job_log_cloudera_201208101548_497937669.txt hive> select customer.cn, staff.name, > customer.addr1, customer.city, customer.phone > from staff join customer > on ( staff.id = customer.cn ); Total MapReduce jobs = Launching Job out of Number of reduce tasks not specified Estimated from input data size: In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer=number In order to limit the maximum number of reducers: set hive.exec.reducers.max=number In order to set a constant number of reducers: set mapred.reduce.tasks=number Starting Job = job_201208101425_0005, Tracking URL = http://0.0.0.0:50030/jobdetails.jsp?jobid=job_201208101425_0005 Kill Command = /usr/lib/hadoop/bin/hadoop Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 26 40 ibm.com/developerWorks/vn/ developerWorks® job -Dmapred.job.tracker=0.0.0.0:8021 -kill job_201208101425_0005 2012-08-10 15:49:07,538 Stage-1 map = 0%, reduce = 0% 2012-08-10 15:49:11,569 Stage-1 map = 50%, reduce = 0% 2012-08-10 15:49:12,574 Stage-1 map = 100%, reduce = 0% 2012-08-10 15:49:19,686 Stage-1 map = 100%, reduce = 33% 2012-08-10 15:49:20,692 Stage-1 map = 100%, reduce = 100% Ended Job = job_201208101425_0005 OK 110 Ngan 520 Topaz Way Redwood City 415-743-3611 120 Naughton 6627 N 17th Way Phoenix 602-265-8754 Time taken: 22.764 seconds Sẽ đẹp nhiều bạn sử dụng Hue để có giao diện đồ họa trình duyệt, thể Hình 9, 10 11 Hình Giao diện người dùng đồ họa (GUI) Beeswax Hue cho Hive CDH4, xem truy vấn Hiveql Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 27 40 developerWorks® ibm.com/developerWorks/vn/ Hình 10 Giao diện người dùng đồ họa (GUI) Beeswax Hue cho Hive, xem truy vấn Hiveql Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 28 40 ibm.com/developerWorks/vn/ developerWorks® Hình 11 Giao diện người dùng đồ họa (GUI) Beeswax Hue, xem kết phép nối Informix-DB2 Sử dụng Pig: Nối liệu Informix liệu DB2 Pig ngôn ngữ thủ tục Cũng giống Hive, tạo mã MapReduce ngầm bên vỏ bọc Tính dễ sử dụng Hadoop cịn tiếp tục cải thiện nhiều dự án trở nên có sẵn Cũng giống số người thực thích dịng lệnh, có số giao diện người dùng đồ họa làm việc tốt với Hadoop Liệt kê 19 cho thấy mã Pig sử dụng để nối bảng customer bảng staff từ ví dụ trước Liệt kê 19 Ví dụ Pig để nối bảng Informix với bảng DB2 $ pig grunt> staffdb2 = load 'staff' using PigStorage(',') >> as ( id, name, dept, job, years, salary, comm ); grunt> custifx2 = load 'customer' using PigStorage(',') as >> (cn, fname, lname, company, addr1, addr2, city, state, zip, phone) >> ; grunt> joined = join custifx2 by cn, staffdb2 by id; # to make pig generate a result set use the dump command # no work has happened up till now grunt> dump joined; 2012-08-11 21:24:51,848 [main] INFO org.apache.pig.tools.pigstats.ScriptState - Pig features used in the script: HASH_JOIN 2012-08-11 21:24:51,848 [main] INFO org.apache.pig.backend.hadoop.executionengine HExecutionEngine - pig.usenewlogicalplan is set to true Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 29 40 developerWorks® ibm.com/developerWorks/vn/ New logical plan will be used HadoopVersion PigVersion UserId StartedAt FinishedAt Features 0.20.2-cdh3u4 0.8.1-cdh3u4 cloudera 2012-08-11 21:24:51 2012-08-11 21:25:19 HASH_JOIN Success! Job Stats (time in seconds): JobId Maps Reduces MaxMapTime MinMapTIme AvgMapTime MaxReduceTime MinReduceTime AvgReduceTime Alias Feature Outputs job_201208111415_0006 8 10 10 10 custifx,joined,staffdb2 HASH_JOIN hdfs://0.0.0.0/tmp/temp1785920264/tmp-388629360, Input(s): Successfully read 35 records from: "hdfs://0.0.0.0/user/cloudera/staff" Successfully read 28 records from: "hdfs://0.0.0.0/user/cloudera/customer" Output(s): Successfully stored records (377 bytes) in: "hdfs://0.0.0.0/tmp/temp1785920264/tmp-388629360" Counters: Total records written : Total bytes written : 377 Spillable Memory Manager spill count : Total bags proactively spilled: Total records proactively spilled: Job DAG: job_201208111415_0006 2012-08-11 21:25:19,145 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Success! 2012-08-11 21:25:19,149 [main] INFO org.apache.hadoop.mapreduce.lib input.FileInputFormat - Total input paths to process : 2012-08-11 21:25:19,149 [main] INFO org.apache.pig.backend.hadoop executionengine.util.MapRedUtil - Total input paths to process : (110,Roy ,Jaeger ,AA Athletics ,520 Topaz Way ,null,Redwood City ,CA,94062,415-743-3611 ,110,Ngan,15,Clerk,5,42508.20,206.60) (120,Fred ,Jewell ,Century Pro Shop ,6627 N 17th Way ,null,Phoenix ,AZ,85016,602-265-8754 ,120,Naughton,38,Clerk,null,42954.75,180.00) Tôi chọn Java, Hive Pig nào? Bạn có nhiều tùy chọn để lập trình Hadoop tốt xem xét trường hợp sử dụng để chọn cơng cụ cho cơng việc Bạn khơng bị hạn chế làm việc với liệu quan hệ tập trung vào Informix, DB2 Hadoop để hoạt động tốt với chúng Việc viết hàng trăm dòng mã Java để thực phép nối băm kiểu quan hệ hồn tồn phí thời gian thuật tốn MapReduce Hadoop có sẵn Bạn chọn tùy chọn nào? Đó vấn đề sở thích cá nhân Một số người thích viết mã phép tốn tập hợp SQL Một số người khác thích viết mã kiểu thủ tục Bạn nên chọn ngôn ngữ mà bạn làm việc hiệu Nếu bạn có nhiều hệ thống quan hệ muốn kết hợp tất liệu với hiệu lớn với mức giá thấp, Hadoop, MapReduce, Hive Pig sẵn sàng để trợ giúp Đừng xóa liệu bạn: Cuộn lại phân vùng từ Informix vào HDFS Hầu hết sở liệu quan hệ đại phân vùng liệu Một trường hợp sử dụng phổ biến phân vùng theo khoảng thời gian Một cửa sổ thời gian cố định liệu lưu Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 30 40 ibm.com/developerWorks/vn/ developerWorks® sở liệu, ví dụ khoảng thời gian 18 tháng trơi qua, sau liệu đưa vào lưu trữ Khả tách phân vùng mạnh Nhưng sau phân vùng tách người ta làm với liệu? Việc lưu trữ liệu cũ vào băng từ cách tốn để loại bỏ byte liệu cũ Sau di chuyển sang mơi trường truy cập hơn, liệu truy cập trừ có u cầu kiểm tốn hợp pháp Hadoop đưa thay khác tốt Di chuyển byte liệu lưu trữ từ phân vùng cũ vào Hadoop tạo khả truy cập hiệu cao với chi phí thấp nhiều so với việc trì liệu hệ thống giao dịch quầy liệu/kho liệu ban đầu Dữ liệu q cũ khơng cịn giá trị giao dịch nữa, cịn có giá trị với tổ chức để dùng cho phân tích dài hạn Các ví dụ Sqoop hiển thị cung cấp điều cách di chuyển liệu từ phân vùng quan hệ sang HDFS Fuse – Truy cập tệp HDFS bạn thơng qua NFS Có thể truy cập liệu Informix/DB2/tệp phẳng HDFS thông qua NFS, hiển thị Liệt kê 20 Cách cung cấp hoạt động dịng lệnh mà khơng cần sử dụng giao diện "hadoop fsyadayada" Theo quan điểm công nghệ trường hợp sử dụng, NFS bị hạn chế môi trường Dữ liệu lớn, ví dụ cung cấp cho nhà phát triển liệu không-lớnlắm Liệt kê 20 Thiết lập Fuse - truy cập liệu HDFS bạn thông qua NFS # this is for CDH4, the CDH3 image doesn't have fuse installed $ mkdir fusemnt $ sudo hadoop-fuse-dfs dfs://localhost:8020 fusemnt/ INFO fuse_options.c:162 Adding FUSE arg fusemnt/ $ ls fusemnt tmp user var $ ls fusemnt/user cloudera hive $ ls fusemnt/user/cloudera customer DS.txt.gz HF.out HF.txt orders staff $ cat fusemnt/user/cloudera/orders/part-m-00001 1007,2008-05-31,117,null,n,278693 ,2008-06-05,125.90,25.20,null 1008,2008-06-07,110,closed Monday ,y,LZ230 ,2008-07-06,45.60,13.80,2008-07-21 1009,2008-06-14,111,next door to grocery ,n,4745 ,2008-06-21,20.40,10.00,2008-08-21 1010,2008-06-17,115,deliver 776 King St if no answer ,n,429Q ,2008-06-29,40.60,12.30,2008-08-22 1011,2008-06-18,104,express ,n,B77897 ,2008-07-03,10.40,5.00,2008-08-29 1012,2008-06-18,117,null,n,278701 ,2008-06-29,70.80,14.20,null Flume - tạo tệp sẵn sàng nạp Thế hệ Flume flume-ng trình nạp song song tốc độ cao Các sở liệu có trình nạp tốc độ cao, làm để chúng hoạt động tốt với nhau? Trường hợp sử dụng liệu quan hệ dành cho Flume-ng tạo tệp sẵn sàng để nạp, chỗ từ xa, cho máy chủ liệu quan hệ dùng trình nạp tốc độ cao Đúng chức chồng lên Sqoop, kịch lệnh hiển thị Liệt kê 21 tạo theo yêu cầu khách hàng đặc biệt cho kiểu nạp sở liệu Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 31 40 developerWorks® ibm.com/developerWorks/vn/ Liệt kê 21 Xuất liệu HDFS tới tệp phẳng để nạp sở liệu $ sudo yum install flume-ng $ cat flumeconf/hdfs2dbloadfile.conf # # started with example from flume-ng documentation # modified to hdfs source to file sink # # Define a memory channel called ch1 on agent1 agent1.channels.ch1.type = memory # Define an exec source called exec-source1 on agent1 and tell it # to bind to 0.0.0.0:31313 Connect it to channel ch1 agent1.sources.exec-source1.channels = ch1 agent1.sources.exec-source1.type = exec agent1.sources.exec-source1.command =hadoop fs -cat /user/cloudera/orders/part-m-00001 # this also works for all the files in the hdfs directory # agent1.sources.exec-source1.command =hadoop fs # -cat /user/cloudera/tsortin/* agent1.sources.exec-source1.bind = 0.0.0.0 agent1.sources.exec-source1.port = 31313 # Define a logger sink that simply file rolls # and connect it to the other end of the same channel agent1.sinks.fileroll-sink1.channel = ch1 agent1.sinks.fileroll-sink1.type = FILE_ROLL agent1.sinks.fileroll-sink1.sink.directory =/tmp # Finally, now that we've defined all of our components, tell # agent1 which ones we want to activate agent1.channels = ch1 agent1.sources = exec-source1 agent1.sinks = fileroll-sink1 # now time to run the script $ flume-ng agent conf /flumeconf/ -f /flumeconf/hdfs2dbloadfile.conf -n agent1 # here is the output file # don't forget to stop flume - it will keep polling by default and generate # more files $ cat /tmp/1344780561160-1 1007,2008-05-31,117,null,n,278693 ,2008-06-05,125.90,25.20,null 1008,2008-06-07,110,closed Monday ,y,LZ230 ,2008-07-06,45.60,13.80,2008-07-21 1009,2008-06-14,111,next door to ,n,4745 ,2008-06-21,20.40,10.00,2008-08-21 1010,2008-06-17,115,deliver 776 King St if no answer ,n,429Q ,2008-06-29,40.60,12.30,2008-08-22 1011,2008-06-18,104,express ,n,B77897 ,2008-07-03,10.40,5.00,2008-08-29 1012,2008-06-18,117,null,n,278701 ,2008-06-29,70.80,14.20,null # # # # # jump over to dbaccess and use the greatest data loader in informix: the external table external tables were actually developed for informix XPS back in the 1996 timeframe and are now available in may servers # drop table eorders; create external table eorders (on char(10), mydate char(18), foo char(18), bar char(18), Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 32 40 ibm.com/developerWorks/vn/ developerWorks® f4 char(18), f5 char(18), f6 char(18), f7 char(18), f8 char(18), f9 char(18) ) using (datafiles ("disk:/tmp/myfoo" ) , delimiter ","); select * from eorders; Oozie - thêm luồng công việc cho nhiều tác vụ Oozie xâu chuỗi nhiều tác vụ Hadoop với Có tập hợp ví dụ hấp dẫn kèm theo oozie, dùng đoạn mã hiển thị Liệt kê 22 Liệt kê 22 Kiểm soát tác vụ oozie # This sample is for CDH3 # untar the examples # CDH4 $ tar -zxvf /usr/share/doc/oozie-3.1.3+154/oozie-examples.tar.gz # CDH3 $ tar -zxvf /usr/share/doc/oozie-2.3.2+27.19/oozie-examples.tar.gz # cd to the directory where the examples live # you MUST put these jobs into the hdfs store to run them $ hadoop fs -put examples examples # start up the oozie server - you need to be the oozie user # since the oozie user is a non-login id use the following su trick # CDH4 $ sudo su - oozie -s /usr/lib/oozie/bin/oozie-sys.sh start # CDH3 $ sudo su - oozie -s /usr/lib/oozie/bin/oozie-start.sh # checkthe status oozie admin -oozie http://localhost:11000/oozie -status System mode: NORMAL # some jar housekeeping so oozie can find what it needs $ cp /usr/lib/sqoop/sqoop-1.3.0-cdh3u4.jar examples/apps/sqoop/lib/ $ cp /home/cloudera/Informix_JDBC_Driver/lib/ifxjdbc.jar examples/apps/sqoop/lib/ $ cp /home/cloudera/Informix_JDBC_Driver/lib/ifxjdbcx.jar examples/apps/sqoop/lib/ # edit the workflow.xml file to use your relational database: ################################# import driver com.informix.jdbc.IfxDriver connect jdbc:informix-sqli://192.168.1.143:54321/stores_demo:informixserver=ifx117 table orders username informix password useyours target-dir /user/${wf:user()}/${examplesRoot}/output-data/sqoop verbose ################################# # from the directory where you un-tarred the examples file the following: $ hrmr examples;hput examples examples # now you can run your sqoop job by submitting it to oozie Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 33 40 developerWorks® $ ibm.com/developerWorks/vn/ oozie job -oozie http://localhost:11000/oozie -config examples/apps/sqoop/job.properties -run \ job: 0000000-120812115858174-oozie-oozi-W # get the job status from the oozie server $ oozie job -oozie http://localhost:11000/oozie -info 0000000-120812115858174-oozie-oozi-W Job ID : 0000000-120812115858174-oozie-oozi-W Workflow Name : sqoop-wf App Path : hdfs://localhost:8020/user/cloudera/examples/apps/sqoop/workflow.xml Status : SUCCEEDED Run : User : cloudera Group : users Created : 2012-08-12 16:05 Started : 2012-08-12 16:05 Last Modified : 2012-08-12 16:05 Ended : 2012-08-12 16:05 Actions -ID Status Ext ID Ext Status Err Code 0000000-120812115858174-oozie-oozi-W@sqoop-node job_201208120930_0005 SUCCEEDED OK # how to kill a job may come in useful at some point oozie job -oozie http://localhost:11000/oozie -kill 0000013-120812115858174-oozie-oozi-W # job output will be in the file tree $ hcat /user/cloudera/examples/output-data/sqoop/part-m-00003 1018,2008-07-10,121,SW corner of Biltmore Mall ,n,S22942 ,2008-07-13,70.50,20.00,2008-08-06 1019,2008-07-11,122,closed till noon Mondays ,n,Z55709 ,2008-07-16,90.00,23.00,2008-08-06 1020,2008-07-11,123,express ,n,W2286 ,2008-07-16,14.00,8.50,2008-09-20 1021,2008-07-23,124,ask for Elaine ,n,C3288 ,2008-07-25,40.00,12.00,2008-08-22 1022,2008-07-24,126,express ,n,W9925 ,2008-07-30,15.00,13.00,2008-09-02 1023,2008-07-24,127,no deliveries after p.m ,n,KF2961 ,2008-07-30,60.00,18.00,2008-08-22 # if you run into this error there is a good chance that your # database lock file is owned by root $ oozie job -oozie http://localhost:11000/oozie -config \ examples/apps/sqoop/job.properties -run Error: E0607 : E0607: Other error in operation [ org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back See the nested exceptions for details on the errors that occurred.], {1} # fix this as follows $ sudo chown oozie:oozie /var/lib/oozie/oozie-db/db.lck # and restart the oozie server $ sudo su - oozie -s /usr/lib/oozie/bin/oozie-stop.sh $ sudo su - oozie -s /usr/lib/oozie/bin/oozie-start.sh Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 34 40 ibm.com/developerWorks/vn/ developerWorks® HBase, kho lưu trữ key-value hiệu cao HBase kho lưu trữ key-value hiệu cao Nếu trường hợp sử dụng bạn cần có khả mở rộng quy mô cần kiểu giao dịch sở liệu tương đương giao dịch giao kết tự động, HBase cơng nghệ cần dùng HBase sở liệu Tên khơng thích hợp số người, thuật ngữ base ngụ ý sở liệu Nó thực làm việc tuyệt vời cho kho lưu trữ key-value hiệu cao Có số chồng chéo chức HBase, Informix, DB2 sở liệu quan hệ khác Đối với giao dịch ACID, tuân thủ SQL đầy đủ, nhiều mục sở liệu quan hệ truyền thống lựa chọn hiển nhiên Bài tập viết mã cuối nhằm đem đến hiểu biết HBase Bài tập thiết kế đơn giản hoàn tồn khơng đại diện cho phạm vi chức HBase Hãy sử dụng ví dụ để hiểu số khả HBase "HBase, The Definitive Guide" (HBase hướng dẫn đáng tin cậy) Lars George, sách bắt buộc phải đọc bạn có kế hoạch thực loại bỏ HBase trường hợp sử dụng cụ thể Ví dụ cuối cùng, hiển thị Liệt kê 23 24, sử dụng giao diện REST cung cấp với HBase để chèn cặp khóa-các giá trị vào bảng HBase Chạy thử nghiệm curl Liệt kê 23 Tạo bảng HBase chèn vào hàng # enter the command line shell for hbase $ hbase shell HBase Shell; enter 'help for list of supported commands Type "exit to leave the HBase Shell Version 0.90.6-cdh3u4, r, Mon May 13:14:00 PDT 2012 # create a table with a single column family hbase(main):001:0> create 'mytable', 'mycolfamily' # if you get errors from hbase you need to fix the # network config # here is a sample of the error: ERROR: org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to ZooKeeper but the connection closes immediately This could be a sign that the server has too many connections (30 is the default) Consider inspecting your ZK server logs for that error and then make sure you are reusing HBaseConfiguration as often as you can See HTable's javadoc for more information # fix networking: # add the eth0 interface to /etc/hosts with a hostname $ sudo su # ifconfig | grep addr eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:C7:70 inet addr:192.168.1.134 Bcast:192.168.1.255 Mask:255.255.255.0 Interrupt:177 Base address:0x1400 inet addr:127.0.0.1 Mask:255.0.0.0 [root@myhost ~]# hostname myhost [root@myhost ~]# echo "192.168.1.134 myhost" >gt; /etc/hosts [root@myhost ~]# cd /etc/init.d Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 35 40 developerWorks® ibm.com/developerWorks/vn/ # now that the host and address are defined restart Hadoop [root@myhost init.d]# for i in hadoop* > > /$i restart > done # now try table create again: $ hbase shell HBase Shell; enter 'help for list of supported commands Type "exit to leave the HBase Shell Version 0.90.6-cdh3u4, r, Mon May 13:14:00 PDT 2012 hbase(main):001:0> create 'mytable' , 'mycolfamily' row(s) in 1.0920 seconds hbase(main):002:0> # # # # # insert a row into the table you created use some simple telephone call log data Notice that mycolfamily can have multiple cells this is very troubling for DBAs at first, but you get used to it hbase(main):001:0> put 'mytable', row(s) in 0.5180 seconds hbase(main):002:0> put 'mytable', 'key123', 'mycolfamily:number','6175551212' 'key123', 'mycolfamily:duration','25' # now describe and then scan the table hbase(main):005:0> describe 'mytable' DESCRIPTION ENABLED {NAME => 'mytable', FAMILIES => [{NAME => 'mycolfam true ily', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => ' 0', COMPRESSION => 'NONE', VERSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'f alse', BLOCKCACHE => 'true'}]} row(s) in 0.2250 seconds # notice that timestamps are included hbase(main):007:0> scan 'mytable' ROW COLUMN+CELL key123 column=mycolfamily:duration, timestamp=1346868499125, value=25 key123 column=mycolfamily:number, timestamp=1346868540850, value=6175551212 row(s) in 0.0250 seconds Liệt kê 24 Sử dụng giao diện REST Hbase # HBase includes a REST server $ hbase rest start -p 9393 & # you get a bunch of messages # get the status of the HBase server $ curl http://localhost:9393/status/cluster # lots of output # many lines deleted mytable,,1346866763530.a00f443084f21c0eea4a075bbfdfc292 stores=1 Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 36 40 ibm.com/developerWorks/vn/ developerWorks® storefiless=0 storefileSizeMB=0 memstoreSizeMB=0 storefileIndexSizeMB=0 # now scan the contents of mytable $ curl http://localhost:9393/mytable/* # lines deleted 12/09/05 15:08:49 DEBUG client.HTable$ClientScanner: Finished with scanning at REGION => # lines deleted MjU= NjE3NTU1MTIxMg== NjE3NTU1MTIxMg== # the values from the REST interface are base64 encoded $ echo a2V5MTIz | base64 -d key123 $ echo bXljb2xmYW1pbHk6bnVtYmVy | base64 -d mycolfamily:number # The table scan above gives the schema needed to insert into the HBase table $ echo RESTinsertedKey | base64 UkVTVGluc2VydGVkS2V5Cg== $ echo 7815551212 | base64 NzgxNTU1MTIxMgo= # add a table entry with a key value of "RESTinsertedKey" and # a phone number of "7815551212" # note - curl is all on one line $ curl -H "Content-Type: text/xml" -d ' NzgxNTU1MTIxMgo= http://192.168.1.134:9393/mytable/dummykey 12/09/05 15:52:34 DEBUG rest.RowResource: POST http://192.168.1.134:9393/mytable/dummykey 12/09/05 15:52:34 DEBUG rest.RowResource: PUT row=RESTinsertedKey\x0A, families={(family=mycolfamily, keyvalues=(RESTinsertedKey\x0A/mycolfamily:number/9223372036854775807/Put/vlen=11)} # trust, but verify hbase(main):002:0> scan 'mytable' ROW COLUMN+CELL RESTinsertedKey\x0A column=mycolfamily:number,timestamp=1346874754883,value=7815551212\x0A key123 column=mycolfamily:duration, timestamp=1346868499125, value=25 key123 column=mycolfamily:number, timestamp=1346868540850, value=6175551212 row(s) in 0.5610 seconds # notice the \x0A at the end of the key and value # this is the newline generated by the "echo" command # lets fix that $ printf 8885551212 | base64 ODg4NTU1MTIxMg== $ printf mykey | base64 bXlrZXk= Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 37 40 developerWorks® ibm.com/developerWorks/vn/ # note - curl statement is all on one line! curl -H "Content-Type: text/xml" -d ' ODg4NTU1MTIxMg== http://192.168.1.134:9393/mytable/dummykey # trust but verify hbase(main):001:0> scan 'mytable' ROW COLUMN+CELL RESTinsertedKey\x0A column=mycolfamily:number,timestamp=1346875811168,value=7815551212\x0A key123 column=mycolfamily:duration, timestamp=1346868499125, value=25 key123 column=mycolfamily:number, timestamp=1346868540850, value=6175551212 mykey column=mycolfamily:number, timestamp=1346877875638, value=8885551212 row(s) in 0.6100 seconds Kết luận Hoan hô, bạn thực đến cuối rồi, giỏi lắm! Đây khởi đầu để hiểu Hadoop cách tương tác với Informix DB2 Dưới số gợi ý cho bước bạn • Lấy ví dụ trình bày sửa lại chúng cho phù hợp với máy chủ bạn Bạn cần sử dụng liệu nhỏ khơng có nhiều khơng gian nhớ ảnh ảo • Lấy chứng Quản trị viên Hadoop Vào trang Cloudera để biết khóa học thơng tin kỳ kiểm tra • Lấy chứng Nhà phát triển Hadoop • Khởi động cụm cách sử dụng ấn Cloudera Manager miễn phí • Bắt đầu với IBM Big Sheets chạy đỉnh CDH4 Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 38 ca 40 ibm.com/developerWorks/vn/ developerWorksđ Ti nguyờn Hc ã S dụng nguồn cấp liệu RSS để yêu cầu thông báo tới loạt (Tìm hiểu thêm Các nguồn cấp liệu RSS nội dung developerWorks) • Tìm hiểu thêm Hadoop, Open Source Indemnification với trình diễn miễn phí Cloudera Hadoop • Tải trình diễn Cloudera Hadoop • Tìm hiểu thêm IBM Cloudera Partnership cách đọc "Tích hợp mức Hadoop: BigInsights IBM hỗ trợ Cloudera" developerWorks • Đọc sách "Hadoop hướng dẫn đáng tin cậy" Tom White, ấn thứ • Đọc sách "Lập trình Hive" Edward Capriolo, Dean Wampler Jason Rutherglen • Đọc sách "HBase hướng dẫn đáng tin cậy" Lars George • Đọc sách "Lập trình Pig" Alan Gates • Đọc viết khác developerWorks Marty Lurie • Truy cập vùng Quản lý thơng tin developerWorks để tìm thêm tài nguyên cho nhà phát triển nhà quản trị DB2 • Theo sát với kiện kỹ thuật webcast developerWorks tập trung vào loạt sản phẩm IBM xu hướng ngành công nghệ thông tin • Tham dự hướng dẫn Trực tiếp miễn phí developerWorks để tăng tốc độ nhanh chóng dựa sản phẩm công cụ IBM, xu hướng ngành công nghệ thông tin • Theo dõi developerWorks Twitter • Xem trình diễn developerWorks trải rộng từ trình diễn cài đặt thiết lập sản phẩm dành cho người bắt đầu đến chức nâng cao cho nhà phát triển có kinh nghiệm Lấy sản phẩm cơng nghệ Nhận tải miễn phí Cloudera Hadoop Tải ấn Nhà phát triển Informix Tải ấn DB2 Express-C Cài đặt trình điều khiển Informix Cài đặt trình điều khiển DB2 từ trang Phần mềm IBM Cài đặt trình điều khiển DB2 từ Cổng thông tin hỗ trợ IBM Xây dựng dự án phát triển bạn với phần mềm dùng thử IBM, có sẵn để tải trực tiếp từ developerWorks • Đánh giá sản phẩm IBM theo cách phù hợp với bạn nhất: Tải dùng thử sản phẩm, dùng thử sản phẩm trực tuyến, sử dụng sản phẩm mơi trường điện tốn đám mây dành vài SOA Sandbox để học cách thực kiến trúc hướng dịch vụ cách hiệu • • • • • • • Thảo luận • Hãy tham gia vào cộng đồng My developerWorks Kết nối với người sử dụng developerWorks khác khám phá blog, diễn đàn, nhóm wiki theo hướng nhà phát triển Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 39 40 developerWorks® ibm.com/developerWorks/vn/ Đơi nét tác giả Marty Lurie Marty Lurie bắt đầu nghiệp máy tính với việc bấm bìa giấy tìm hiểu lập trình Fortran máy tính IBM 1130 Cơng việc hàng ngày ông Kỹ sư hệ thống Hadoop Cloudera, có hỏi ơng nói đùa chủ yếu chơi với máy tính Ơng thích chương trình mà ơng viết để kết nối máy trượt tuyết đường dài Nordic Track với máy tính xách tay, nhờ máy mà ơng giảm cân Anh giảm lượng cholesterol 20% Marty có chứng Haddop Administrator Hadoop Developer Cloudera, chứng Advanced WebSphere Administrator IBM, chứng Professional Informix, chứng DB2 DBA, chứng Business Intelligence Solutions Professional, chứng Linux + Ngoài ra, ơng huấn luyện chó chơi bóng rổ Bạn liên hệ với Marty marty@cloudera.com © Copyright IBM Corporation 2013 (www.ibm.com/legal/copytrade.shtml) Nhẫn hiệu đăng ký (www.ibm.com/developerworks/vn/ibm/trademarks/) Big Data nguồn mở, Phần 1: Hướng dẫn Hadoop: Tạo ứng dụng Hello World với Java, Pig, Hive, Flume, Fuse, Oozie Sqoop với Informix, DB2 MySQL Trang 40 40 ... giảm cân Anh giảm lượng cholesterol 20% Marty có chứng Haddop Administrator Hadoop Developer Cloudera, chứng Advanced WebSphere Administrator IBM, chứng Professional Informix, chứng DB2 DBA, chứng... ,2008-07-16,20.60,6.30,2008-08-31 1016,2008-06-29,119, St ,n,PC6782 ,2008-07-12,35.00,11.80,null 1017,2008-07-09,120,use ,n ,DM3 54331 ,2008-07-13,60.00,18.00,null Tại có bốn tệp khác mà tệp chứa phần liệu? Sqoop tiện ích... Oozie Sqoop với Informix, DB2 MySQL Trang 26 40 ibm.com/developerWorks/vn/ developerWorks® job -Dmapred.job.tracker=0.0.0.0:8021 -kill job_201208101425_0005 2012-08-10 15:49:07,538 Stage-1 map

Ngày đăng: 28/12/2021, 10:13

HÌNH ẢNH LIÊN QUAN

Hình 2. Các thiết lập BIOS cho một khách ảo 64bit - Dm 1209hadoopbigdata pdf
Hình 2. Các thiết lập BIOS cho một khách ảo 64bit (Trang 5)
Hình 3. Ảnh ảo Cloudera - Dm 1209hadoopbigdata pdf
Hình 3. Ảnh ảo Cloudera (Trang 7)
Hình 4. Thêm bộ nhớ RAM cho máy ảo - Dm 1209hadoopbigdata pdf
Hình 4. Thêm bộ nhớ RAM cho máy ảo (Trang 8)
Như hiển thị trong Hình 5, bạn có thể thay đổi các thiết lập mạng thành bridged (được nối cầu) - Dm 1209hadoopbigdata pdf
h ư hiển thị trong Hình 5, bạn có thể thay đổi các thiết lập mạng thành bridged (được nối cầu) (Trang 8)
Hình 6 cho thấy một trang web ví dụ mẫu về các số liệu đo lường của công việc Hadoop sau khi - Dm 1209hadoopbigdata pdf
Hình 6 cho thấy một trang web ví dụ mẫu về các số liệu đo lường của công việc Hadoop sau khi (Trang 12)
Hình 6. Trang web ví dụ mẫu của Hadoop - Dm 1209hadoopbigdata pdf
Hình 6. Trang web ví dụ mẫu của Hadoop (Trang 13)
Hình 7. Khám phá HDFS bằng một trình duyệt - Dm 1209hadoopbigdata pdf
Hình 7. Khám phá HDFS bằng một trình duyệt (Trang 15)
Hình 8. Trình quản lý Cloudera quản lý Các dịch vụ Hadoop - Dm 1209hadoopbigdata pdf
Hình 8. Trình quản lý Cloudera quản lý Các dịch vụ Hadoop (Trang 16)
Bước tiếp theo là nhập khẩu một bảng DB2. Như hiển thị trong Liệt kê 17, bằng cách chỉ rõ tùy chọn - Dm 1209hadoopbigdata pdf
c tiếp theo là nhập khẩu một bảng DB2. Như hiển thị trong Liệt kê 17, bằng cách chỉ rõ tùy chọn (Trang 24)
Hình 9. Giao diện người dùng đồ họa (GUI) Beeswax của Hue cho Hive trong CDH4, xem truy  vấn Hiveql - Dm 1209hadoopbigdata pdf
Hình 9. Giao diện người dùng đồ họa (GUI) Beeswax của Hue cho Hive trong CDH4, xem truy vấn Hiveql (Trang 27)
trong Hình 9, 10 và 11. - Dm 1209hadoopbigdata pdf
trong Hình 9, 10 và 11 (Trang 27)
Hình 10. Giao diện người dùng đồ họa (GUI) Beeswax của Hue cho Hive, xem truy  vấn Hiveql - Dm 1209hadoopbigdata pdf
Hình 10. Giao diện người dùng đồ họa (GUI) Beeswax của Hue cho Hive, xem truy vấn Hiveql (Trang 28)
Hình 11. Giao diện người dùng đồ họa (GUI) Beeswax của Hue, xem kết quả của - Dm 1209hadoopbigdata pdf
Hình 11. Giao diện người dùng đồ họa (GUI) Beeswax của Hue, xem kết quả của (Trang 29)

TỪ KHÓA LIÊN QUAN