您好,登錄后才能下訂單哦!
先說一下環境,有兩個集群,一個新的一個舊的,打算把新的調試好然后把舊的關掉。
新:Cloudera Express 5.6.0,CDH-5.6.0
舊: Cloudera Express 5.0.5,CDH-5.0.5
新集群搭建過程中發現一個問題,執行以下命令對lzo文件創建索引,在新集群中job無法提交到指定隊列,同樣的命令在舊集群中正常:
hadoop jar hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer -D mapreduce.job.queuename=copy /data/lzodata/
兩個集群的配置區別在于,舊集群lzo的配置一個是手動的,新集群是用GPLEXTRAS的parcel包配置的。
用GPLEXTRAS配置的新集群默認吧lzo的jar包加載到hadoop classpath路徑中了,導致的結果是DistributedLzoIndexer 提交不到正確的隊列。
因為新版版的hadoop-lzo.jar中
com.hadoop.compression.lzo.DistributedLzoIndexer 修改了獲取Configuration的方式
Configuration conf = new Configuration(); Job job = new Job(conf );
舊版本中為
Job job = new Job(getConf());
修改了源碼,然后重新上傳到提交job的服務器,只在提交job的時候起作用。
修改腳本的位置,修改前請做好備份:
/opt/cloudera/parcels/CDH-5.6.0-1.cdh6.6.0.p0.45/lib/hadoop/bin
修改腳本中 export CLASSPATH=/opt/cloudera/userlib/hadoop-lzo.jar:$CLASSPATH
上面的/opt/cloudera/userlib/hadoop-lzo.jar為想要加載的路徑
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。