我正在尝试为hadoop编译一些java代码,需要知道我需要指定哪个类路径。对于cloudera我在下面使用它,但是我用什么来安装MapR?令人惊讶的是,我只能找到如何在谷歌中设置类路径,而不是将其设置为。
javac -classpath "/opt/cloudera/parcels/CDH-4.6.0-1.cdh4.6.0.p0.26/lib/hadoop/client/*" mr.java -d mr
答案 0 :(得分:0)
通过反复试验找到答案。很奇怪谷歌对此非常沉默,我读过的所有书籍和例子似乎都认为这太明显了,无法打印。
mkdir MyClass
javac -classpath "/opt/mapr/hadoop/hadoop-0.20.2/lib/*" MyClass.java -d MyClass
jar -cvf MyClass.jar -C MyClass .
此外,如果您需要配置单元库,例如编译配置单元UDF:
javac -classpath "/opt/mapr/hadoop/hadoop-0.20.2/lib/*:/opt/mapr/hive/hive-0.12/lib/*" MyClass.java -d MyClass
编辑:我要添加的一件事是确保在路径周围加上引号,否则linux会在命令行上展开它,这不是你想要的。路径中的*需要按原样传递给java。