การติดตั้ง Hadoop แบบ Step-by-Step สำหรับก้าวแรกของ Big Data Engineering

Posted on Posted in Big Data

      เราผ่านการทำความเข้าใจกับ Hadoop Architecture มาแล้ว จากบทความ "เรียนรู้ Hadoop และ การติดตั้ง Hadoop แบบ Step-by-Step กัน" จากนี้ไปเราจะเริ่มทำการติดตั้ง Apache Hadoop แบบ Cluster กัน  เพื่อให้ทุกคนมีกำลังใจว่าเราเริ่มทำได้แล้วและเป็นการฝึกแบบง่ายๆไปสู่สิ่งที่ยากขึ้น เราจะทำกัน 2 ขั้นตอนคือ

1). ทำแบบ Single Node ที่ใช้เครื่องเดียว  และ

2). ติดตั้งแบบ Multi Node แบบ 3 เครื่อง  

ถ้าหาเราสามารถติดตั้งแบบ Single Node ได้แล้วปรับ Parameter ใน Configuration file อีกนิดหน่อยก็จะสามารถ Run Hadoop Multi Node ได้แล้ว

      ดั้งนั้นขั้นตอนการเตรียมการติดตั้งจากนี้จะใช้ได้สำหรับการติดตั้งทั้ง 2 แบบ โดยแบ่งออกเป็น i) การเตรียม Server และ ติดตั้งโปรแกรมพื้นฐาน  ii) การติดตั้ง Hadoop แบบ Single Node  iii) การติดตั้ง Hadoop แบบ Multi Node

i). เตรียม Server และ ติดตั้งโปรแกรมพื้นฐาน

     i-1) เตรียมเครื่อง Virtual Server ของ EC2

            เราสร้าง Virtual Server 1 เครื่อง แบบ Free tier eligible ของ Ubuntu Server 14.04 LTS (HVM) , SSD และ กำหนด Storage Volume 40GB  ขั้นตอนการสร้าง Virtual Server EC2 ดูรายละเอียดที่บทความ “เปิดบริการเครื่องคอมพิวเตอร์บน AWS เตรียมไว้สำหรับเล่น Hadoop กัน

      i-2) เปิด Terminal Session เข้าไปที่ Virtual Server ของ EC2

      Connect เข้า Virtual Server ด้วย Putty วิธีการ Connect ดูในท้ายบทความ “เปิดบริการเครื่องคอมพิวเตอร์บน AWS เตรียมไว้สำหรับเล่น Hadoop กัน”  เราจะได้หน้าจอเริ่มต้นหลังจาก Connect เข้า Virtual Server ตามรูปที่ i2-1

Pic1

รูปที่ i2-1

 ตรวจสอบว่า Home ของ Session ที่เรา Connect เข้ามาว่าอยู่ภายใต้ ubuntu ด้วยคำสั้ง $pws แสดงตามรูปที่ i2-2

Pic12

รูปที่ i2-2

i-3). ทำการ Update Linux

                        sudo apt-get update

i-4).  Install SSH , Create ssh-key

       i-4.1  ติดตั้งและเตรียมการใช้งาน พิมพ์คำสั่งด้านล่างนี้

                  $sudo apt-get install –y openssh-server

      i-4.2 ทำการสร้าง Public & Private Key สำหรับการใช้งาน SSH  ตามคำสั่งดังนี้

                  $ssh-keygen –t dsa –P ‘’           

            ระบบจะแสดงหน้าจอตามรูป i4-1 ด้านล่างนี้ให้ Enter  แล้ว ระบบแสดงหน้าจอตามรูปที่ i4-2

SSH-1

รูปที่ i4-1

SSH-2

รูปที่ i4-2

     i-4.3 ทำการโหลด   Public Key เข้า Key Store

                  $cat .ssh/id_dsa.pub >> .ssh/authorized_keys

     i-4.4  ตรวจสอบ SSH พร้อมใช้งาน

                  $ssh localhost

                 ระบบจะแสดงหน้าจอตามรูปที่ i4-3  จากนั้นพิมพ์ $exit เพื่อออกจากโหมด SSH แสดงรูปหน้าจอตามรูป i4-4

SSH-4

รูปที่ i4-3

SSH-5

รูปที่ i4-4

i-5). Install Java

      ทำการติดตั้ง Java  ด้วยคำสั่ง  $sudo apt-get install –y openjdk-7-jdk   และ เพิ่ม Environment Variable ให้กับ Java ลงใน .bashrc file  ตามนี้ ด้วยการพิมพ์คำสั่ง $  nano .bashrc ระบบจะเปิด text editor  ให้เราทำการเพิ่ม 2 บรรทัดด้านล่าง ตัวอย่างตามรูปที่ i5-1

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

export PATH=$PATH:$JAVA_HOME/bin

Pic2

