วิธีการติดตั้ง HBase บน Ubuntu: คำแนะนำทีละขั้นตอน

⚡ สรุปอย่างชาญฉลาด

การติดตั้ง HBase บน Ubuntu โปรแกรมนี้ทำงานในสามโหมด ได้แก่ โหมดสแตนด์อโลน โหมดเสมือนกระจาย และโหมดกระจายเต็มรูปแบบ โดยครอบคลุมวิธีการดาวน์โหลดไฟล์ tarball ของเวอร์ชันที่เผยแพร่ การแก้ไขไฟล์ hbase-env.sh และ hbase-site.xml การเริ่มต้น daemon และการแก้ไขข้อผิดพลาดในการเริ่มต้นระบบทั่วไป

  • 🧩 โหมดการติดตั้ง: โหมดสแตนด์อโลนทำงานใน JVM เดียวบนระบบไฟล์ภายในเครื่อง ส่วนโหมดกระจายจะจัดเก็บข้อมูลใน Hadoop HDFS.
  • ⬇️ ดาวน์โหลด: ดาวน์โหลดไฟล์ไบนารี HBase ในรูปแบบไฟล์บีบอัด (tarball) จากเว็บไซต์ Apache HBase แล้วแตกไฟล์ลงในไดเร็กทอรีโฮมของคุณ
  • ⚙️ การกำหนดค่า: ตั้งค่า JAVA_HOME และ HBASE_HOME จากนั้นกำหนด hbase.rootdir และไดเร็กทอรี ZooKeeper ในไฟล์ hbase-site.xml
  • ▶️ เริ่มต้น: เรียกใช้สคริปต์ start-hbase.sh ยืนยัน HMaster ด้วย jps จากนั้นเปิดพรอมต์แบบโต้ตอบโดยใช้ hbase shell
  • 🌐 กระจายแบบเสมือน: กำหนดให้ hbase.rootdir ชี้ไปยัง HDFS เปิดใช้งาน hbase.cluster.distributed และตั้งค่า quorum ของ ZooKeeper และพอร์ตไคลเอ็นต์
  • 🩹 การแก้ไขปัญหา: แก้ไขข้อผิดพลาดเกี่ยวกับ region-server, ZooKeeper quorum, root-directory และ session-timeout โดยการแก้ไขไฟล์ hosts และ hbase-site.xml

วิธีการติดตั้ง Apache HBase บน Ubuntu ในโหมดแบบสแตนด์อะโลน แบบเสมือนกระจาย และแบบกระจายอย่างสมบูรณ์

Apache HBase เป็นระบบฐานข้อมูลแบบกระจายศูนย์ ฐานข้อมูลแบบคอลัมน์ ซึ่งทำงานอยู่บนระบบไฟล์แบบกระจายของ Hadoop (HDFS) ก่อนเริ่มต้น โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้งระบบที่รองรับแล้ว Java ติดตั้งรันไทม์และตั้งค่า JAVA_HOME แล้ว โหมดจำลองการกระจายและโหมดกระจายเต็มรูปแบบยังต้องการรันไทม์ที่ใช้งานได้ด้วย Hadoop การติดตั้ง

โหมดการติดตั้ง Apache HBase

Apache HBase สามารถติดตั้งได้สามโหมด คุณสมบัติของโหมดเหล่านี้มีการกล่าวถึงด้านล่าง

1) การติดตั้งโหมดสแตนด์อโลน (ไม่ต้องพึ่งพาระบบ Hadoop)

  • นี่คือโหมดเริ่มต้นของ HBase
  • โปรแกรมนี้ทำงานกับระบบไฟล์ในเครื่อง
  • มันไม่ได้ใช้ Hadoop HDFS.
  • เฉพาะเดมอน HMaster เท่านั้นที่สามารถทำงานได้
  • ไม่แนะนำให้ใช้ในสภาพแวดล้อมการผลิต
  • ทำงานใน JVM เดียว

