วิธีตั้งค่า Hadoop Cluster ด้วย HDFS High Availability



บล็อกนี้ให้ภาพรวมของสถาปัตยกรรม HDFS High Availability และวิธีการตั้งค่าและกำหนดค่าคลัสเตอร์ HDFS High Availability ในขั้นตอนง่ายๆ

สถาปัตยกรรมคลัสเตอร์ความพร้อมใช้งานสูง HDFS 2.x

ในบล็อกนี้ฉันจะพูดถึง HDFS 2.x High Availability Cluster Architecture และขั้นตอนในการตั้งค่าคลัสเตอร์ HDFS High Availabilityนี่เป็นส่วนสำคัญของไฟล์ . ลำดับที่ครอบคลุมหัวข้อในบล็อกนี้มีดังนี้:

  • สถาปัตยกรรม HDFS HA
    • บทนำ
    • NameNode Availability
    • สถาปัตยกรรมของ HA
    • การใช้งาน HA (JournalNode และพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน)
  • จะตั้งค่า HA (Quorum Journal Nodes) ในคลัสเตอร์ Hadoop ได้อย่างไร

บทนำ:

แนวคิดของคลัสเตอร์ High Availability ถูกนำมาใช้ใน Hadoop 2.x เพื่อแก้ปัญหาจุดเดียวของความล้มเหลวใน Hadoop 1.x. ดังที่คุณทราบจากบล็อกก่อนหน้าของฉันว่า เป็นไปตามโทโพโลยี Master / Slave โดยที่ NameNode ทำหน้าที่เป็นมาสเตอร์ดีมอนและรับผิดชอบในการจัดการโหนดทาสอื่น ๆ ที่เรียกว่า DataNodes Master Daemon หรือ NameNode เดียวนี้กลายเป็นคอขวด แม้ว่าการเปิดตัว NameNode รองจะช่วยป้องกันไม่ให้ข้อมูลสูญหายและลดภาระบางส่วนของ NameNode แต่ก็ไม่สามารถแก้ปัญหาความพร้อมใช้งานของ NameNode ได้





ความพร้อมใช้งาน NameNode:

หากคุณพิจารณาการกำหนดค่ามาตรฐานของคลัสเตอร์ HDFS NameNode จะกลายเป็นไฟล์ จุดเดียวของความล้มเหลว . เกิดขึ้นเนื่องจากในขณะที่ NameNode ไม่พร้อมใช้งานคลัสเตอร์ทั้งหมดจะไม่พร้อมใช้งานจนกว่าจะมีคนรีสตาร์ท NameNode หรือนำมาใหม่

สาเหตุของการไม่พร้อมใช้งานของ NameNode อาจเป็น:



  • เหตุการณ์ที่วางแผนไว้เช่นงานซ่อมบำรุงซึ่งมีการอัพเกรดซอฟต์แวร์หรือฮาร์ดแวร์
  • นอกจากนี้ยังอาจเกิดจากเหตุการณ์ที่ไม่ได้วางแผนไว้ซึ่ง NameNode ขัดข้องเนื่องจากสาเหตุบางประการ

ในกรณีข้างต้นเรามีช่วงเวลาหยุดทำงานซึ่งเราไม่สามารถใช้คลัสเตอร์ HDFS ได้ซึ่งกลายเป็นความท้าทาย

สถาปัตยกรรม HDFS HA:

ขอให้เราเข้าใจว่าสถาปัตยกรรม HDFS HA ​​แก้ปัญหาสำคัญของความพร้อมใช้งาน NameNode นี้ได้อย่างไร:

สถาปัตยกรรม HA แก้ไขปัญหาความพร้อมใช้งานของ NameNode นี้โดยอนุญาตให้เรามี NameNodes สองตัวในการกำหนดค่าแบบแอคทีฟ / พาสซีฟ ดังนั้นเราจึงมี NameNodes สองตัวที่รันพร้อมกันในคลัสเตอร์ High Availability:



  • Active NameNode
  • Standby / Passive NameNode

