เนื่องจากได้เรียนวิชา BigData มาระยะหนึ่งโดยใช้ MapReduce Function บน MongoDB และใช้งาน Hadoop ก็พบว่ากว่าจะได้ใช้งานต้องใช้เวลาในการติดตั้งพอสมควร และการใช้ Hadoop อย่างเดียว ชีวิตคุณจะพบกับความทรมานอย่างแสนสาหัส เอาเป็นว่าใช้เครื่องมือที่เป็น Ecosystem ของ Hadoop เข้ามาช่วยจะดีที่สุด สำหรับผู้ที่ต้องการเรียนรู้เบื้องต้นว่า BigData เป็นอย่างไร จะเล่นกับ Hadoop ได้อย่างไร ผมแนะนำเครื่องมือง่ายๆ ที่จะทำให้คุณเรียนรู้การใช้งาน Hadoop ได้อย่างรวดเร็ว คือ HortonWorks Sandbox ครับ HortonWorks Sandbox เป็นชุด Appliance ที่รวบรวมเอาเครื่องมือที่เกี่ยวข้องกับ Haddop มารวบรวมไว้พร้อมใช้งานเพื่อศึกษาการใช้งานและการทำงานร่วมกับ Hadoop สำหรับ Sandbox แบ่งเป็น VM Image สำหรับ VirtualBox, VMWare และ HyperV สามารถดาวน์โหลดเอาไปทดลองเล่นกันได้

ในชุดของ Sandbox ประกอบด้วย

  • Apache Hadoop
  • Apache Hive
  • Apache HBase
  • Apache Pig
  • Apache Storm
  • Apache Solr
  • Apache Falcon
  • Apache Sqoop
  • Apache Flume
  • Apache Oozie
  • Apache Ambari
  • Apache Mahout
  • Apache ZooKeeper
  • Apache Knox

เรียกได้ว่ามายกชุดกันเลยทีเดียว

มาลองเล่น MapReduce บน HortonWorks กันกับปัญหาพื้นฐานนับจำนวนคำ เราจะใช้หนังสือของคุณ James Joyce ชื่อ Ulysses กันครับ ให้ดาวน์โหลดมาแล้วแตกไฟล์ zip ให้เรียบร้อย แล้วใช้ File Browser เพื่อ upload ไฟล์หนังสือเข้าไป

จากนั้นใช้ Pig Script เขียน code ดังนี้

a = load '/user/hue/4300.txt';

b = foreach a generate flatten(TOKENIZE((chararray)$0)) as word;

c = group b by word;

d = foreach c generate COUNT(b), group;

store d into '/user/hue/pig_wordcount';

กำหนดชื่อ Script นี้ แล้วสั่ง Execute ครับ ผลลัพท์ที่ได้จะอยู่ในไดเรคทอรี /user/hue/pig_wordcount ผลลัพท์ที่ได้จะอยู่ในรูปแบบ key-value pair เรียกดูจาก File Manager ได้ครับ

จากนั้นเราก็เอาผลลัพท์ที่ได้ import เข้า HCatalog เพื่อสร้าง table เพื่อให้ใช้ SQL Query ได้ เพิ่มความสะดวกมากขึ้น จะได้ไม่ต้องเขียน script เรียกข้อมูลจาก key-value ให้ยุ่งยาก

ลองสั่ง Query ผ่าน Hive ดูครับ

เราก็จะได้ผลลัพท์ดังนี้

สำหรับ Word Count เป็นตัวอย่างง่ายๆ ของ MapReduce สำหรับท่านที่สนใจเรียนเพิ่มเติมก็สามารถดูรายละเอียดได้ที่หน้า Tutorial Gallery ครับ