รูปที่ i5-1

ii) การติดตั้ง Hadoop แบบ Single Node

          ขั้นตอนถัดจากนี้ไปจะเป็นการจะติดตั้ง Hadoop และ การปรับแต่งค่า Parameter ใน Configuration file ต่างๆ โดยจะทำผ่าน Command Console หรือ หน้าจอดำๆ ของ Linux  และ บางส่วนจะอธิบายสั้นสั้นว่าคำสั่งบรรทัดนั้นๆทำอะไรซึ่งจะเขียนไว้ท้ายเครื่องหมาย //[คำอธิบาย]   ดั้งนั้นประโยคตั้งแต่เครื่องหมาย //.. เป็นต้นไปไม่ต้องพิมพ์ลงใน Command Console นะครับ  เริ่มแต่ละขั้นตอนดังนี้

     ii-1). Download Hadoop

wget http://mirror.cc.columbia.edu/pub/software/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

     ii-2).  สร้าง Folder สำหรับให้ Hadoop พิมพ์คำสั้งบรรทัดต่อไปนี้ที่หน้าจอ Console

            sudo mkdir –p /usr/local/Hadoop  // โฟล์เดอร์สำหรับ Hadoop                           

            sudo chown ubuntu:ubuntu –R /usr/local/hadoop

            sudo mkdir /var/log/Hadoop  // โฟล์เดอร์สำหรับ Log file ของ Hadoop

            sudo chown –R ubuntu:ubuntu  /var/log/hadoop

            sudo mkdir –p /var/hadoop_data // โฟล์เดอร์สำหรับ Data file ที่ HDFS จัดการ

            sudo mkdir –p /var/hadoop_data/namenode

            sudo mkdir –p /var/hadoop_data/datanode

            sudo chown ubuntu:ubuntu –R /var/hadoop_data

      ii-3). Install Hadoop

             tar –xvf hadoop-2.7.2.tar.gz

             sudo mv ./hadoop-2.7.2/*  /usr/local/hadoop

             sudo chown ubuntu:ubuntu –R /usr/local/hadoop

      ii-4). Setup Hadoop Variable Environment

            เพิ่ม Environment Variable ให้กับ Hadoop ลงใน .bashrc file  ตามนี้ ด้วยการพิมพ์คำสั่ง nano .bashrc  เพิ่ม 2 บรรทัดด้านล่างลงไปตามนี้

             export HADOOP_HOME=/usr/local/hadoop

             export PATH=$PATH:$HADOOP_HOME/bin

             export PATH=$PATH:$HADOOP_HOME/sbin

ii-5).  แก้ไข shell script สำหรับกำหนด Environment Variable ให้กับ Hadoop ที่ไฟล์ hadoop-env.sh ที่อยู่ใน /usr/local/hadoop/etc/hadoop  โดยพิมพ์  nano hadoop-env.sh และ เพิ่มคำสั่ง 2 บรรทัดด้านล่างนี้  แสดงตามรูปที่ ii5-1

             export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

             export HADOOP_LOG_DIR=/var/log/hadoop

 Hadoop-env

 รูป ii5-1

ii-6).  แก้ไข shell script สำหรับกำหนด Environment Variable ให้กับ Yarn ที่ไฟล์ yarn-env.sh ที่อยู่ใน /usr/local/hadoop/etc/hadoop  โดย  nano yarn-env.sh และ เพิ่มคำสั่ง 2 บรรทัดด้านล่างนี้ ตัวอย่างตามรูปที่ ii6-1

             export YARN_LOG_DIR = /var/log/hadoop

Yarn-env

รูปที่ ii6-1

ii-7). Configure Hadoop

            ขั้นตอนนี้จะทำการกำหนดค่า Parameter ต่างๆใน Configuration file ในส่วนของ Core Hadoop , HDFS , YARN , MapReduce  จากข้อ ii-7.1  - ii-7.4 ให้เข้าไปใน Path /usr/localhost/hadoop/etc/hadoop  แล้วเปิดไฟล์ด้วย nano แล้วเพิ่มรายละเอียดตามที่ข้อ ii-7.1  ถึง  ii-7.4  ตามรูปตัวอย่างด้านล่างนี้

core-site

hdfs-site

yarn-site

mapred-site

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ii-8). Format ระบบไฟล์  ( ภาพเหมือนกับเรา Format Harddisk )

      เข้าไปใน Path /usr/local/hadoop/etc/hadoop  แล้วพิมพ์คำสั่ง hdfs namenode –format   การ Run คำสั่งและผลการ Run คำสั่งแสดงตามรูปที่ ii8-1 และ ii8-2 ตามลำดับ

HDFS-Format1

รูป ii8-1

HDFS-Format2

รูป ii8-2

ii-9). Start Hadoop ( ที่ /usr/local/hadoop/etc/hadoop )

 ii9-1.  ทำการ Start HDFS  ด้วยการ Run Script นี้ start-dfs.sh และ สังเกตดูว่า Process NameNode และ DataNode ทำงานอยู่ด้วย คำสั่ง jps  รูปตัวอย่าง ii9-1 ตามลำดับ

Start-HDFS

รูป ii9-1

ii9-2.  ทำการ Start YARN  ด้วยการ Run Script นี้ start-yarn.sh และ สังเกตดูว่า Process ResourceManager และ NodeManager ทำงานอยู่ด้วยคำสั่ง jps  รูปตัวอย่าง ii9-2 ตามลำดับ

Start-YARN

รูป ii9-2

ii-10). Accessing Hadoop Web Console

            ทดสอบเข้าหน้า Web Interface ของ Hadoop เข้าที่ http://[Public IP]: 50070  หน้าเว็บจะแสดงหน้า Default ของ ตามรูปที่ ii10-1 แสดงว่า Hadoop เรา Start ทำงานโดยสมบูรณ์แล้ว ( หากยังไม่สามมารถเข้าดูเป็นหน้าเว็บตามรูป ii10-1 ได้ให้ตรวจสอบ Security / Firewall เปิดสิทธิให้รับการเรียกเข้าทุก IP และ ทุก Port หรือ ไม่ )

Start-Hadoop-WebInterface

รูป ii10-1

ii-11). Stop Hadoop

            เดินทางมาถึงจุดนี้ถือว่าเราได้สอบผ่านการติดตั้ง Hadoop Cluster แบบ Single Node กันแล้ว เราจะจบในขั้นตอนนี้กันด้วย Stop Hadoop โดยจะใช้ Run Scrip ในการ Stop ตามลำดับคือ

1). stop-yarn.sh และ 2). stop-dfs.sh ที่ Command Console และ เมื่อขอดู Hadoop Process ด้วยคำสั่ง jps  หน้าจอจะแสดงให้เห็นว่าไม่มี Hadoop Process ทำงานอยู่ ตามตัวอย่างรูปที่ ii11-1

Stop-Hadoop

        เราผ่านกระบวนทั้งหมดตั้งแต่เตรียมเครื่อง Server  , ติดตั้งโปรแกรมพื้นฐาน , ติดตั้ง Hadoop และ Start/Stop Hadoop ได้แล้ว  ขั้นถัดไปสำหรับบทความครั้งหน้า เราไปทดลองติดตั้งแบบ Multi Node และ ทดลองเล่นคำสั่ง Hadoop และ ทดลองทำ Data Processing ด้วย MapReduce กันเล็กน้อย  เพื่อท้ายที่สุดหลังจากทำได้ทั้งหมดแล้วเราจะพาไปทดลองใช้งาน Hadoop Distribution ของ Hortonworks ที่เป็น Open Source 100% กัน

About Author

อวยชัย ภิรมย์รื่น

ทำงานมาแล้วในทุกตำแหน่งของทีมพัฒนาซอฟต์แวร์ มีประสบการณ์การวิเคราะห์และออกแบบระบบ Accounting&Warehouse , e-Payment , Freight forwarder , Logistic และ เคยดูงานด้านเทคนิคของระบบ Fraud Banking ที่ทำงานกับข้อมูลกว่า 7 ล้านรายการด้วยเข้าใจ Operation ของทุกระบบงานของธนาคารอย่างดี และ ถนัดเรื่องการบริหารจัดการโครงการพัฒนาระบบสารสนเทศ

| ปัจจุบันทำงานด้าน Big Data Solution Engineer โดยเอา Big Data Technology มาเพิ่มประสิทธิภาพการปฏิบัติงานของ Business and IT Operation

[  e-mail: p.auoychai@gmail.com , Tel. 086-813-5354 ]

บริการจัดอบรม

Our Services

Big Data Engineering

ติดตั้ง Cloudera Enterprise Hadoop , อิมพลีเมนท์การเอาข้อมูลเข้า HDFS , Hive , HBase , Elasticsearch ผ่าน Talend  ETL Tool และ Custom Programming admin

Software&Solution

พัฒนา Smart Software Application ( Web , Mobile ) และ เชื่อมต่อกับอุปกรณ์ IoT  , พัฒนาระบบ Dashboard ทำ Visualize ข้อมูล , การพัฒนา API&Micro-Service , การเชื่อมต่อและประมวลผลข้อมูลบน Big Data Store ด้วยเทคนิค Machine Learning admin

IT Operation

อิมพลีเมนท์ระบบ IT  Monitoring สำหรับการเฝ้าระวังและแจ้งเตือนสภาพการทำงานของ Server , Application Server และ IoT Device ต่างๆ , การบริหารจัดการ Service & Application Log. admin

Leave a Reply

Your email address will not be published. Required fields are marked *