สถาปัตยกรรม HDFS HA ​​- คลัสเตอร์ความพร้อมใช้งานสูง - Edureka

หาก NameNode หนึ่งล่มลง NameNode อื่นจะเข้ามารับผิดชอบดังนั้นจึงลดเวลาลงของคลัสเตอร์ NameNode สแตนด์บายทำหน้าที่จุดประสงค์ของ NameNode สำรอง (ไม่เหมือนโหนดชื่อรอง) ซึ่งรวมความสามารถในการเฟลโอเวอร์เข้ากับคลัสเตอร์ Hadoop ดังนั้นด้วย StandbyNode เราสามารถมีเฟลโอเวอร์อัตโนมัติเมื่อใดก็ตามที่ NameNode ขัดข้อง (เหตุการณ์ที่ไม่ได้วางแผนไว้) หรือเราสามารถเกิดข้อผิดพลาด (เริ่มต้นด้วยตนเอง) ได้อย่างสง่างามในระหว่างช่วงเวลาการบำรุงรักษา

มีสองประเด็นในการรักษาความสอดคล้องในคลัสเตอร์ HDFS High Availability:

  • Active และ Standby NameNode ควรซิงค์กันเสมอกล่าวคือควรมีข้อมูลเมตาเหมือนกัน สิ่งนี้จะช่วยให้เราสามารถกู้คืนคลัสเตอร์ Hadoop ให้เป็นสถานะเนมสเปซเดียวกับที่มันเกิดข้อขัดข้องดังนั้นจะทำให้เรามีเฟลโอเวอร์อย่างรวดเร็ว
  • ควรมี NameNode ที่ใช้งานได้ครั้งละหนึ่งรายการเท่านั้นเนื่องจาก NameNode ที่ใช้งานอยู่สองรายการจะทำให้ข้อมูลเสียหาย สถานการณ์แบบนี้เรียกว่าสถานการณ์แบ่งสมองโดยที่คลัสเตอร์ถูกแบ่งออกเป็นคลัสเตอร์ขนาดเล็กโดยแต่ละกลุ่มเชื่อว่าเป็นคลัสเตอร์ที่ใช้งานอยู่เพียงกลุ่มเดียว เพื่อหลีกเลี่ยงสถานการณ์ดังกล่าวการฟันดาบเสร็จสิ้น การฟันดาบเป็นกระบวนการตรวจสอบให้แน่ใจว่า NameNode เดียวเท่านั้นที่ยังคงทำงานอยู่ในช่วงเวลาหนึ่ง

การใช้สถาปัตยกรรม HA:

ตอนนี้คุณรู้แล้วว่าในสถาปัตยกรรม HDFS HA ​​เรามี NameNodes สองตัวที่ทำงานในเวลาเดียวกัน ดังนั้นเราสามารถใช้การกำหนดค่า Active และ Standby NameNode ได้สองวิธีดังต่อไปนี้:

  1. การใช้ Quorum Journal Nodes
  2. พื้นที่จัดเก็บที่ใช้ร่วมกันโดยใช้ NFS

ให้เราเข้าใจวิธีการใช้งานสองวิธีนี้ทีละวิธี:

