繁体   English   中英

如何让Hadoop将jar部署到集群?

[英]How to let Hadoop deploy jars to the cluster?

我已经阅读了将libjars选项与HadoopHadoop结合使用:为MapReduce驱动程序实现Tool接口 ,并且已关注该博客以实现我的工作跑步者。

我的map reduce函数在Scala中实现,如果我使用Proguardscala库打包到jar中,则效果很好。 现在,我想分离scala库,以便进一步减小罐子的大小。

分离scala-library之后 ,我运行了以下命令:

HADOOP_ROOT_LOGGER=ALL,console hadoop jar /path/to/my.jar com.scala.mapreduce.Main -files /hdfs/path/to/scala-library.jar -libjars /hdfs/path/to/scala-library.jar /path/to/input /path/to/output
  • 知道如果我需要-files选项
  • 我尝试了各种路径格式,包括file:///... ,特定于操作系统的格式,HDFS格式

我得到的错误表明hadoop无法找到scala库

线程“主要” java.lang.NoClassDefFoundError中的异常:scala / collection / immutable / StringOps ...

  1. 不,您不需要-files选项
  2. 除了添加到libjars外,还需要将scala库添加到HADOOP_CLASSPATH中

这是我们添加MapReduce作业所需的其他jar的工作。

HADOOP_CLASSPATH=$HADOOP_CLASSPATH:mylib.jar
LIB_JARS=$(echo $HADOOP_CLASSPATH | sed -e "s/:/,/g")
hadoop jar ... -libjars $LIB_JARS ...

这对我们来说很好。 但是,我们有一个仅对环境jar(例如HCatalog,HBase等)执行此操作的策略。 任何其他罐子都包装到我们的胖罐子中。 由于所有这些都在防火墙后面,因此带宽从来都不是问题,因此我们不必担心罐子的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM