วิธีติดตั้งและกำหนดค่า 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 และการติดตั้งบริการอื่น ๆ ในบทความถัดไป