1. การใช้ Quorum Journal Nodes:

  • NameNode ที่สแตนด์บายและ NameNode ที่ใช้งานอยู่จะซิงค์ซึ่งกันและกันผ่านกลุ่มโหนดหรือ daemons ที่แยกจากกัน - เรียกว่า JournalNodes .JournalNodes เป็นไปตามโทโพโลยีวงแหวนที่ซึ่งโหนดเชื่อมต่อกันเพื่อสร้างวงแหวนJournalNode ทำหน้าที่ตามคำขอที่มาถึงและคัดลอกข้อมูลไปยังโหนดอื่นในวงแหวน.สิ่งนี้ให้การยอมรับข้อผิดพลาดในกรณีที่ JournalNode ล้มเหลว
  • NameNode ที่ใช้งานอยู่มีหน้าที่ในการอัพเดต EditLogs (ข้อมูลเมตาดาต้า) ที่มีอยู่ใน JournalNodes
  • StandbyNode อ่านการเปลี่ยนแปลงที่ทำกับ EditLogs ใน JournalNode และนำไปใช้กับเนมสเปซของตัวเองในลักษณะคงที่
  • ในระหว่างการล้มเหลว StandbyNode จะตรวจสอบให้แน่ใจว่าได้อัปเดตข้อมูลข้อมูลเมตาจาก JournalNodes ก่อนที่จะกลายเป็น Active NameNode ใหม่ สิ่งนี้ทำให้สถานะเนมสเปซปัจจุบันซิงโครไนซ์กับสถานะก่อนเฟลโอเวอร์
  • ที่อยู่ IP ของ NameNodes ทั้งสองจะพร้อมใช้งานสำหรับ DataNodes ทั้งหมดและจะส่ง heartbeats และบล็อกข้อมูลตำแหน่งไปยัง NameNode ทั้งสอง สิ่งนี้ทำให้เกิดการล้มเหลวอย่างรวดเร็ว (เวลาหยุดทำงานน้อยลง) เนื่องจาก StandbyNode มีข้อมูลที่อัปเดตเกี่ยวกับตำแหน่งบล็อกในคลัสเตอร์

การฟันดาบของ NameNode:

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

  • JournalNodes ดำเนินการฟันดาบนี้โดยอนุญาตให้ NameNode เป็นผู้เขียนได้ครั้งละหนึ่งรายการเท่านั้น
  • Standby NameNode รับหน้าที่ในการเขียนไปยัง JournalNodes และห้ามไม่ให้ NameNode อื่นทำงานต่อไป
  • ในที่สุด Active NameNode ใหม่สามารถดำเนินกิจกรรมได้อย่างปลอดภัย

2. การใช้ที่เก็บข้อมูลร่วมกัน:

  • StandbyNode และ NameNode ที่ใช้งานอยู่จะซิงค์กันโดยใช้ไฟล์ อุปกรณ์จัดเก็บข้อมูลที่ใช้ร่วมกัน .NameNode ที่ใช้งานอยู่จะบันทึกบันทึกของการแก้ไขใด ๆ ที่ทำในเนมสเปซไปยัง EditLog ที่มีอยู่ในหน่วยเก็บข้อมูลแบบแบ่งใช้นี้StandbyNode อ่านการเปลี่ยนแปลงที่ทำกับ EditLogs ในหน่วยเก็บข้อมูลแบบแบ่งใช้นี้และนำไปใช้กับเนมสเปซของตนเอง
  • ตอนนี้ในกรณีที่เกิดข้อผิดพลาด StandbyNode จะอัปเดตข้อมูลเมตาดาต้าโดยใช้ EditLogs ในที่เก็บข้อมูลที่ใช้ร่วมกันในตอนแรก จากนั้นจะรับหน้าที่ของ Active NameNode สิ่งนี้ทำให้สถานะเนมสเปซปัจจุบันซิงโครไนซ์กับสถานะก่อนเฟลโอเวอร์
  • ผู้ดูแลระบบต้องกำหนดค่าวิธีการฟันดาบอย่างน้อยหนึ่งวิธีเพื่อหลีกเลี่ยงสถานการณ์สมองแตก
  • ระบบอาจใช้กลไกการฟันดาบหลายแบบ ซึ่งอาจรวมถึงการฆ่ากระบวนการของ NameNode และเพิกถอนการเข้าถึงไดเร็กทอรีพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
  • เป็นทางเลือกสุดท้ายเราสามารถล้อมรั้ว NameNode ที่ใช้งานอยู่ก่อนหน้านี้ด้วยเทคนิคที่เรียกว่า STONITH หรือ 'ยิงโหนดอื่นที่หัว' STONITH ใช้หน่วยจ่ายพลังงานพิเศษเพื่อบังคับให้เครื่อง NameNode ปิดลง

Failover อัตโนมัติ:

Failover เป็นขั้นตอนที่ระบบจะโอนการควบคุมไปยังระบบรองโดยอัตโนมัติเมื่อตรวจพบข้อบกพร่องหรือความล้มเหลว เฟลโอเวอร์มีสองประเภท:

