修改hadoop脚本改变CLASSPATH中jar加载顺序-创新互联

先说一下环境,有两个集群,一个新的一个旧的,打算把新的调试好然后把旧的关掉。

在呼图壁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都做网站、外贸营销网站建设 网站设计制作按需网站制作,公司网站建设,企业网站建设,品牌网站制作,成都营销网站建设,外贸网站建设,呼图壁网站建设费用合理。

  新: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为想要加载的路径

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:修改hadoop脚本改变CLASSPATH中jar加载顺序-创新互联
分享网址:http://hbruida.cn/article/dphpjd.html