2) การติดตั้งโหมด Pseudo-Distributed (ระบบ Hadoop โหนดเดียว + การติดตั้ง HBase)

  • มันทำงาน Hadoop HDFS.
  • โปรแกรมเบื้องหลังทั้งหมดทำงานบนโหนดเดียว
  • เหมาะสำหรับสภาพแวดล้อมการผลิต

3) การติดตั้งในโหมดกระจายอย่างสมบูรณ์ (สภาพแวดล้อม Hadoop แบบหลายโหนด + การติดตั้ง HBase)

  • มันทำงาน Hadoop HDFS.
  • โปรแกรมเบื้องหลังทั้งหมดทำงานอยู่บนทุกโหนดในคลัสเตอร์
  • แนะนำเป็นอย่างยิ่งสำหรับสภาพแวดล้อมการผลิต

สำหรับวิธีการติดตั้ง Hadoop โปรดดูที่นี่ คู่มือการติดตั้ง Hadoop.

ภาพหน้าจอที่แสดงด้านล่างใช้ HBase เวอร์ชัน 1.1.2 เวอร์ชันเสถียรในปัจจุบันคือ HBase 2.5.x และ 2.6.x (Java (8 หรือ 11) แต่ขั้นตอนการติดตั้งและไฟล์การกำหนดค่าโดยพื้นฐานแล้วยังคงเหมือนเดิม

วิธีดาวน์โหลดไฟล์ HBase tar เวอร์ชันเสถียร

ขั้นตอนที่ 1) ไปที่ หน้าดาวน์โหลด Apache HBase อย่างเป็นทางการ เพื่อดาวน์โหลด HBase ระบบจะเปิดหน้าเว็บดาวน์โหลดดังที่แสดงด้านล่าง

หน้าดาวน์โหลด Apache HBase เปิดในเบราว์เซอร์เพื่อดาวน์โหลดไฟล์ tarball ของรุ่นนั้น

ขั้นตอนที่ 2) เลือกเวอร์ชันเสถียรตามที่แสดงด้านล่าง คือ HBase เวอร์ชัน 1.1.2

เลือก HBase เวอร์ชัน 1.1.2 ที่เสถียรบนหน้าดาวน์โหลด

ขั้นตอนที่ 3) คลิกที่ hbase-1.1.2-bin.tar.gz ระบบจะดาวน์โหลดไฟล์ tar จากนั้นคัดลอกไฟล์ tar ไปยังตำแหน่งที่จะติดตั้งโปรแกรม

คลิกที่ลิงก์ไบนารี hbase-1.1.2-bin.tar.gz เพื่อดาวน์โหลดไฟล์ tar

วิธีการติดตั้ง HBase ใน Ubuntu ด้วยโหมดสแตนด์อโลน

นี่คือขั้นตอนการติดตั้ง HBase ในโหมดสแตนด์อโลนแบบทีละขั้นตอน Ubuntu:

ขั้นตอนที่ 1) ทำตามคำสั่งด้านล่าง วางไฟล์ hbase-1.1.2-bin.tar.gz ไว้ใน /home/hduser

ขั้นตอนที่ 2) แตกไฟล์โดยใช้คำสั่ง `$tar -xvf hbase-1.1.2-bin.tar.gz` คำสั่งนี้จะแตกไฟล์และสร้างโฟลเดอร์ hbase-1.1.2 ในตำแหน่ง `/home/hduser`

ขั้นตอนที่ 3) เปิดไฟล์ hbase-env.sh ดังตัวอย่างด้านล่าง และระบุพาธ JAVA_HOME ในช่องตำแหน่งที่ตั้ง ดังที่แสดงด้านล่าง

แก้ไขไฟล์ hbase-env.sh เพื่อตั้งค่าพาธ JAVA_HOME สำหรับโหมดสแตนด์อโลน

ขั้นตอนที่ 4) เปิดไฟล์ ~/.bashrc และระบุพาธ HBASE_HOME ดังที่แสดงด้านล่าง

export HBASE_HOME=/home/hduser/hbase-1.1.1
export PATH= $PATH:$HBASE_HOME/bin

ไฟล์ ~/.bashrc ที่ได้รับการอัปเดตโดยมีรายการ HBASE_HOME อยู่ด้านล่าง