Failover ที่สง่างาม: ในกรณีนี้เราจะเริ่มต้นเฟลโอเวอร์ด้วยตนเองสำหรับการบำรุงรักษาตามปกติ

Failover อัตโนมัติ: ในกรณีนี้การล้มเหลวจะเริ่มต้นโดยอัตโนมัติในกรณีที่ NameNode ล้มเหลว (เหตุการณ์ที่ไม่ได้วางแผนไว้)

Apache Zookeeper เป็นบริการที่ให้ความสามารถในการเฟลโอเวอร์อัตโนมัติในคลัสเตอร์ HDFS High Availabilty จะเก็บรักษาข้อมูลการประสานงานจำนวนเล็กน้อยแจ้งให้ลูกค้าทราบถึงการเปลี่ยนแปลงในข้อมูลนั้นและตรวจสอบความล้มเหลวของลูกค้า Zookeeper รักษาเซสชันด้วย NameNodes ในกรณีที่ล้มเหลวเซสชันจะหมดอายุและ Zookeeper จะแจ้ง NameNodes อื่น ๆ เพื่อเริ่มต้นกระบวนการเฟลโอเวอร์ ในกรณีที่ NameNode ล้มเหลว NameNode แบบพาสซีฟอื่น ๆ สามารถล็อกใน Zookeeper โดยระบุว่าต้องการให้เป็น Active NameNode ถัดไป

ZookeerFailoverController (ZKFC) เป็นไคลเอนต์ Zookeeper ที่ตรวจสอบและจัดการสถานะ NameNode ด้วย NameNode แต่ละตัวเรียกใช้ ZKFC ด้วย ZKFC มีหน้าที่ตรวจสอบความสมบูรณ์ของ NameNodes เป็นระยะ

เมื่อคุณเข้าใจแล้วว่าอะไรคือความพร้อมใช้งานสูงในคลัสเตอร์ Hadoop แล้วก็ถึงเวลาตั้งค่า ในการตั้งค่า High Availability ในคลัสเตอร์ Hadoop คุณต้องใช้ Zookeeper ในทุกโหนด

daemons ใน Active NameNode คือ:

  • Zookeeper
  • Zookeeper ล้มเหลวในการควบคุม
  • JournalNode
  • NameNode

daemons ใน Standby NameNode คือ:

  • Zookeeper
  • Zookeeper ล้มเหลวในการควบคุม
  • JournalNode
  • NameNode

daemons ใน DataNode คือ:

  • Zookeeper
  • JournalNode
  • DataNode

หากคุณต้องการที่จะเชี่ยวชาญ HDFS และ Hadoop โปรดดูหลักสูตร Big Data และ Hadoop ที่คัดสรรมาเป็นพิเศษโดย Edureka คลิกที่ปุ่มด้านล่างเพื่อเริ่มต้น

การตั้งค่าและกำหนดค่า High Availability Cluster ใน Hadoop:

คุณต้องตั้งค่า Java และชื่อโฮสต์ของแต่ละโหนดก่อน

เครื่องเสมือน ที่อยู่ IP ชื่อโฮสต์
Active NameNode192.168.1.81nn1.cluster.com หรือ nn1
ชื่อโหมดสแตนด์บาย192.168.1.58nn2.cluster.com หรือ nn2
DataNode192.168.1.82dn1.cluster.com หรือ dn1

ดาวน์โหลดไฟล์ tar ไบนารี Hadoop และ Zookeeper แตกไฟล์เพื่อแก้ไขไฟล์คอนฟิกูเรชัน

คำสั่ง: wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

กระจาย Zookeeper-3.4.6.tar.gz

คำสั่ง : tar –xvf zookeeper-3.4.6.tar.gz

ดาวน์โหลด Hadoop binary tar ที่เสถียรไปยังจากเว็บไซต์ Apache Hadoop

คำสั่ง : wget https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz

แยก Hadoop tar ball

