ปัญหาที่พบ ใน Cloudera CDH4 แต่สามารถใช้ได้กับรุ่น Hadoop ใด ๆ ที่สนับสนุน
เมื่อเรียกใช้ Hadoop เป็นสคริปต์ในบริบท "ภายใน" ผลผลิต แต่เมื่อทำงานในบริบท hadoop จะแสดงข้อผิดพลาดการต่อไปนี้:
"ข้อผิดพลาดภายใน: ไม่สามารถรีเซ็ต hdfs params ภายในขณะที่เชื่อมต่อกับระบบแฟ้มที่มี hdfs ได้"
สาเหตุที่เป็นไปได้:
1 - คุณอาจไม่ตั้งค่าตัวเลือก 'nameNode' อย่างถูกต้องในคำสั่ง RxHdfsFileSystem() หรือคุณกำลังใช้หมายเลขพอร์ตไม่ถูกต้องสำหรับ HDFS ในที่ทำงานเดียวกัน
ถ้าคุณกำลังเรียกใช้ฟอร์มโค้ดของคุณ EdgeNode โปรดตรวจสอบให้แน่ใจว่า การตั้งค่าสำหรับ 'ชื่อโฮสต์' คือ ชื่อจริงของ nameNode และไม่ชื่อโฮสต์ของ edgenode คุณกำลังทำงานอยู่จากนั้น
นอกจากนี้ โปรดตรวจสอบตัวจัดการ Cloudera และตรวจสอบว่า บริการ HDFS ใช้พอร์ต '8020 พอร์ตเริ่มต้น หากทำบนพอร์ตอื่น คุณจะต้องกำหนดอย่างชัดเจนว่าการทดสอบสคริปต์ในการเรียกต่อไปนี้ใน Hadoop ของคุณ:
(ตัวอย่าง)
myNameNode <-"test1.acme.com"
myPort < - 1700
hdfsFS <-RxHdfsFileSystem (ชื่อโฮสต์ = myNameNode พอร์ต = myPort)
2 - ใน กรณีที่มีโหนดขอบคุณจำเป็นต้องระบุชื่อโฮสต์เดียวกัน และการตั้งค่าทั้ง RxHadoopMR() และ RxHdfsFileSystem() พอร์ตที่ระบุ
3-โปรดตรวจสอบให้แน่ใจว่าคุณได้คัดลอกคู่ RevoScaleR แฟ้มจากไดเรกทอรีที่คุณเปิดใช้ตัวติดตั้ง Revolution (โฟลเดอร์ Revolution),
scaleR-hadoop-0.1-SNAPSHOT.jarลงในไดเรกตอรีการ lib Cloudera Hadoop ซึ่งโดยทั่วไปคือ:
/opt/cloudera/parcels/CDH/lib/hadoop/lib (สำหรับหีบห่อ) หรือ
/usr/lib/hadoop/lib/
แฟ้มนี้จำเป็นต้องคัดลอกลงในโฟลเดอร์นี้บนโหนทั้งหมดของคลัสเตอร์ของคุณ Hadoop
หลังจากการปรับเปลี่ยนใด ๆ ของพารามิเตอร์เหล่านี้ เรียกใช้สคริปต์ที่แสดงข้อมูลข้อผิดพลาดในตอนเริ่มต้นอีกครั้ง
ถ้าข้อผิดพลาดยังคงอยู่ ติดต่อฝ่ายสนับสนุนด้านเทคนิค สำหรับการแก้ไขปัญหาเบื้องต้นลึก