Big Data ngun m, Phần 1: Hướng dn Hadoop: To ng
dng Hello World vi Java, Pig, Hive, Flume, Fuse, Oozie và
Sqoop vi Informix, DB2 và MySQL
Có rt nhiều điều thú v v Big Data và cũng có rất nhiu s nhm ln v nó. i
này s cung cp một đnh nghĩa về Big Data và sau đó thực hin mt lot các ví d
để bn có th có được nhng hiu biết ban đầu v mt s kh năng ca Hadoop,
công ngh ngun m hàng đầu trong lĩnh vực Big Data. C th, ta tp trung vào
nhng câu hi sau:.
Big Data, Hadoop, Sqoop, Hive và Pig là gì và ti sao lĩnh vực này li
nhiều điều thú v?
Hadoop liên quan đến DB2 và Informix của IBM như thế nào? Các công
ngh này có th chy vi nhau không?
Tôi có th bắt đầu vi Big Data như thếo? Có ví d nào d để th chy
trên máy tính không?
Nếu bn đã biết khái nim v Hadoop ri và mun vào thng ng vic vi
các ví d mu, thãy làm như sau.
1. y bắt đầu chy mt th hin Informix hoc DB2 ca bn.
2. Ti v file nh cho máy o VMWare t Trang web ca Cloudera
tăng thông số RAM máy o lên thành 1,5 GB.
3. Chuyn đến mc cha các ví d mu.
4. mt th hiện MySQL đã được xây dng sn trong máy o
VMWare này. Nếu bn đang làm các bài thực hành mà không kết ni
mng, hãy s dng các ví d MySQL này.
Ngoài ra, xin vui lòng xem tiếp...
Big Data là gì?
Big Data ln v s lượng, được bt gi vi tốc độ nhanh, có cu trúc hoc không
có cu trúc, hoc là bao gm các yếu t trên. Nhng yếu t y làm cho Big Data
khó bt gi li, khai pvà qun lý nếu dùng các phương thức truyn thng. Có rt
nhiu ý kiến v lĩnh vực này, đến ni có th cần đến mt cuc tranh lun kéo dài
ch để định nghĩa thế nào là Big Data.
S dng công ngh Big Data không ch gii hn vc khi lượng ln. Bài này s
dng các ví d mu nh đ minh ha các kh năng ca công ngh này. Tính đến
năm 2012, các hệ thống được coi ln nm trong phm vi 100 Petabyte.
D liu ln th va là d liu có cu trúc, va là d liu không có cu trúc. Các
sở d liu quan h truyn thng, như Informix và DB2, cung cp các gii pháp
đã được kim chng vi d liu có cu trúc. Thông qua kh năng mở rng, các cơ
s d liu này cũng quản lý c d liu không có cu trúc. Công ngh Hadoop mang
đến nhng k thut lp trình mi và d s dụng hơn để làm vic vi các kho d
liu ln c d liu có cu trúc ln d liu không có cu trúc.
V đầu trang
Ti sao li những điều thú v y?
Có nhiu yếu t to nên s cường điu xoay quanh Big Data, bao gm:.
Mang tính toán lưu trữ li cùng vi nhau trên phn cng tng dng: Cho
kết qu tốc độ nhanh vi chi phí thp.
T s giá hiệu năng: Công nghệ Big Data của Hadoop đưa ra mức tiết kim
chi phí đáng kể (hãy nghĩ đến mt h s nhân xp x 10) vi nhng ci thin
hiệu năng đáng kể (mt ln na, hãy nghĩ đến mt h s nhân là 10). Li lãi
ca bn có th thay đổi. Nếu công ngh hin ti có th b đánh bại nng n
như vậy, thì thật đáng để xem xét xem Hadoop có th b sung hoc thay thế
các khía cnh ca kiến trúc hin ti ca bn không.
Kh năng mở rng quy mô tuyến tính: Tt cc công ngh song song đều
tuyên b d m rng quy mô. Hadoop có kh năng mở rng quy mô k t
khi phát hành bn mi nht có kh năng mở rng gii hn s lượng các nút
vượt quá 4.000.
Truy cập đầy đ đến d liu không có cu trúc: Mt kho d liuth m
rng quy mô cao vi mt mô hình lp trình song song thích hp,
MapReduce, đã là mt thách thc cho ngành công nghip t lâu nay. Mô
hình lp trình ca Hadoop không gii quyết tt c vấn đề, nhưng nó là một
gii pháp mnh cho nhiu nhim v.
Các bn phân phi Hadoop: IBM và Cloudera
Đối vi những người mi bắt đầu thì h thường bi ri rng "Tôi có th tìm phn
mm đ làm vic vi Big Data đâu?" Các ví d trong bài này đều da trên bn
phân phi Hadoop min phí của Cloudera được gi là CDH (viết tt ca Cloudera
distribution including Hadoop). Bn phân phi này có sẵn dưới dng mt file nh
máy o VMWare t trang web Cloudera. Gần đây IBM đang sửa đổi nn tng Big
Data ca mình để chy trên CDH. Xem thông tin chi tiết trong phn i nguyên.
Thường thì thut ngng ngh đột phá b lm dng rt nhiu, nhưng có thể nó rt
phù hợp trong trường hp này.
V đầu trang
Hadoop là gì?
Dưới đây là một vài đnh nghĩa về Hadoop, mi định nghĩa nhắm vào mt nhóm
đối tượng khác nhau trong doanh nghip:
Đối với các giám đốc điều hành: Hadoop mt d án phn mm ngun m
của Apache để thu được giá tr t khối lượng/ tốc độ/ tính đa dạng đáng kinh
ngc ca d liu v t chc ca bn. Hãy s dng d liu thay vì vt b hu
hết d liệu đó đi.
Đối với các giám đc k thut: Hadoop là mt b phn mm ngun m để
khai phá Big Datacu trúc và không có cu trúc vng ty ca bn. Nó
ch hp vi h sinh thái Business Intelligence ca bn.
Đối vi nhân viên pháp lý: Hadoop là mt b phn mm ngun m được
nhiu nhà cung cấp đóng gói và hỗ tr. Hãy xem phni nguyên v vic
tr tin s hu trí tu (IP).
Đối vi các k sư: Hadoop là một môi trường song song thc thi map-reduce
da trên Java, không chia s gì c.y nghĩ đến hàng trăm, ng ngàn máy
tính đang m việc để gii quyết cùng mt vấn đề,kh năng khôi phục li
dng sn. Các d án trong h sinh thái Hadoop cung cp kh năng load (tải)
d liu, h tr ngôn ng cp cao, trin khai trên đám mây tự động và các kh
năng khác.
Đối vi chuyên gia bo mt: Hadoop là mt b phn mm bo mt-
Kerberos.
Hadoop có nhng thành phn nào?
D án Hadoop ca Apache có hai thành phn ct lõi, kho lưu tr tp gi là Hadoop
Distributed File System (HDFS – H thng tp phân tán Hadoop) và khung công
tác lp trình gi là MapReduce. mt s d án h tr để s dng HDFS
MapReduce. Bài này s cung cp mti nhìn sơ lược, bn hãy tìm đọc cunch
ca OReily "Hadoop The Definitive Guide", tái bn ln th 3, để biết tm chi tiết.
Các định nghĩa dưới đây nhằm cung cp cho bn những thông tin cơ bản để s
dng các ví d mã tiếp theo. i này thc s mong mun giúp bn bắt đầu bng
tri nghim thc hành vi ng ngh này. Đây một bài hướng dn hơn là bài hỏi
đáp thảo lun.
HDFS: Nếu bn muốn có n 4000 máy tính làm việc vi d liu ca bn,
thì tốt hơn bạn nên ph biến d liu ca bn trên hơn 4000 máy tính đó.
HDFS thc hin điều này cho bn. HDFS có mt vài b phn dch chuyn.
Các Datanode (Nút d liệu) lưu trữ d liu ca bn và Namenode (Nút tên)
theo dõi nơi lưu trữ các th. Ngoài ra còn có nhng thành phn khác na,
nhưng như thế đã đủ để bắt đầu.
MapReduce: Đây là mô hình lp trình cho Hadoop. Có hai giai đoạn, không
ngạc nhiên khi được gọi là Map và Reduce. Để gây n tượng vi các bn bè
ca bn hãy nói vi h là có mt quá 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 ra của map tới các
đầu vào của các bộ rút gọn) giữa hai giai đon Map và Reduce. JobTracker
(Trình theo dõi công vic) qun lý hơn 4000 thành phần công vic
MapReduce. Các TaskTracker (Trình theo dõi nhim v) nhn các lnh t
JobTracker. Nếu bn thích Java thì viết mã bng Java. Nếu bn thích SQL
hoc các ngôn ng khác không phi Java thì rt may là bn có th s dng
mt tin ích gi là Hadoop Streaming (Lung d liu Hadoop).
Hadoop Streaming: Mt tiện ích để to nên mã MapReduce bng bt k
ngôn ng nào: C, Perl, Python, C++, Bash, v.v. Các ví d bao gm mt trình
mapper Python và mt trình reducer AWK.
Hive Hue: Nếu bn thích SQL, bn s rt vui khi biết rng bn có th viết
SQL và yêu cu Hive chuyn đổi nó thành mt tác v MapReduce. Đúng
bạn ca có một môi trường ANSI-SQL đầy đủ, nhưng bạn4000 ghi
chép và kh năng mở rng quy mô ra nhiu Petabyte. Hue cung cp cho bn
mt giao diện đồ ha da trên trình duyt đ làm công vic Hive ca bn.
Pig: Một môi trường lp trình mức cao hơn để viết mã MapReduce. Ngôn
ng Pig được gi là Pig Latin. Bn th thấy các quy ước đặt tên hơi khác
thường một chút, nhưng bạn s t s giá-hiệu năng đáng kinh ngạc
tính sn sàng cao.
Sqoop: Cung cp vic truyn d liu hai chiu giữa Hadoop và cơ s d liu
quan h yêu thích ca bn.
Oozie: Qun lung ng vic Hadoop. Oozie không thay thế trình lp lch
biu hay công c BPM ca bn, nhưng nó cung cp cu trúc phân nhánh if-
then-else và điều khin trong phm vi tác v Hadoop ca bn.
HBase: Một kho lưu tr key-value có th m rng quy mô rt ln. hot
động rt ging như một hash-map để lưu tr lâu bn (vi nhng người hâm
m python, hãy nghĩ đến mt t điển). Nó không phi là một cơ sở d liu
quan h, mc dù có n là HBase.
FlumeNG: Trình np thi gian thực để to lung d liu ca bn vào
Hadoop.lưu trữ d liu trong HDFS và HBase. Bn s mun bắt đầu vi
FlumeNG, để ci thin luồng ban đầu.
Whirr: Cung cấp Đám y cho Hadoop. Bn có th khi động mt h thng
ch trong vài phút vi mt tp cu hình rt ngn.
Mahout: Máy học dành cho Hadoop. Được s dng cho các phân tích d báo
và phân tích nâng cao khác.
Fuse: Làm cho h thống HDFS trông như một h thng tp thông thường, do
đó bạn có th s dng lnh ls, cd, rm nhng lnh khác vi d liu HDFS.
Zookeeper: Được s dụng để qun lý đồng b cho h thng. Bn s không
phi m vic nhiu vi Zookeeper, nhưng nó sẽ m vic rt nhiu cho bn.
Nếu bn nghĩ rằng bn cn viết một cơng trình có s dng Zookeeper t
bn hoc là rt, rt thông minh và bn có thmt y viên cho mt d án
Apache hoc bn sp có mt ngày rt ti t.
Hình 1 cho thy các phn quan trng ca Hadoop.
Hình 1. Kiến trúc Hadoop
HDFS, tng dưới cùng, nm tn mt cm phn cng thông thường. Các máy ch
lp vào t khung (rack-mounted) đơn giản, mi máy ch có các CPU lõi 2-Hex, 6
đến 12 đĩa và 32 Gb ram. Đối vi mt công vic map-reduce, tng trình ánh x đọc
t các đĩa ở tốc độ rt cao. Trình ánh x phát ra các cp khóa giá tr đưc sp xếp
và được đưa tới trình rút gn và tng trình rút gọn tóm lược các cp key-value.
Không, bn không phi tóm lược các cp key-value, trên thc tế bn có thmt
tác v map-reduce ch có có các trình ánh x. Điều này s tr nên d hiểu hơn khi
bn xem ví d python-awk.
Hadoop tích hp với cơ s h tng Informix hoặc DB2 như thế nào?
Hadoop tích hp rt tt với cơ sở d liệu Informix và cơ s d liu DB2 thông qua
Sqoop. Sqoop là công c ngun mng đầu để di chuyn d liu gia Hadoop
các cơ s d liu quan h. Nó s dụng JDBC để đọc và viết vào Informix, DB2,
MySQL, Oracle và các ngun khác. các b thích ứng được ti ưu hoá cho một
vài cơ s d liu, bao gm Netezza và DB2. Hãy xem phn Tài nguyên v cách ti
v các b thích ng này. Tt c các d đều là đặc trưng ca Sqoop.