คำสั่ง : tar –xvf hadoop-2.6.0.tar.gz

กระจาย Hadoop ไบนารี

เพิ่ม Hadoop, Zookeeper และพา ธ ไปยังไฟล์. bashrc

เปิดไฟล์. bashrc

คำสั่ง : sudo gedit ~ / .bashrc

เพิ่มเส้นทางด้านล่าง:

การส่งออก HADOOP_HOME = การส่งออก HADOOP_MAPRED_HOME = $ HADOOP_HOME ส่งออก HADOOP_COMMON_HOME = $ HADOOP_HOME ส่งออก HADOOP_HDFS_HOME = $ HADOOP_HOME ส่งออก YARN_HOME = $ HADOOP_HOME ส่งออก HADOOP_CONF_DIR = $ HADOOP_HOME / etc / Hadoop ส่งออก YARN_CONF_DIR = $ HADOOP_HOME / etc / ส่งออก Hadoop JAVA_HOME = การส่งออก ZOOKEEPER_HOME = การส่งออก PATH = $ PATH: $ JAVA_HOME / bin: $ HADOOP_HOME / bin: $ HADOOP_HOME / sbin: $ ZOOKEEPER_HOME / bin

แก้ไขไฟล์. bashrc

เปิดใช้งาน SSH ในโหนดทั้งหมด

สร้างคีย์ SSH ในโหนดทั้งหมด

คำสั่ง : ssh-keygen –t rsa (ขั้นตอนนี้ในโหนดทั้งหมด)

ตั้งค่าคีย์ SSH ในโหนดทั้งหมด

อย่าให้เส้นทางใด ๆ ไปยังไฟล์ Enter เพื่อบันทึกคีย์และอย่าให้ข้อความรหัสผ่านใด ๆ กดปุ่ม Enter

สร้างกระบวนการคีย์ ssh ในโหนดทั้งหมด

เมื่อสร้างคีย์ ssh แล้วคุณจะได้รับคีย์สาธารณะและคีย์ส่วนตัว

ไดเร็กทอรีคีย์. ssh ควรมี Permission 700 และคีย์ทั้งหมดในไดเร็กทอรี. ssh ควรมีสิทธิ์ 600

เปลี่ยนสิทธิ์ไดเร็กทอรี SSH

เปลี่ยนไดเร็กทอรีเป็น. ssh และเปลี่ยนสิทธิ์ของไฟล์เป็น 600

เปลี่ยนการอนุญาตคีย์สาธารณะและคีย์ส่วนตัว

คุณต้องคัดลอกคีย์สาธารณะ Name nodes ssh ไปยังโหนดทั้งหมด

ใน Active Namenode คัดลอก id_rsa.pub โดยใช้คำสั่ง cat

คำสั่ง : cat ~ / .ssh / id_rsa.pub >> ~ / .ssh / Authorized_keys

คัดลอกคีย์ Namenode ssh ไปยังคีย์ที่ได้รับอนุญาต

คัดลอกคีย์สาธารณะ NameNode ไปยังโหนดทั้งหมดโดยใช้ ssh-copy-id คำสั่ง

คำสั่ง : ssh-copy-id –i .ssh / id_rsa.pub edureka@nn2.cluster.com

คัดลอกรหัสวัตถุประสงค์ไปยัง Standby NameNode

คัดลอกคีย์สาธารณะ NameNode ไปยังโหนดข้อมูล

คำสั่ง : ssh-copy-id –i .ssh / id_rsa.pub edureka@dn1.cluster.com

คัดลอกคีย์สาธารณะ Namenode ไปยังโหนดข้อมูล

รีสตาร์ทบริการ sshd ในโหนดทั้งหมด

คำสั่ง : sudo service sshd เริ่มต้นใหม่ (ทำในทุกโหนด)

เริ่มบริการ SSH ใหม่

ตอนนี้คุณสามารถล็อกอินเข้าสู่โหนดใดก็ได้จาก Namenode โดยไม่ต้องมีการพิสูจน์ตัวตน