เพิ่มพาธ HBASE_HOME ลงในไฟล์ bashrc สำหรับโหมดสแตนด์อโลน

ขั้นตอนที่ 5) เพิ่มคุณสมบัติในไฟล์ เปิดไฟล์ hbase-site.xml และใส่คุณสมบัติต่อไปนี้ลงในไฟล์

hduser@ubuntu$ gedit ไฟล์ hbase-site.xml (โค้ดตามด้านล่าง)

<property>

<name>hbase.rootdir</name>

<value>file:///home/hduser/HBASE/hbase</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/HBASE/zookeeper</value>

</property>

ไฟล์ hbase-site.xml เปิดขึ้นใน gedit แสดงอยู่ด้านล่าง

ไฟล์ hbase-site.xml ถูกเปิดขึ้นแล้ว gedit ด้วยคุณสมบัติ rootdir และ ZooKeeper ที่แยกต่างหาก

ในที่นี้เราได้กำหนดคุณสมบัติสองอย่างไว้ดังนี้:

  • หนึ่งสำหรับไดเร็กทอรีรากของ HBase และ
  • อันที่สองสำหรับไดเร็กทอรีข้อมูลที่สอดคล้องกับ ZooKeeper.

กิจกรรมทั้งหมดของ HMaster และ ZooKeeper ชี้ไปยังไฟล์ hbase-site.xml นี้

ขั้นตอนที่ 6) ระบุที่อยู่ IP เปิดไฟล์ hosts ที่อยู่ในไดเร็กทอรี /etc และระบุที่อยู่ IP ตามที่แสดงด้านล่าง

แก้ไขไฟล์ /etc/hosts เพื่อแมปที่อยู่ IP ของเครื่อง

ขั้นตอนที่ 7) ตอนนี้ให้รันไฟล์ start-hbase.sh ในตำแหน่ง hbase-1.1.1/bin ตามที่แสดงด้านล่าง จากนั้นคุณสามารถตรวจสอบด้วยคำสั่ง jps เพื่อดูว่า HMaster กำลังทำงานอยู่หรือไม่

ผลลัพธ์จากคำสั่ง jps ที่แสดงให้เห็นว่ากระบวนการ HMaster กำลังทำงานในโหมดสแตนด์อโลน

ขั้นตอนที่ 8) เริ่มใช้งาน HBase Shell สามารถเริ่มใช้งาน HBase Shell ได้โดยใช้คำสั่งต่อไปนี้ เปลือก hbase พิมพ์คำสั่งนี้ แล้วมันจะเข้าสู่โหมดเชลล์แบบโต้ตอบดังที่แสดงในภาพหน้าจอด้านล่าง เมื่อเข้าสู่โหมดเชลล์แล้ว เราสามารถดำเนินการคำสั่งต่างๆ ได้ทุกประเภท

หน้าต่างโต้ตอบเชลล์ของ HBase เริ่มทำงานด้วยคำสั่ง hbase shell

โหมดสแตนด์อโลนไม่ต้องการ Hadoop daemons เพื่อเริ่มทำงาน HBase สามารถทำงานได้อย่างอิสระ

โหมดการติดตั้งแบบกระจาย HBase Pseudo

นี่เป็นอีกวิธีหนึ่งในการติดตั้ง Apache HBase ซึ่งเรียกว่าโหมดการติดตั้งแบบกระจายเสมือน (Pseudo Distributed mode) ขั้นตอนการติดตั้ง HBase ผ่านโหมดกระจายเสมือนมีดังต่อไปนี้

ขั้นตอนที่ 1) วางไฟล์ hbase-1.1.2-bin.tar.gz ไว้ใน /home/hduser

ขั้นตอนที่ 2) แตกไฟล์โดยใช้คำสั่ง `$tar -xvf hbase-1.1.2-bin.tar.gz` คำสั่งนี้จะแตกไฟล์และสร้างโฟลเดอร์ hbase-1.1.2 ในตำแหน่ง `/home/hduser`

