ค้นหาเว็บไซต์

วิธีการติดตั้ง Hadoop Single Node Cluster (Pseudonode) บน CentOS 7


Hadoop เป็นเฟรมเวิร์กโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายเพื่อจัดการกับ Bigdata โครงการ การวิเคราะห์ Bigdata/ข้อมูล ส่วนใหญ่ถูกสร้างขึ้นบน ระบบนิเวศ Hadoop ประกอบด้วยสองชั้น ชั้นหนึ่งสำหรับการจัดเก็บข้อมูล และอีกชั้นหนึ่งสำหรับการประมวลผลข้อมูล

ที่เก็บข้อมูลจะได้รับการดูแลโดยระบบไฟล์ของตัวเองที่เรียกว่า HDFS (ระบบไฟล์แบบกระจาย Hadoop) และการประมวลผลจะถูกดำเนินการ ดูแลโดย YARN (ยังมีผู้เจรจาต่อรองทรัพยากรอีกราย) Mapreduce เป็นเครื่องมือประมวลผลเริ่มต้นของ ระบบนิเวศ Hadoop

บทความนี้จะอธิบายกระบวนการในการติดตั้ง Pseudonode ของ Hadoop โดยที่ daemons (JVMs) ทั้งหมดจะอยู่ที่ ใช้งานคลัสเตอร์ โหนดเดียว บน CentOS 7

นี่เป็นหลักสำหรับผู้เริ่มต้นในการเรียนรู้ Hadoop แบบเรียลไทม์ Hadoop จะถูกติดตั้งเป็นคลัสเตอร์หลายโหนด โดยข้อมูลจะถูกกระจายไปยังเซิร์ฟเวอร์ต่างๆ ในรูปแบบบล็อก และงานจะดำเนินการในลักษณะคู่ขนาน

ข้อกำหนดเบื้องต้น

  • การติดตั้งเซิร์ฟเวอร์ CentOS 7 ขั้นต่ำ
  • การเปิดตัวจาวา v1.8
  • Hadoop 2.x รุ่นเสถียร

บนหน้านี้

  • วิธีการติดตั้งจาวาบน CentOS 7
  • ตั้งค่าการเข้าสู่ระบบแบบไร้รหัสผ่านบน CentOS 7
  • วิธีการติดตั้ง Hadoop Single Node ใน CentOS 7
  • วิธีการกำหนดค่า Hadoop ใน CentOS 7
  • การจัดรูปแบบระบบไฟล์ HDFS ผ่าน NameNode

การติดตั้ง Java บน CentOS 7

1. Hadoop คือระบบนิเวศที่ประกอบด้วย Java เราจำเป็นต้องติดตั้ง Java ในระบบของเราโดยจำเป็นต้องติดตั้ง Hadoop

yum install java-1.8.0-openjdk

2. ถัดไป ตรวจสอบเวอร์ชันที่ติดตั้งของ Java บนระบบ

java -version

กำหนดค่าการเข้าสู่ระบบแบบไร้รหัสผ่านบน CentOS 7

เราจำเป็นต้องมีการกำหนดค่า ssh ในเครื่องของเรา Hadoop จะจัดการโหนดโดยใช้ SSH โหนดหลักใช้การเชื่อมต่อ SSH เพื่อเชื่อมต่อโหนดทาสและดำเนินการเช่นเริ่มและหยุด

เราจำเป็นต้องตั้งค่า ssh ที่ไม่มีรหัสผ่านเพื่อให้ต้นแบบสามารถสื่อสารกับทาสโดยใช้ ssh โดยไม่ต้องใช้รหัสผ่าน มิฉะนั้นสำหรับการสร้างการเชื่อมต่อแต่ละแห่ง จะต้องป้อนรหัสผ่าน

ในโหนดเดียวนี้ บริการ หลัก (Namenode, Namenode รอง & ตัวจัดการทรัพยากร) และ Slave< บริการ (Datanode & Nodemanager) จะทำงานเป็น JVM แยกกัน แม้ว่าจะเป็นโหนดเดี่ยว แต่เราจำเป็นต้องมี ssh ที่ไม่มีรหัสผ่านเพื่อให้ Master สื่อสาร Slave โดยไม่ต้องมีการตรวจสอบสิทธิ์

3. ตั้งค่าการเข้าสู่ระบบ SSH โดยไม่ต้องใช้รหัสผ่านโดยใช้คำสั่งต่อไปนี้บนเซิร์ฟเวอร์

ssh-keygen
ssh-copy-id -i localhost

4. หลังจากที่คุณกำหนดค่าการเข้าสู่ระบบ SSH โดยไม่ต้องใช้รหัสผ่าน ให้ลองเข้าสู่ระบบอีกครั้ง คุณจะเชื่อมต่อได้โดยไม่ต้องใช้รหัสผ่าน

ssh localhost

การติดตั้ง Hadoop ใน CentOS 7

5. ไปที่เว็บไซต์ Apache Hadoop และดาวน์โหลด Hadoop รุ่นเสถียรโดยใช้คำสั่ง wget ต่อไปนี้

wget https://archive.apache.org/dist/hadoop/core/hadoop-2.10.1/hadoop-2.10.1.tar.gz
tar xvpzf hadoop-2.10.1.tar.gz

6. ถัดไป เพิ่มตัวแปรสภาพแวดล้อม Hadoop ในไฟล์ ~/.bashrc ตามที่แสดง

HADOOP_PREFIX=/root/hadoop-2.10.1
PATH=$PATH:$HADOOP_PREFIX/bin
export PATH JAVA_HOME HADOOP_PREFIX