เปิดไฟล์ core-site.xml จากโหนด Active Name และเพิ่มคุณสมบัติด้านล่าง

แก้ไข core-site.xml จาก Active namenode

เปิดไฟล์ hdfs-site.xml ใน Active Namenode เพิ่มคุณสมบัติด้านล่าง

dfs.namenode.name.dir / home / edureka / HA / data / namenode dfs.replication 1 dfs.permissions false dfs.nameservices ha-cluster dfs.ha.namenodes.ha-cluster nn1, nn2 dfs.namenode.rpc-address .ha-cluster.nn1 nn1.cluster.com:9000 dfs.namenode.rpc-address.ha-cluster.nn2 nn2.cluster.com:9000 dfs.namenode.http-address.ha-cluster.nn1 nn1.cluster com: 50070 dfs.namenode.http-address.ha-cluster.nn2 nn2.cluster.com:50070 dfs.namenode.shared.edits.dir qjournal: //nn1.cluster.com: 8485nn2.cluster.com: 8485dn1 cluster.com:8485/ha-cluster dfs.client.failover.proxy.provider.ha-cluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.automatic-failover.enabled ha.zookeeper จริง .quorum nn1.cluster.com:2181,nn2.cluster.com:2181,dn1.cluster.com:2181 dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files / home / edureka /.ssh/id_rsa

เปลี่ยนไดเรกทอรีเป็นไดเรกทอรี conf ของ zookeeper

คำสั่ง : cd zookeeper-3.4.6 / conf

ไดเรกทอรี Zookeeper Conf

ในไดเร็กทอรี conf คุณมีไฟล์ zoo_sample.cfg ให้สร้าง zoo.cfg โดยใช้ไฟล์ zoo_sample.cfg

ผนวกหมายถึงอะไรใน java

คำสั่ง : cp zoo_sample.cfg zoo.cfg

สร้างไฟล์ zoo.cfg

สร้างไดเร็กทอรีในตำแหน่งใดก็ได้และใช้ไดเร็กทอรีนี้เพื่อจัดเก็บข้อมูล Zookeeper

คำสั่ง : mkdir

สร้างไดเร็กทอรีเพื่อจัดเก็บข้อมูลผู้ดูแลสวนสัตว์

เปิดไฟล์ zoo.cfg

คำสั่ง : gedit zoo.cfg

เพิ่มพา ธ ไดเร็กทอรีที่สร้างขึ้นในขั้นตอนข้างต้นไปยังคุณสมบัติ dataDir และเพิ่มรายละเอียดด้านล่างเกี่ยวกับโหนดที่เหลือในไฟล์ zoo.cfg

เซิร์ฟเวอร์ 1 = nn1.cluster.com: 2888: 3888

เซิร์ฟเวอร์ 2 = nn2.cluster.com: 2888: 3888

เซิร์ฟเวอร์ 3 = dn1.cluster.com: 2888: 3888

แก้ไขไฟล์ zoo.cfg

ตอนนี้คัดลอกไดเร็กทอรี Java และ Hadoop-2.6.0, zookeeper-3.4.6 และไฟล์. bashrc ไปยังโหนดทั้งหมด (โหนดชื่อสแตนด์บาย, โหนดข้อมูล) โดยใช้คำสั่ง scp

คำสั่ง : scp –r edureka @:

คัดลอกไฟล์ Hadoop, Zookeeper และ. bashrc ไปยังโหนดทั้งหมด

ในทำนองเดียวกันให้คัดลอกไฟล์. bashrc และไดเร็กทอรี zookeeper ไปยังโหนดทั้งหมดและเปลี่ยนตัวแปรสภาพแวดล้อมในแต่ละโหนดตามโหนดที่เกี่ยวข้อง

ในโหนดข้อมูลสร้างไดเร็กทอรีที่คุณต้องการจัดเก็บบล็อก HDFS

ในโหนดข้อมูลคุณต้องเพิ่มคุณสมบัติ dfs.datanode.data.dir

ในกรณีของฉันฉันสร้างไฟล์ datanode ไดเร็กทอรีเพื่อจัดเก็บบล็อก