ขั้นตอนที่ 3) เปิดไฟล์ hbase-env.sh ดังตัวอย่างด้านล่าง ระบุพาธ JAVA_HOME และพาธของ Region Server ในช่องตำแหน่ง แล้วส่งออกคำสั่งดังที่แสดงด้านล่าง

แก้ไขไฟล์ hbase-env.sh โดยเพิ่ม JAVA_HOME และเส้นทางของ Region Servers สำหรับโหมดจำลองการกระจาย (pseudo-distributed mode)

ขั้นตอนที่ 4) ในขั้นตอนนี้ เราจะเปิดไฟล์ ~/.bashrc และระบุพาธ HBASE_HOME ตามที่แสดงในภาพหน้าจอด้านล่าง

ตั้งค่าพาธ HBASE_HOME ในไฟล์ bashrc สำหรับโหมดจำลองการกระจาย

ขั้นตอนที่ 5) เปิดไฟล์ hbase-site.xml และระบุคุณสมบัติต่อไปนี้ในไฟล์ (โค้ดดังที่แสดงด้านล่าง)

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>localhost</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/hbase/zookeeper</value>

</property>

ไฟล์ hbase-site.xml ที่มีคุณสมบัติแบบกระจายจำลองแสดงอยู่ด้านล่าง

ไฟล์ hbase-site.xml ที่มีคุณสมบัติจำลองการกระจายตัวของ HDFS และ ZooKeeper

การตั้งค่า ZooKeeper ส่วนที่เหลือแสดงอยู่ด้านล่าง

ส่วนต่อจากไฟล์ hbase-site.xml สำหรับการกำหนดค่า ZooKeeper ในโหมดจำลองการกระจาย

คุณสมบัติแต่ละอย่างในไฟล์มีบทบาทเฉพาะเจาะจง:

  • ตั้งค่าไดเร็กทอรีรากของ HBase ในคุณสมบัติ hbase.rootdir
  • สำหรับการตั้งค่าแบบกระจาย hbase.cluster.distributed ต้องตั้งค่าเป็น true
  • ควรตั้งค่าคุณสมบัติ quorum ของ ZooKeeper ที่นี่
  • การตั้งค่าการจำลองข้อมูล (Replication) ทำได้โดยใช้คุณสมบัติ dfs.replication โดยค่าเริ่มต้นจะตั้งค่าเป็น 1 ในโหมดกระจายอย่างสมบูรณ์ (Fully Distributed Mode) จะมีโหนดข้อมูลหลายโหนด ดังนั้นคุณสามารถเพิ่มจำนวนการจำลองข้อมูลได้โดยใส่ค่าที่มากกว่า 1 ในคุณสมบัติ dfs.replication
  • ควรระบุพอร์ตไคลเอ็นต์ในคุณสมบัติ hbase.zookeeper.property.clientPort
  • สามารถระบุไดเร็กทอรีข้อมูลของ ZooKeeper ได้ในคุณสมบัติ hbase.zookeeper.property.dataDir

ขั้นตอนที่ 6) เริ่มต้นใช้งาน Hadoop daemon ก่อน จากนั้นจึงเริ่มต้นใช้งาน HBase daemon ตามที่แสดงด้านล่าง ก่อนอื่นคุณต้องเริ่มต้นใช้งาน Hadoop daemon โดยใช้คำสั่ง ./start-all.sh ตามที่แสดงด้านล่าง

เรียกใช้คำสั่ง start-all.sh เพื่อเริ่มการทำงานของ Hadoop daemon

หลังจากนั้น ให้เริ่มการทำงานของ HBase daemon ด้วยไฟล์ hbase-start.sh ดังแสดงด้านล่าง

เริ่มต้นการทำงานของ HBase daemon ด้วยสคริปต์ start-hbase.sh ในโหมดจำลองการกระจาย

ตอนนี้ให้ตรวจสอบกระบวนการที่กำลังทำงานอยู่โดยใช้คำสั่ง jps ดังแสดงด้านล่าง

ผลลัพธ์จากคำสั่ง jps ที่แสดงรายการ daemon ของ Hadoop และ HBase ที่กำลังทำงานอยู่

