因为hadoop1.0.3不支持bzip2解压,所以我将相同的类从hadoop2.2复制到我的项目中,但是我的项目(或者我们称之为jar)仍然在hadoop1.0.3集群上运行。我发现hadoop仍然执行1.0.3中的类,即新类没有执行。如何配置以首先使用我自己的jar中的类。我知道我们可能会用到这样的东西:hadoop jar collect\u log.jar com.testcol-dmapreduce.task.classpath.user.precedence=true
但是现在我正在使用emr,所以我不知道如何在emr中设置优先级。谢谢!
1条答案
按热度按时间crcmnpdw1#
emr从location/home/hadoop/lib引用hadoopjar您可以尝试使用引导脚本将新jar复制到此位置。
另一种选择是在启动emr时。使用ssh和密钥文件连接到主节点,并查看ps-ef | grep java。
它将显示当前hadoop进程及其jar顺序(类路径),稍后您可以在bootsraop脚本中进行更改,以根据新顺序更改类路径
编辑以添加示例引导脚本mybootstrap.sh
将这个脚本上传到s3 bucket并将其分配给emr启动程序代码
这里config\u hadoop\u bootstrap\u action将是引导文件的路径。