สร้างไดเร็กทอรี Datanode

เปลี่ยนสิทธิ์เป็นไดเร็กทอรีโหนดข้อมูล

เปลี่ยนสิทธิ์ไดเร็กทอรี Datanode

เปิดไฟล์ HDFS-site.xml เพิ่มพา ธ ไดเร็กทอรี Datanode นี้ในคุณสมบัติ dfs.datanode.data.dir

หมายเหตุ: เก็บคุณสมบัติทั้งหมดที่คัดลอกมาจาก Active namenode เพิ่ม dfs.datanode.data.dir one extract คุณสมบัติใน namenode

dfs.datanode.data.dir / home / edureka / HA / data / datanode

ใน Active namenode เปลี่ยนไดเร็กทอรีที่คุณต้องการจัดเก็บไฟล์คอนฟิกูเรชัน zookeeper (พา ธ คุณสมบัติ dataDir)

สร้างไฟล์ myid ภายในไดเร็กทอรีและเพิ่มตัวเลข 1 ลงในไฟล์และบันทึกไฟล์

คำสั่ง : vi myid

สร้างไฟล์ myid

ในโหมดตั้งชื่อสแตนด์บายให้เปลี่ยนไดเร็กทอรีที่คุณต้องการเก็บไฟล์คอนฟิกูเรชัน zookeeper (พา ธ คุณสมบัติ dataDir)

สร้างไฟล์ myid ภายในไดเร็กทอรีและเพิ่มตัวเลข 2 ลงในไฟล์และบันทึกไฟล์

ในโหนดข้อมูลเปลี่ยนไดเร็กทอรีที่คุณต้องการจัดเก็บไฟล์คอนฟิกูเรชัน zookeeper (พา ธ คุณสมบัติ dataDir)

สร้างไฟล์ myid ภายในไดเร็กทอรีและเพิ่มตัวเลข 3 ลงในไฟล์และบันทึกไฟล์

เริ่ม Journalnode ในทั้งสามโหนด

คำสั่ง : hadoop-daemon.sh เริ่ม journalnode

เริ่ม Journalnode

เมื่อคุณป้อนคำสั่ง jps คุณจะเห็น JournalNode daemon ในโหนดทั้งหมด

ฟอร์แมตไฟล์วัตถุประสงค์ที่ใช้งานอยู่

คำสั่ง : HDFS ตั้งใจ - ฟอร์แมต

รูปแบบ NameNode ที่ใช้งานอยู่

สตาร์ท Namenode daemon และ Active Namedode

คำสั่ง : hadoop-daemon.sh จุดประสงค์เริ่มต้น

เริ่ม Namenode

คัดลอกข้อมูล HDFS Meta จากโหนดชื่อที่ใช้งานไปยังโหมดตั้งชื่อสแตนด์บาย

คำสั่ง : HDFS ตั้งใจ -bootstrapStandby

คัดลอกข้อมูล HDFS Meta จาก Active name node ไปยัง Standby Namenode

เมื่อคุณรันคำสั่งนี้คุณจะได้รับข้อมูลจากโหนดและตำแหน่งที่คัดลอกข้อมูลเมตาและคัดลอกสำเร็จหรือไม่

ข้อมูลรายละเอียดวัตถุประสงค์ที่ใช้งานอยู่

เมื่อข้อมูล Meta ถูกคัดลอกจาก Active namenode ไปยัง standby namenode คุณจะได้รับข้อความที่แสดงด้านล่างในภาพหน้าจอ

ข้อมูลเกี่ยวกับ HDFS ในโหมด Standby Namenode

สตาร์ท namenode daemon ในเครื่อง standby namenode

คำสั่ง : hadoop-daemon.sh จุดประสงค์เริ่มต้น

ตอนนี้เริ่มบริการ Zookeeper ในทั้งสามโหนด

คำสั่ง : zkServer.sh start (รันคำสั่งนี้ในโหนดทั้งหมด)

ในวัตถุประสงค์ที่ใช้งานอยู่:

เริ่ม Zookeeper ใน Active NameNode

