สรุปสิ่งสำคัญๆของการติดตั้ง Cloudera Big Data Platform แบบ Enterprise กันนิดหน่อย

Auoychai
3 min readNov 5, 2018

--

ด้วยความที่ครึ่งปีหลังนี้เรามีภาระกิจต้องไปช่วยบริษัท ZyGen ที่เป็นผู้ให้บริการอิมพลีเมนท์ SAP Solution และ BI บน SAP และ Power BI รวมถึงการสนับสนุนผู้เชี่ยวชาญด้าน SAP ไปช่วยงานลูกค้าองค์ที่สำนักงานลูกค้า

สำหรับภาระกิจนี้คือการสร้าง Data Science Team ทั้งส่วนของงาน Big Data Engineer และ Data Scientist และ รวมถึงทำภาพงานฝั่ง Business ที่จะกลั่นเป็นบริการใหม่ในด้าน Big Data พร้อมกับการไปช่วยทีม Sale ในการเข้าเสนอโซลูชั่นของงานให้กับลูกค้า

. ดังนั้นกลิ่นของงานฝั่ง Build Team ก็จะเป็นเรื่องการเป็น ผู้สอนและพี่เลี้ยง สำหรับการสอนทีม ทั้งทีม Big Data Engineer เรื่องของ Hadoop&Ecosystem ในการใช้งานแต่ละ Component การเอาแต่ละ Component มาประกอบรวมเป็น Solutionและการเชื่อมต่อกับ SAP ในการเติมเต็มสร้างจุดแข็งเพิ่มขึ้น

ซึ่งภาพคราวๆมันก็จะเป็นทั้งพาเล่นการเชื่อมต่อ พาเขียนโปรแกรม หาโจทย์ให้ทำ และ แก้ปัญหาเวลาที่น้องๆติดปัญหา โดยยี้ห้อเครื่องมือหลักๆก็คือ Clouder Big Data Platform และ Talend

ขณะที่ทีม Data Scientist ก็พาเขียน Python พาทำ Data Analysis เชิงเทคนิค การทำ Machine Learning เทคนิคและกระบวนการพัฒนา Machine Learning รวมถึงฝึกปฏิบัติการ ML Algorithm แบบต่างบน Python

เข้าเรื่องได้หรือยังครับ ?

ขายยากันมายาวเลย มาเข้าเรื่องกันดีกว่าสำหรับงานฝั่ง Big Data Engineer เราจะต้องทำการติดตั้ง Cloudera Cluster สำหรับทำ Development Environment ให้กับทีมด้วย ก็เลยถือโอกาสเอามาแบ่งปันให้กับหลายๆท่านที่สนใจ หรือ เคยไปเรียนมาแล้วแต่ภาพอาจจะยังไม่ชัดว่า เวลาจะเอามาทำจริงกับแบบไหน

เพราะบ้างทีอาจจะได้เรียนแค่ในระดับเอา SandBox ที่เป็น QuickStart VM เอามาลองใช้งาน หรือ บางที ก็ Quick Start แบบติดตั้งในแบบ Plan A สำหรับทำ Demo เล่นง่ายๆ One Click จบปุ๊บได้ลองใช้งานปั๊บเลย เวลาจะกลับ Office ไปลองติดตั้งจริงเป็นเรื่องเป็นราวแบบ Cluster มันก็จะยากๆหน่อย เพราะ Document ของ Cloudera เป็นแบบ Reference จริงๆ ยิ่งอ่านยิ่งเพลิน ยิ่งเพลินยิ่งงง จับต้นชนปลายเป็นลำดับการติดตั้งยากกันจริง

ดังนั้นการแบ่งปันรอบนี้จะมาสรุปลำดับๆที่สำคัญ และ จุดที่จำเป็นต้องดำเนินการ เพื่อให้รอยทางการลงมือติดตั้งเองพอเดินกันได้ด้วยตัวเองนะ

แนะจุดสำคัญในระหว่างทางติดตั้ง Clouder และ คำแนะนำอื่น

1. ส่วนเน็ตเวิร์คและเครือข่าย

  • การใช้ CentOS จะต้อง Disable SELinux
  • ทุกเครื่องต้อง Set Host Name & FQDN
  • ทุกเครื่องต้องคุยกันได้แบบ Passwordless บนท่อ SSH

2. เตรียมการ RDBMS สำหรับเก็บ Configuration ของ Hadoop&Ecosystem Component

  • การใช้งาน MySQL ก็ไม่ได้แย่นะสำหรับขนาดระบบ Big Data System ของบ้านเรา แต่การติดตั้ง MySQL บน Linux สิ่งแรกในปัญหาที่เราจะเจอคือ การเปลี่ยน Default Usename มาเป็น Admin Username & Password ของเราเอง และ เพราะมันจะถูกอ้างอิงไปใช้สำหรับการสร้างก้อน Database สำหรับเก็บข้อมูลและConfiguration ของ Software Componenet อื่นๆด้วย เช่น Metastore ของ Hive หรือ พวก Cloudera System statistic data ต่างๆ
  • สิ่งสำคัญอีกเรื่องคือการซ้อมมือ สร้าง User และ การให้สิทธิในการใช้งาน DB ต่างๆ
  • MySQL Engine สำหรับ Cloudera ต้องการคือ InnoDB นะ
  • อย่าลืม Download MySQL Connector มาทิ้งไว้ใน /usr/share/java
  • หลังปรับแก้ MySQL Configuration file แล้ว อย่าลืม Force ทำ chown กลับมาเป็น MySQL ด้วย ไม่อย่างนั้นคุณจะเจอปัญหา Start MySQL ไม่ขึ้นนะ