การติดตั้งโหมดกระจายเต็ม HBase

โหมดกระจายอย่างสมบูรณ์จะขยายการตั้งค่าแบบเสมือนกระจายไปยังคลัสเตอร์จริง

  • การตั้งค่านี้ใช้งานได้ในโหมดคลัสเตอร์ Hadoop ซึ่งจะมีการสร้างโหนดหลายโหนดกระจายอยู่ทั่วคลัสเตอร์และทำงานอยู่
  • วิธีการติดตั้งเหมือนกับโหมดกระจายเสมือน เพียงแต่ว่ามันจะกระจายไปยังหลายโหนด
  • ไฟล์การกำหนดค่าที่กล่าวถึงใน hbase-site.xml และ hbase-env.sh นั้นเหมือนกับที่กล่าวถึงในโหมดจำลอง

ในโหมดกระจายอย่างสมบูรณ์ ตรวจสอบให้แน่ใจว่าเวอร์ชัน Hadoop บนคลัสเตอร์ของคุณตรงกับไลบรารี Hadoop ที่มาพร้อมกับ HBase เพื่อให้ดีมอนสามารถสื่อสารกันได้อย่างถูกต้อง

การแก้ไขปัญหาการติดตั้ง HBase

1) ปัญหาที่พบ: เซิร์ฟเวอร์หลักเริ่มต้นทำงานได้ แต่เซิร์ฟเวอร์ภูมิภาคไม่เริ่มต้นทำงาน

การสื่อสารระหว่างเซิร์ฟเวอร์หลัก (Master) และเซิร์ฟเวอร์ภูมิภาค (Region Server) เกิดขึ้นผ่านที่อยู่ IP ของพวกมัน เซิร์ฟเวอร์หลักจะรอรับการเชื่อมต่อจากเซิร์ฟเวอร์ภูมิภาคที่กำลังทำงานอยู่หรือมีที่อยู่ IP เป็น 127.0.0.1 ที่อยู่ IP 127.0.0.1 คือ localhost และจะแปลงเป็น localhost ของเซิร์ฟเวอร์หลักเอง

สาเหตุ:

ในการสื่อสารแบบสองทางระหว่างเซิร์ฟเวอร์ภูมิภาคและเซิร์ฟเวอร์หลัก เซิร์ฟเวอร์ภูมิภาคจะแจ้งให้เซิร์ฟเวอร์หลักทราบอย่างต่อเนื่องว่าที่อยู่ IP ของตนคือ 127.0.0.1

วิธีการแก้:

  • ลบโหนดชื่อเซิร์ฟเวอร์หลักออกจากรายการโฮสต์ภายในเครื่องที่มีอยู่ในไฟล์ hosts
  • ตำแหน่งของไฟล์ hosts: /etc/hosts

สิ่งที่ต้องเปลี่ยน:

เปิดไฟล์ /etc/hosts แล้วไปที่ตำแหน่งนี้

127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost
: : 1              localhost3.localdomain3 localdomain3

แก้ไขการตั้งค่าข้างต้นดังต่อไปนี้ (ลบชื่อเซิร์ฟเวอร์ภูมิภาคตามที่ไฮไลต์ไว้ด้านบน)

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) ปัญหาที่พบ: ไม่พบที่อยู่ XYZ ในรายการเซิร์ฟเวอร์ควอรัมของ ZooKeeper

สาเหตุ:

  • เซิร์ฟเวอร์ ZooKeeper ไม่สามารถเริ่มต้นได้ และแสดงข้อผิดพลาด เช่น มี .xyz อยู่ในชื่อเซิร์ฟเวอร์
  • HBase พยายามเริ่มต้นเซิร์ฟเวอร์ ZooKeeper บนเครื่องหนึ่ง แต่ในขณะเดียวกัน เครื่องนั้นไม่สามารถค้นหาตัวเองในโครงสร้างโควรัมที่มีอยู่ในไฟล์ hbase.zookeeper.quorum ได้

