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

วิธีติดตั้งและกำหนดค่า Cloudera Manager บน CentOS/RHEL 7 - ตอนที่ 3


ในบทความนี้ เราได้อธิบายกระบวนการทีละขั้นตอนในการติดตั้ง Cloudera Manager ตามหลักปฏิบัติทางอุตสาหกรรม ในส่วนที่ 2 เราได้ผ่านข้อกำหนดเบื้องต้นของ Cloudera แล้ว ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ทั้งหมดได้รับการจัดเตรียมอย่างสมบูรณ์แบบ

ความต้องการ

  • แนวทางปฏิบัติที่ดีที่สุดสำหรับการปรับใช้เซิร์ฟเวอร์ Hadoop บน CentOS/RHEL 7 – ส่วนที่ 1
  • การตั้งค่าข้อกำหนดเบื้องต้นของ Hadoop และการเพิ่มความปลอดภัย – ส่วนที่ 2

ที่นี่เราจะมี 5 โหนดคลัสเตอร์ โดยมี 2 มาสเตอร์และ 3 คนทำงาน ฉันใช้อินสแตนซ์ 5 AWS EC2 เพื่อสาธิตขั้นตอนการติดตั้ง ฉันได้ตั้งชื่อเซิร์ฟเวอร์ทั้ง 5 ดังกล่าวดังนี้

master1.linux-console.net
master2.linux-console.net
worker1.linux-console.net
worker2.linux-console.net
worker3.linux-console.net

Cloudera Manager เป็นเครื่องมือการดูแลระบบและการตรวจสอบสำหรับ CDH ทั้งหมด ผู้ดูแลระบบมักจะเรียกสิ่งนี้ว่าเครื่องมือการจัดการสำหรับ Cloudera Hadoop เราสามารถปรับใช้ ตรวจสอบ ควบคุม และทำการเปลี่ยนแปลงการกำหนดค่าด้วยการใช้เครื่องมือนี้ นี่เป็นสิ่งสำคัญมากในการจัดการคลัสเตอร์ทั้งหมด

ด้านล่างนี้คือการใช้งานที่สำคัญของ Cloudera Manager

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

ขั้นตอนที่ 1: การติดตั้ง Apache เว็บเซิร์ฟเวอร์บน CentOS

เราจะใช้ master1 เป็นเว็บเซิร์ฟเวอร์สำหรับที่เก็บ Cloudera นอกจากนี้ Cloudera Manager ยังเป็น WebUI ดังนั้นเราจึงจำเป็นต้องติดตั้ง Apache ทำตามขั้นตอนด้านล่างเพื่อติดตั้งเว็บเซิร์ฟเวอร์ apache

yum -y install httpd

เมื่อติดตั้ง httpd แล้ว ให้เริ่มต้นและเปิดใช้งานเพื่อที่จะเริ่มต้นในการบูต

systemctl start httpd
systemctl enable httpd

หลังจากเริ่ม httpd แล้ว ให้ตรวจสอบสถานะ

systemctl status httpd

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

ขั้นตอนที่ 2: กำหนดค่า DNS ภายในเพื่อแก้ไข IP และชื่อโฮสต์

เราจำเป็นต้องมีเซิร์ฟเวอร์ DNS หรือกำหนดค่า /etc/hosts เพื่อแก้ไข IP และชื่อโฮสต์ ที่นี่เรากำลังกำหนดค่า /etc/hosts แต่ในแบบเรียลไทม์ จะมีเซิร์ฟเวอร์ DNS เฉพาะสำหรับสภาพแวดล้อมการใช้งานจริง

ทำตามขั้นตอนด้านล่างเพื่อสร้างรายการสำหรับเซิร์ฟเวอร์ทั้งหมดของคุณใน /etc/hosts

vi /etc/hosts

ควรกำหนดค่านี้ในเซิร์ฟเวอร์ทั้งหมด

13.235.27.144   master1.linux-console.net     master1
13.235.135.170  master2.linux-console.net     master2
15.206.167.94   worker1.linux-console.net     worker1
13.232.173.158  worker2.linux-console.net     worker2
65.0.182.222    worker3.linux-console.net     worker3

