วิธีการติดตั้ง 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 เพื่อให้มีเซิร์ฟเวอร์หลายเครื่อง