Talend - ระบบไฟล์แบบกระจาย Hadoop
ในบทนี้ให้เราเรียนรู้โดยละเอียดเกี่ยวกับการทำงานของ Talend กับระบบไฟล์แบบกระจาย Hadoop
การตั้งค่าและข้อกำหนดเบื้องต้น
ก่อนที่เราจะดำเนินการต่อใน Talend ด้วย HDFS เราควรเรียนรู้เกี่ยวกับการตั้งค่าและข้อกำหนดเบื้องต้นที่ควรเป็นไปตามวัตถุประสงค์นี้
ที่นี่เรากำลังเรียกใช้ Cloudera quickstart 5.10 VM บน virtual box ต้องใช้เครือข่ายโฮสต์เท่านั้นใน VM นี้
IP เฉพาะเครือข่ายโฮสต์: 192.168.56.101
![](https://post.nghiatu.com/assets/tutorial/talend/images/pre_requisites.jpg)
คุณต้องมีโฮสต์เดียวกันที่ทำงานบน cloudera manager ด้วย
![](https://post.nghiatu.com/assets/tutorial/talend/images/cloudera_manager.jpg)
ตอนนี้บนระบบ windows ของคุณไปที่ c: \ Windows \ System32 \ Drivers \ etc \ hosts และแก้ไขไฟล์นี้โดยใช้ Notepad ดังที่แสดงด้านล่าง
![](https://post.nghiatu.com/assets/tutorial/talend/images/windows_system.jpg)
ในทำนองเดียวกันบน VM ของ cloudera quickstart ให้แก้ไขไฟล์ / etc / hosts ตามที่แสดงด้านล่าง
sudo gedit /etc/hosts
![](https://post.nghiatu.com/assets/tutorial/talend/images/hosts.jpg)
การตั้งค่าการเชื่อมต่อ Hadoop
ในแผงที่เก็บไปที่ข้อมูลเมตา คลิกขวาที่ Hadoop Cluster และสร้างคลัสเตอร์ใหม่ ตั้งชื่อวัตถุประสงค์และคำอธิบายสำหรับการเชื่อมต่อคลัสเตอร์ Hadoop นี้
คลิกถัดไป
![](https://post.nghiatu.com/assets/tutorial/talend/images/hadoop_connection.jpg)
เลือกการกระจายเป็น cloudera และเลือกเวอร์ชันที่คุณใช้ เลือกตัวเลือกการดึงข้อมูลการกำหนดค่าแล้วคลิกถัดไป
![](https://post.nghiatu.com/assets/tutorial/talend/images/hadoop_configuration.jpg)
ป้อนข้อมูลรับรองผู้จัดการ (URI พร้อมพอร์ตชื่อผู้ใช้รหัสผ่าน) ดังที่แสดงด้านล่างแล้วคลิกเชื่อมต่อ หากรายละเอียดถูกต้องคุณจะได้รับ Cloudera QuickStart ภายใต้คลัสเตอร์ที่ค้นพบ
![](https://post.nghiatu.com/assets/tutorial/talend/images/manager_credentials.jpg)
คลิกดึงข้อมูล สิ่งนี้จะดึงการเชื่อมต่อและการกำหนดค่าทั้งหมดสำหรับ HDFS, YARN, HBASE, HIVE
เลือกทั้งหมดแล้วคลิกเสร็จสิ้น
![](https://post.nghiatu.com/assets/tutorial/talend/images/click_fetch.jpg)
โปรดทราบว่าพารามิเตอร์การเชื่อมต่อทั้งหมดจะถูกเติมอัตโนมัติ พูดถึง cloudera ในชื่อผู้ใช้แล้วคลิก Finish
![](https://post.nghiatu.com/assets/tutorial/talend/images/connection_parameters.jpg)
ด้วยวิธีนี้คุณได้เชื่อมต่อกับ Hadoop Cluster เรียบร้อยแล้ว
![](https://post.nghiatu.com/assets/tutorial/talend/images/hadoop_cluster.jpg)
กำลังเชื่อมต่อกับ HDFS
ในงานนี้เราจะแสดงรายการไดเรกทอรีและไฟล์ทั้งหมดที่มีอยู่ใน HDFS
ประการแรกเราจะสร้างงานจากนั้นเพิ่มส่วนประกอบ HDFS เข้าไป คลิกขวาที่ Job Design และสร้างงานใหม่ - hadoopjob
ตอนนี้เพิ่ม 2 ส่วนประกอบจากจานสี - tHDFSConnection และ tHDFSList คลิกขวาที่ tHDFSConnection และเชื่อมต่อ 2 องค์ประกอบนี้โดยใช้ทริกเกอร์ 'OnSubJobOk'
ตอนนี้กำหนดค่าทั้งส่วนประกอบ hdfs ของ talend
![](https://post.nghiatu.com/assets/tutorial/talend/images/connecting_hdfs.jpg)
ใน tHDFSConnection ให้เลือก Repository เป็น Property Type และเลือกคลัสเตอร์ Hadoop cloudera ที่คุณสร้างไว้ก่อนหน้านี้ โดยอัตโนมัติจะกรอกรายละเอียดที่จำเป็นทั้งหมดที่จำเป็นสำหรับส่วนประกอบนี้
![](https://post.nghiatu.com/assets/tutorial/talend/images/property_type.jpg)
ใน tHDFSList ให้เลือก“ ใช้การเชื่อมต่อที่มีอยู่” และในรายการส่วนประกอบให้เลือก tHDFSConnection ที่คุณกำหนดค่าไว้
ให้ตัวเลือกโฮมพา ธ ของ HDFS ใน HDFS Directory แล้วคลิกปุ่มเรียกดูทางด้านขวา
![](https://post.nghiatu.com/assets/tutorial/talend/images/browse_button.jpg)
หากคุณสร้างการเชื่อมต่ออย่างถูกต้องด้วยการกำหนดค่าดังกล่าวข้างต้นคุณจะเห็นหน้าต่างดังที่แสดงด้านล่าง มันจะแสดงรายการไดเรกทอรีและไฟล์ทั้งหมดที่มีอยู่ในบ้าน HDFS
![](https://post.nghiatu.com/assets/tutorial/talend/images/hdfs_browse.jpg)
คุณสามารถตรวจสอบได้โดยตรวจสอบ HDFS ของคุณบน cloudera
![](https://post.nghiatu.com/assets/tutorial/talend/images/checking_hdfs.jpg)
กำลังอ่านไฟล์จาก HDFS
ในส่วนนี้ให้เราเข้าใจวิธีอ่านไฟล์จาก HDFS ใน Talend คุณสามารถสร้างงานใหม่เพื่อจุดประสงค์นี้อย่างไรก็ตามเรากำลังใช้งานที่มีอยู่ที่นี่
ลากและวางองค์ประกอบ 3 - tHDFSConnection, tHDFSInput และ tLogRow จากจานสีไปยังหน้าต่างนักออกแบบ
คลิกขวาที่ tHDFSConnection และเชื่อมต่อคอมโพเนนต์ tHDFSInput โดยใช้ทริกเกอร์ 'OnSubJobOk'
คลิกขวาที่ tHDFSInput และลากลิงค์หลักไปที่ tLogRow
![](https://post.nghiatu.com/assets/tutorial/talend/images/reading_file.jpg)
โปรดทราบว่า tHDFSConnection จะมีการกำหนดค่าที่คล้ายกับก่อนหน้านี้ ใน tHDFSInput เลือก“ ใช้การเชื่อมต่อที่มีอยู่” และจากรายการส่วนประกอบเลือก tHDFSConnection
ในชื่อไฟล์ให้ระบุพา ธ HDFS ของไฟล์ที่คุณต้องการอ่าน ที่นี่เรากำลังอ่านไฟล์ข้อความธรรมดาดังนั้นประเภทไฟล์ของเราคือไฟล์ข้อความ ในทำนองเดียวกันขึ้นอยู่กับข้อมูลที่คุณป้อนให้กรอกตัวคั่นแถวตัวคั่นฟิลด์และรายละเอียดส่วนหัวตามที่ระบุไว้ด้านล่าง สุดท้ายคลิกปุ่มแก้ไขสคีมา
![](https://post.nghiatu.com/assets/tutorial/talend/images/edit_schema_button.jpg)
เนื่องจากไฟล์ของเรามีเพียงข้อความธรรมดาเราจึงเพิ่มประเภท String เพียงคอลัมน์เดียว ตอนนี้คลิกตกลง
Note - เมื่อข้อมูลที่คุณป้อนมีหลายคอลัมน์ประเภทต่างๆคุณต้องพูดถึงสคีมาที่นี่ตามนั้น
![](https://post.nghiatu.com/assets/tutorial/talend/images/multiple_columns.jpg)
ในคอมโพเนนต์ tLogRow คลิกซิงค์คอลัมน์ในแก้ไขสคีมา
เลือกโหมดที่คุณต้องการให้พิมพ์ผลงานของคุณ
![](https://post.nghiatu.com/assets/tutorial/talend/images/select_mode.jpg)
สุดท้ายคลิกเรียกใช้เพื่อดำเนินการงาน
เมื่อคุณอ่านไฟล์ HDFS สำเร็จแล้วคุณจะเห็นผลลัพธ์ต่อไปนี้
![](https://post.nghiatu.com/assets/tutorial/talend/images/successful_reading.jpg)
การเขียนไฟล์เป็น HDFS
มาดูวิธีการเขียนไฟล์จาก HDFS ใน Talend ลากและวางองค์ประกอบ 3 - tHDFSConnection, tFileInputDelimited และ tHDFSOutput จากหน้าต่างจานสีไปยังตัวออกแบบ
คลิกขวาที่ tHDFSConnection และเชื่อมต่อคอมโพเนนต์ tFileInputDelimited โดยใช้ทริกเกอร์ 'OnSubJobOk'
คลิกขวาที่ tFileInputDelimited แล้วลากลิงค์หลักไปที่ tHDFSOutput
![](https://post.nghiatu.com/assets/tutorial/talend/images/main_link.jpg)
โปรดทราบว่า tHDFSConnection จะมีการกำหนดค่าที่คล้ายกับก่อนหน้านี้
ตอนนี้ใน tFileInputDelimited ให้เส้นทางของไฟล์อินพุตในตัวเลือกชื่อไฟล์ / สตรีม ที่นี่เรากำลังใช้ไฟล์ csv เป็นอินพุตดังนั้นตัวคั่นฟิลด์คือ“,”
เลือกส่วนหัวส่วนท้าย จำกัด ตามไฟล์อินพุตของคุณ โปรดทราบว่าที่นี่ส่วนหัวของเราคือ 1 เนื่องจาก 1 แถวมีชื่อคอลัมน์และขีด จำกัด คือ 3 เนื่องจากเราเขียนเพียง 3 แถวแรกไปยัง HDFS
ตอนนี้คลิกแก้ไขสคีมา
![](https://post.nghiatu.com/assets/tutorial/talend/images/select_header.jpg)
ตอนนี้ตามไฟล์อินพุตของเรากำหนดสคีมา ไฟล์อินพุตของเรามี 3 คอลัมน์ตามที่ระบุไว้ด้านล่าง
![](https://post.nghiatu.com/assets/tutorial/talend/images/input_file.jpg)
ในคอมโพเนนต์ tHDFSOutput คลิกซิงค์คอลัมน์ จากนั้นเลือก tHDFSConnection ในใช้การเชื่อมต่อที่มีอยู่ นอกจากนี้ในชื่อไฟล์ให้ระบุเส้นทาง HDFS ที่คุณต้องการเขียนไฟล์ของคุณ
โปรดทราบว่าประเภทไฟล์จะเป็นไฟล์ข้อความการดำเนินการจะเป็น "สร้าง" ตัวคั่นแถวจะเป็น "\ n" และตัวคั่นช่องคือ ";"
![](https://post.nghiatu.com/assets/tutorial/talend/images/row_separator.jpg)
สุดท้ายคลิกเรียกใช้เพื่อดำเนินการงานของคุณ เมื่องานดำเนินการสำเร็จแล้วให้ตรวจสอบว่าไฟล์ของคุณอยู่ใน HDFS หรือไม่
![](https://post.nghiatu.com/assets/tutorial/talend/images/executed_successfully.jpg)
รันคำสั่ง hdfs ต่อไปนี้ด้วยพา ธ เอาต์พุตที่คุณกล่าวถึงในงานของคุณ
hdfs dfs -cat /input/talendwrite
คุณจะเห็นผลลัพธ์ต่อไปนี้หากคุณประสบความสำเร็จในการเขียนบน HDFS
![](https://post.nghiatu.com/assets/tutorial/talend/images/writing_successful.jpg)