ขั้นตอนที่ 3: กำหนดค่าการเข้าสู่ระบบแบบไม่ใช้รหัสผ่าน SSH

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

ทำตามขั้นตอนด้านล่างเพื่อกำหนดค่า ssh โดยไม่ต้องใช้รหัสผ่านจาก master1 ไปยังเซิร์ฟเวอร์ที่เหลือทั้งหมด เราจะให้ผู้ใช้ 'tecmint' เพื่อดำเนินการต่อไป

สร้างผู้ใช้ 'tecmint' ทั้ง 4 เซิร์ฟเวอร์โดยใช้คำสั่ง useradd ดังที่แสดง

useradd -m tecmint

หากต้องการให้สิทธิ์รูทแก่ผู้ใช้ 'tecmint' ให้เพิ่มบรรทัดด้านล่างลงในไฟล์ /etc/sudoers คุณสามารถเพิ่มบรรทัดนี้ใต้รูทตามที่ให้ไว้ในภาพหน้าจอ

tecmint   ALL=(ALL)    ALL

สลับไปที่ผู้ใช้ 'tecmint' และสร้างคีย์ ssh ใน master1 โดยใช้คำสั่งด้านล่าง

sudo su tecmint
ssh-keygen

ตอนนี้คัดลอกคีย์ที่สร้างขึ้นไปยังเซิร์ฟเวอร์ทั้ง 4 เครื่องโดยใช้คำสั่ง ssh-copy-id ดังที่แสดง