วิธีการแก้:

  • แทนที่ชื่อโฮสต์ด้วยชื่อโฮสต์ที่ปรากฏในข้อความแสดงข้อผิดพลาด
  • หากคุณมีเซิร์ฟเวอร์ DNS คุณสามารถตั้งค่าการกำหนดค่าต่อไปนี้ในไฟล์ hbase-site.xml ได้: hbase.zookeeper.dns.interface และ hbase.zookeeper.dns.nameserver

3) โจทย์ปัญหา: สร้างไดเร็กทอรีรากสำหรับ HBase ผ่าน Hadoop DFS

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

สาเหตุ:

  • มีการสร้างไดเร็กทอรีใหม่สำหรับ HBase โดยใช้ระบบไฟล์แบบกระจายของ Hadoop
  • ในที่นี้ HBase คาดหวังความเป็นไปได้สองประการ:

1) ไดเร็กทอรีรากไม่มีอยู่จริง

2) ก่อนหน้านี้ได้มีการเริ่มต้นใช้งาน HBase ไว้แล้ว

วิธีการแก้:

  • ตรวจสอบให้แน่ใจว่าไดเร็กทอรีรากของ HBase ยังไม่มีอยู่ หรือได้รับการเริ่มต้นใช้งานโดยการเรียกใช้งานอินสแตนซ์ HBase ครั้งก่อนแล้ว
  • เพื่อเป็นส่วนหนึ่งของวิธีแก้ปัญหา โปรดทำตามขั้นตอนต่อไปนี้

ขั้นตอนที่ 1) ใช้ Hadoop dfs เพื่อลบไดเร็กทอรีรากของ HBase

ขั้นตอนที่ 2) HBase จะสร้างและเริ่มต้นใช้งานไดเร็กทอรีโดยอัตโนมัติ

4) คำชี้แจงปัญหา: เหตุการณ์เซสชัน ZooKeeper หมดอายุ

สาเหตุ:

  • เซิร์ฟเวอร์ HMaster หรือ HRegion ปิดตัวลงโดยการโยนข้อยกเว้น
  • หากคุณตรวจสอบบันทึก คุณจะสามารถค้นหาข้อผิดพลาดที่เกิดขึ้นจริงได้

ต่อไปนี้คือตัวอย่างข้อผิดพลาดที่เกิดขึ้นเนื่องจากเหตุการณ์หมดอายุของ ZooKeeper เหตุการณ์ที่ไฮไลต์ไว้คือข้อผิดพลาดบางส่วนที่เกิดขึ้นในไฟล์บันทึก

โค้ดไฟล์บันทึกข้อมูลแสดงดังด้านล่าง:

WARN org.apache.zookeeper.ClientCnxn: Exception
closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec

java.io.IOException: TIMED OUT	
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906)
WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000
INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT
INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT]
INFO org.apache.zookeeper.ClientCnxn: Server connection successful
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e

java.io.IOException: Session Expired	 
at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589)
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945)
ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired

วิธีการแก้:

  • ขนาด RAM เริ่มต้นคือ 1 GB สำหรับการนำเข้าข้อมูลที่ใช้เวลานาน ควรมี RAM มากกว่า 1 GB
  • เพิ่มระยะเวลาหมดเวลาของเซสชันสำหรับ ZooKeeper
  • หากต้องการเพิ่มระยะเวลาหมดเวลาของเซสชัน ZooKeeper ให้แก้ไขคุณสมบัติต่อไปนี้ในไฟล์ hbase-site.xml ซึ่งอยู่ในโฟลเดอร์ hbase/conf
  • เวลาหมดอายุของเซสชันโดยค่าเริ่มต้นคือ 60 วินาที คุณสามารถเปลี่ยนเป็น 120 วินาทีได้ตามที่ระบุไว้ด้านล่าง
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

คำถามที่พบบ่อย

HBase ต้องการการสนับสนุน Java รันไทม์ที่มีการตั้งค่า JAVA_HOME โหมดจำลองการกระจายและโหมดกระจายเต็มรูปแบบก็ต้องการรันไทม์เช่นกัน Hadoop HDFS คลัสเตอร์ โหมดสแตนด์อโลนต้องการเพียง Javaเนื่องจากมันใช้ระบบไฟล์ในเครื่องและรวม ZooKeeper ไว้ด้วย