ในโหมด Standby Namenode:

เริ่ม Zookeeper ใน NameNode สแตนด์บาย

ในโหนดข้อมูล:

เริ่ม Zookeeper ใน DataNode

หลังจากรันเซิร์ฟเวอร์ Zookeeper ให้ป้อนคำสั่ง JPS ในทุกโหนดคุณจะเห็นบริการ QuorumPeerMain

สตาร์ท Data node daemon ใน Data node machine

คำสั่ง : hadoop-daemon.sh เริ่มต้น datanode

สตาร์ท Zookeeper ล้มเหลวบนคอนโทรลเลอร์ในโหนดชื่อที่ใช้งานอยู่และโหนดชื่อสแตนด์บาย

ฟอร์แมต Zookeeper ล้มเหลวบนคอนโทรลเลอร์ใน Active namenode

คำสั่ง: HDFS zkfc --formatZK

รูปแบบ ZKFC

เริ่ม ZKFC ใน Active namenode

คำสั่ง : hadoop-daemon.sh เริ่ม zkfc

ป้อนคำสั่ง jps เพื่อตรวจสอบ DFSZkFailoverController daemons

เริ่ม ZKFC

ฟอร์แมต Zookeeper ล้มเหลวบนคอนโทรลเลอร์ในโหมดตั้งชื่อสแตนด์บาย

คำสั่ง : hdfs zkfc –formatZK

เริ่ม ZKFC ในโหมดตั้งชื่อสแตนด์บาย

คำสั่ง : hadoop-daemon.sh เริ่ม zkfc

ป้อนคำสั่ง jps เพื่อตรวจสอบ DFSZkFailoverController daemons

ตรวจสอบสถานะของ Namenode แต่ละโหนดว่าโหนดใดใช้งานอยู่หรือโหนดใดอยู่ในโหมดสแตนด์บายโดยใช้คำสั่งด้านล่าง

คำสั่ง : hdfs haadmin –getServiceState nn1

ตรวจสอบสถานะของแต่ละ NameNode

ตรวจสอบสถานะของ Namenode แต่ละรายการโดยใช้เว็บเบราว์เซอร์

เปิดเว็บเบราว์เซอร์และป้อน URL ด้านล่าง

: 50070

จะแสดงว่าโหนดชื่อ Active หรือสแตนด์บาย

Active NameNode

เปิดรายละเอียดโหนดชื่ออื่นโดยใช้เว็บเบราว์เซอร์

ชื่อโหมดสแตนด์บาย

ใน Active namenode ให้ฆ่า namenode daemon เพื่อเปลี่ยนโหนดชื่อสแตนด์บายเป็น namenode ที่ใช้งานอยู่

ป้อน jps ใน Active namenode และฆ่า daemon

คำสั่ง: sudo ฆ่า -9

รหัสกระบวนการ Daemons

รหัสกระบวนการ Namenode คือ 7606 ฆ่า Namenode

คำสั่ง : ซูโดฆ่า -9 7606

ฆ่ากระบวนการ Name Node

เปิดสองโหนดผ่านเว็บเบราว์เซอร์และตรวจสอบสถานะ

รายละเอียด Namenode

สถานะ NameNode

ขอแสดงความยินดีคุณติดตั้ง HDFS High Availability Cluster ใน Hadoop เรียบร้อยแล้ว

ตอนนี้คุณเข้าใจ Hadoop High Availability Cluster Architecture แล้วลองดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรม Edureka Big Data Hadoop Certification ช่วยให้ผู้เรียนมีความเชี่ยวชาญใน HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume และ Sqoop โดยใช้กรณีการใช้งานแบบเรียลไทม์ในโดเมนการค้าปลีกโซเชียลมีเดียการบินการท่องเที่ยวการเงิน

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป

window._LQ_ = window._LQ_ || {}

lqQuizModal (หน้าต่าง, เอกสาร, {quizId: ’XAIVp8′, baseUrl: ’https: //quiz.leadquizzes.com/’,trigger:’ exit ’}, _LQ_)