ssh-copy-id -i ~/.ssh/id_rsa.pub [email 
ssh-copy-id -i ~/.ssh/id_rsa.pub [email 
ssh-copy-id -i ~/.ssh/id_rsa.pub [email  
ssh-copy-id -i ~/.ssh/id_rsa.pub [email 

ตอนนี้คุณควรจะสามารถ ssh จาก master1 ไปยังเซิร์ฟเวอร์ที่เหลือทั้งหมดโดยไม่มีรหัสผ่านดังที่แสดง

ssh master2
ssh worker1
ssh worker2
ssh worker3

ขั้นตอนที่ 4: การติดตั้งและกำหนดค่า Cloudera Manager

เราสามารถใช้พื้นที่เก็บข้อมูล ผู้จำหน่าย (Cloudera) เพื่อติดตั้งแพ็คเกจทั้งหมดโดยใช้เครื่องมือการจัดการแพ็คเกจใน RHEL/CentOS การสร้างพื้นที่เก็บข้อมูลของเราเองในแบบเรียลไทม์เป็นแนวทางปฏิบัติที่ดีที่สุด เนื่องจากเราอาจไม่มีการเข้าถึงอินเทอร์เน็ตในเซิร์ฟเวอร์ที่ใช้งานจริง

ที่นี่เราจะติดตั้งรุ่น Cloudera Manager 6.3.1 เนื่องจากเรากำลังจะใช้ master1 เป็นเซิร์ฟเวอร์ repo เราจึงดาวน์โหลดแพ็คเกจในเส้นทางที่กล่าวถึงด้านล่าง

สร้างไดเร็กทอรีที่กล่าวถึงด้านล่างบนเซิร์ฟเวอร์ master1

sudo mkdir -p /var/www/html/cloudera-repos/cm6

เราสามารถใช้เครื่องมือ wget เพื่อดาวน์โหลดแพ็คเกจผ่าน http ดังนั้นให้ติดตั้ง wget โดยใช้คำสั่งด้านล่าง

sudo yum -y install wget

จากนั้น ดาวน์โหลดไฟล์ tar ของ Cloudera Manager โดยใช้คำสั่ง wget ต่อไปนี้

wget https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz

แยกไฟล์ tar ลงใน /var/www/html/cloudera-repos/cm6 เราได้ทำให้ master1 เป็นเว็บเซิร์ฟเวอร์โดยการติดตั้ง http และ เราได้ทดสอบบนเบราว์เซอร์แล้ว

sudo tar xvfz cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1

ตอนนี้ตรวจสอบว่าไฟล์ Cloudera rpm ทั้งหมดอยู่ในไดเร็กทอรี /var/www/html/cloudera-repos/cm6/RPMS/x86_64

cd /var/www/html/cloudera-repos/cm6
ll

สร้างไฟล์ /etc/yum.repos.d/cloudera-manager.repo บนเซิร์ฟเวอร์ทั้งหมดในโฮสต์คลัสเตอร์ด้วยเนื้อหาต่อไปนี้ ที่นี่ master1 (65.0.101.148) คือ เว็บเซิร์ฟเวอร์

[cloudera-repo]
name=cloudera-manager
baseurl=http:///cloudera-repos/cm6/
enabled=1
gpgcheck=0

ตอนนี้เพิ่มที่เก็บแล้ว ให้รันคำสั่งด้านล่างเพื่อดูที่เก็บที่เปิดใช้งาน

yum repolist

รันคำสั่งด้านล่างเพื่อดูแพ็คเกจที่เกี่ยวข้องกับ Cloudera ที่มีอยู่ทั้งหมดในพื้นที่เก็บข้อมูล

yum list available | grep cloudera*

ติดตั้ง cloudera-manager-server, cloudera-manager-agent, cloudera-manager-daemons cloudera-manager-server-db-2

sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server cloudera-manager-server-db-2

เรียกใช้คำสั่งด้านล่างเพื่อดูแพ็คเกจ Cloudera ที่ติดตั้งทั้งหมด

yum list installed | grep cloudera*

เรียกใช้คำสั่งด้านล่างเพื่อเริ่มต้น cloudera-scm-server-db ซึ่งเป็นฐานข้อมูลพื้นฐานสำหรับจัดเก็บ Cloudera Manager และข้อมูลเมตาของบริการอื่นๆ

ตามค่าเริ่มต้น Cloudera กำลังมาพร้อมกับ postgre-sql ซึ่งฝังอยู่ใน Cloudera Manager เรากำลังติดตั้งฐานข้อมูลแบบฝังในฐานข้อมูลภายนอกแบบเรียลไทม์ที่สามารถใช้งานได้ อาจเป็น Oracle, MySQL หรือ PostgreSQL

sudo systemctl start cloudera-scm-server-db

รันคำสั่งด้านล่างเพื่อตรวจสอบสถานะของฐานข้อมูล

sudo systemctl status cloudera-scm-server-db

กำหนดค่า db.properties สำหรับเซิร์ฟเวอร์ Cloudera Manager

vi /etc/cloudera-scm-server/db.properties

กำหนดค่าด้านล่างเป็น EMBEDDED เพื่อให้ Cloudera Manager ใช้ Embedded Database

com.cloudera.cmf.db.setupType=EMBEDDED

รันคำสั่งด้านล่างเพื่อเริ่มเซิร์ฟเวอร์ Cloudera Manager

sudo systemctl start cloudera-scm-server

เรียกใช้คำสั่งด้านล่างเพื่อตรวจสอบสถานะของเซิร์ฟเวอร์ Cloudera Manager

sudo systemctl status cloudera-scm-server

เรียกใช้คำสั่งด้านล่างเพื่อเริ่มต้นและตรวจสอบสถานะของตัวแทน Cloudera Manager

sudo systemctl start cloudera-scm-agent
sudo systemctl status cloudera-scm-agent

เมื่อ Cloudera Manager Server เปิดใช้งานและทำงานได้ดี คุณสามารถดู WebUI (หน้าเข้าสู่ระบบ) ในเบราว์เซอร์โดยใช้ที่อยู่ IP และหมายเลขพอร์ต 7180 ซึ่งเป็นหมายเลขพอร์ตของ ผู้จัดการ Cloudera

https://65.0.101.148:7180

สรุป

ในบทความนี้ เราได้เห็นกระบวนการทีละขั้นตอนในการติดตั้ง Cloudera Manager บน CentOS 7 เราจะเห็น CDH และการติดตั้งบริการอื่น ๆ ในบทความถัดไป