3. การเตรียมพร้อมการติดตั้ง Clouder ขั้นที่ 1

  • ครอบครัวของ Hadoop&Ecosystem ประกอบด้วย Software Component หลายตัวมาก และ พวกเขาต้องการติดตั้ง Python ด้วย แต่โปรดระวัง Python3 ยังไม่ค่อยลงรอยกับ Yim ที่ต้องต้องการ Python 2 ดั้งนั้นคุณอาจจะต้องมากกว่า 1 เวอร์ชั่นบน System เดียว แต่ใช้การกำหนด Default version ผ่าน Alternatives –config python และ Java ก็ด้วยเช่นกัน

4. จุดสำคัญมากๆของการติดตั้ง Clouder ถ้าพลาดจุดนี้ไปต่อไม่ได้เลย

  • Cloudera Manager ต้องการ Initial DB ซึ่งมันจะเตรียม Script มาให้เราแล้วตาม DB ที่เราเลือกใช้ ถ้าใช้ MySQL ก็คือไฟล์ scm_prepare_database.sh การ Run script นี้อ้างอิงตาม Cloudera Document Reference ได้เลย แต่สิ่งที่สำคัญมากๆคือ อย่าลืมสร้าง Database ชื่อ cmf ตั้งรอไว้ด้วย และ ให้สิทธิ User ที่จะอ้างอิงใช้งานกับ Cloudera สามารถทำงานกับ ก้อน DB นี้ด้วย เช่นเดียวกันให้ User นี้มีสิทธิทุกก้อน DB ที่จะเกิดขึ้นใหม่ระหว่างติดตั้ง Software Component/Service ต่างๆของ Big Data ของ Cloudera Manager ด้วย
  • การใช้ Service หรือ Software Component อื่นๆใน Hadoop Ecosystem ต้องการ DB ในการเก็บค่า Configuration ต่าง ให้สร้างแยกกันของใครของมัน จะได้ไม่เป็นภาระตอต Fix ปัญหาใดๆในอนาคต , รายการ DB ก็ตามด้านล่างเลย

| amon

| cmf

| hue

| metastore

| mysql

| oozie

| rmon

| sys

หลังจาก Initial DB สำหรับ Cloudera Manager ได้แล้วก็เป็นอันจบพิธี เริ่ม Start แล้วเข้าสู่ กระบวนการติดตั้ง Cloudera Service และ Hadoop&Ecosystem เลือก Service/Component ชอบกันได้เลย

5. จุดสำคัญขั้นสุดท้ายระหว่างติดตั้ง Cluster ตอนติดตั้ง Oozie

  • เนื่องจาก Oozie แม่ทุกสถาบัน จะ Copy Share Lib ของเพื่อนไปอ้างอิงใช้งานเยอะมา ส่งผลให้มันตาย ทำไม่สำเร็จ ทางแก้คือต้องปรับ oozie_upload_sharelib_cmd_timeout = 2000
Cloudera Manager

จากจุดนี้ไปแล้วถือว่า จบเรียบร้อยสมบูรณ์ เราก็จะมี Clouder Cluster ไว้ ทำ Pilot Project กันได้แล้วล่ะครับ

คำแนะนำอื่นที่น่าสนใจ

1. Cloudera Package Directory อยู่ที่ไหน

  • แต่ละส่วนจะอยู่ตามรายการด้านล่างนี้นะ
  • /opt/cloudera
  • /usr/share/cmf/schema
  • /var/log/cloudera-scm-server

2. ถ้าบ้างสิ่งพังแล้วอย่างเริ่มต้นใหม่ทำอย่างไร

เราก็ควรต้องไปลบล้างบางนะ ทำได้ตามนี้เลย

  • yum remove cloudera-manager-daemons cloudera-manager-serverr
  • rm /var/lib/cloudera-scm-agent/cm_guid

สุดท้ายแล้ว

ทั้งหมดนี้เป็นจุดที่สำคัญๆของการติดตั้ง Cloudera ที่เป็น Enterprise Hadoop หวังว่าจะเป็นหนึ่งในจิ๊กซอ ความรู้สำหรับท่านที่กำลัง เตรียมตัว หรือ ติดปัญหาอยู่บ้างไม่มากก็น้อยครับ

” ขอให้มีความสุขกับการ Go Big Data Infrastructure ร่วมกันครับ “

</br>

Note: ทีมใดอิมพลีเมนท์ Big Data Project ยังขาดคนช่วยก็ติดต่อเราได้นะ ยินดีช่วยเหลือทุก Scale งาน เรามีทีม ทั้งบริษัทที่เราไปช่วยทำงานเติมเต็มกันได้ทุกส่วนนะครับ

อ่านบทความอื่นๆเกี่ยวกับ Big Data ได้ที่ https://www.auoychai.com

รู้จักกันเพิ่มเติมได้ที่ https://www.auoychai.com/mylife/

--

--