7. หลังจากเพิ่มตัวแปรสภาพแวดล้อมให้กับไฟล์ ~/.bashrc ให้ระบุแหล่งที่มาของไฟล์และตรวจสอบ Hadoop โดยการรันคำสั่งต่อไปนี้

source ~/.bashrc
cd $HADOOP_PREFIX
bin/hadoop version

การกำหนดค่า Hadoop ใน CentOS 7

เราจำเป็นต้องกำหนดค่าไฟล์การกำหนดค่า Hadoop ด้านล่างเพื่อให้พอดีกับเครื่องของคุณ ใน Hadoop แต่ละบริการจะมีหมายเลขพอร์ตของตัวเองและไดเรกทอรีของตัวเองเพื่อจัดเก็บข้อมูล

  • ไฟล์การกำหนดค่า Hadoop - core-site.xml, hdfs-site.xml, mapred-site.xml & Yarn-site.xml

8. ก่อนอื่น เราต้องอัปเดตเส้นทาง JAVA_HOME และ Hadoop ในไฟล์ hadoop-env.sh ตามที่แสดง .

cd $HADOOP_PREFIX/etc/hadoop
vi hadoop-env.sh

ป้อนบรรทัดต่อไปนี้ที่จุดเริ่มต้นของไฟล์

export JAVA_HOME=/usr/lib/jvm/java-1.8.0/jre
export HADOOP_PREFIX=/root/hadoop-2.10.1

9. จากนั้น แก้ไขไฟล์ core-site.xml

cd $HADOOP_PREFIX/etc/hadoop
vi core-site.xml

วางสิ่งต่อไปนี้ระหว่างแท็ก <configuration> ตามที่แสดง

<configuration>
            <property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://localhost:9000</value>
           </property>
</configuration>

10. สร้างไดเร็กทอรีด้านล่างภายใต้โฮมไดเร็กทอรีของผู้ใช้ tecmint ซึ่งจะใช้สำหรับพื้นที่เก็บข้อมูล NN และ DN

mkdir -p /home/tecmint/hdata/
mkdir -p /home/tecmint/hdata/data
mkdir -p /home/tecmint/hdata/name

10. จากนั้น แก้ไขไฟล์ hdfs-site.xml

cd $HADOOP_PREFIX/etc/hadoop
vi hdfs-site.xml

วางสิ่งต่อไปนี้ระหว่างแท็ก <configuration> ตามที่แสดง

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
 </property>
  <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/tecmint/hdata/name</value>
  </property>
  <property>
          <name>dfs .datanode.data.dir</name>
          <value>home/tecmint/hdata/data</value>
  </property>
</configuration>

11. แก้ไขไฟล์ mapred-site.xml อีกครั้ง

cd $HADOOP_PREFIX/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

วางสิ่งต่อไปนี้ระหว่างแท็ก <configuration> ตามที่แสดง

<configuration>
                <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                </property>
</configuration>

12. สุดท้าย แก้ไขไฟล์ yarn-site.xml

cd $HADOOP_PREFIX/etc/hadoop
vi yarn-site.xml

วางสิ่งต่อไปนี้ระหว่างแท็ก <configuration> ตามที่แสดง

<configuration>
                <property>
                       <name>yarn.nodemanager.aux-services</name>
                       <value>mapreduce_shuffle</value>
                </property>
</configuration>

การจัดรูปแบบระบบไฟล์ HDFS ผ่าน NameNode

13. ก่อนที่จะเริ่ม คลัสเตอร์ เราจำเป็นต้องจัดรูปแบบ Hadoop NN ในระบบภายในเครื่องของเราที่ติดตั้งคลัสเตอร์ไว้ โดยปกติจะทำในระยะเริ่มแรกก่อนที่จะเริ่มคลัสเตอร์ในครั้งแรก

การจัดรูปแบบ NN จะทำให้ข้อมูลสูญหายใน NN metastore ดังนั้นเราจึงต้องใช้ความระมัดระวังมากขึ้น เราไม่ควรจัดรูปแบบ NN ในขณะที่คลัสเตอร์กำลังทำงาน เว้นแต่จะมีความจำเป็นโดยเจตนา

cd $HADOOP_PREFIX
bin/hadoop namenode -format

14. เริ่มต้น NameNode daemon และ DataNode daemon: (พอร์ต 50070)

cd $HADOOP_PREFIX
sbin/start-dfs.sh

15. เริ่มต้น ResourceManager daemon และ NodeManager daemon: (พอร์ต 8088)

sbin/start-yarn.sh

16. หากต้องการหยุดบริการทั้งหมด

sbin/stop-dfs.sh
sbin/stop-dfs.sh
สรุป

สรุป
ในบทความนี้ เราได้ดำเนินการทีละขั้นตอนเพื่อตั้งค่า Hadoop Pseudonode (โหนดเดี่ยว) คลัสเตอร์ หากคุณมีความรู้พื้นฐานเกี่ยวกับ Linux และทำตามขั้นตอนเหล่านี้ คลัสเตอร์จะพร้อมใช้งานใน 40 นาที

สิ่งนี้มีประโยชน์มากสำหรับผู้เริ่มต้นในการเริ่มเรียนรู้และฝึกฝน Hadoop หรือ Hadoop เวอร์ชันพื้นฐานนี้สามารถนำไปใช้เพื่อการพัฒนาได้ หากเราต้องการมีคลัสเตอร์แบบเรียลไทม์ เราต้องการเซิร์ฟเวอร์จริงอย่างน้อย 3 เครื่องหรือต้องจัดเตรียม Cloud เพื่อให้มีเซิร์ฟเวอร์หลายเครื่อง