โหมดสแตนด์อโลนไม่รองรับ เนื่องจากทำงานบนระบบไฟล์ภายในเครื่องใน JVM เดียวโดยไม่มี Hadoop daemon โหมดแบบกระจายเสมือนและแบบกระจายเต็มรูปแบบจำเป็นต้องใช้ Hadoop เพราะจัดเก็บข้อมูลใน HDFS และขึ้นอยู่กับ NameNode และ DataNode ของ Hadoop

แก้ไขไฟล์ conf/hbase-env.sh และเพิ่มบรรทัด export JAVA_HOME=/path/to/your/jdk โดยชี้ไปยังไดเร็กทอรีรากของ JDK HBase จะอ่านค่านี้เมื่อเริ่มต้นทำงาน คุณยังสามารถเพิ่ม export JAVA_HOME ใน ~/.bashrc เพื่อให้เชลล์ค้นหาไดเร็กทอรีรากของ JDK ได้อีกด้วย Java ทั่วโลก

คู่มือนี้แสดงตัวอย่าง HBase เวอร์ชัน 1.1.2 แต่เวอร์ชันเสถียรปัจจุบันคือ HBase เวอร์ชัน 2.5.x และ 2.6.x โดยเวอร์ชัน 3.0 อยู่ในขั้นตอนเบต้า เวอร์ชันที่ใหม่กว่าจำเป็นต้อง... Java 8 หรือ 11 ขั้นตอนการดาวน์โหลด การกำหนดค่า และการเริ่มต้นใช้งานยังคงเหมือนเดิมโดยพื้นฐาน

เรียกใช้คำสั่ง jps และมองหาโปรเซส HMaster รวมถึง HRegionServer และ HQuorumPeer ในโหมดกระจาย คุณยังสามารถเปิดเว็บ UI ของ HBase Master หรือเรียกใช้คำสั่ง status ภายในได้อีกด้วย เปลือก hbase เพื่อยืนยันว่าคลัสเตอร์ทำงานอยู่

โดยค่าเริ่มต้น HBase Master จะรับฟังการเชื่อมต่อที่พอร์ต 16000 โดยมีเว็บ UI อยู่ที่พอร์ต 16010 และ Region Server แต่ละตัวจะใช้พอร์ต 16020 โดยมี UI อยู่ที่พอร์ต 16030 ส่วน ZooKeeper จะรับฟังการเชื่อมต่อที่พอร์ตไคลเอ็นต์ 2181 ซึ่งตั้งค่าได้ผ่าน hbase.zookeeper.property.clientPort

ผู้ช่วย AI และเครื่องมือวิเคราะห์บันทึกข้อมูลด้วยแมชชีนเลิร์นนิงจะสแกนบันทึกข้อมูลของ HBase และ ZooKeeper จัดกลุ่มบันทึกเหล่านั้น และระบุสาเหตุหลักของข้อผิดพลาด เช่น เซสชันหมดอายุหรือความล้มเหลวของควอรัม พวกมันจะแนะนำวิธีแก้ไขการกำหนดค่า แต่ควรให้วิศวกรตรวจสอบการเปลี่ยนแปลงแต่ละครั้งก่อนนำไปใช้

ใช่. นักบิน GitHub สร้างส่วนย่อยของไฟล์ hbase-site.xml, รายการในไฟล์ hbase-env.sh และสคริปต์เชลล์เริ่มต้นจากข้อความแสดงความคิดเห็นสั้นๆ Revโปรดตรวจสอบคำแนะนำเกี่ยวกับชื่อคุณสมบัติ เส้นทาง และพอร์ตที่ถูกต้องก่อนที่จะเรียกใช้งาน เนื่องจากไฟล์การกำหนดค่าที่สร้างขึ้นอาจอ้างอิงถึงค่าเริ่มต้นที่ล้าสมัย

สรุปโพสต์นี้ด้วย: