用于MapR/Hadoop/Hive的类路径



我正试图为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

通过试错找到了答案。奇怪的是,谷歌对此保持沉默,我读过的所有书籍和例子似乎都认为这太明显了,不需要打印出来。

mkdir MyClass
javac -classpath "/opt/mapr/hadoop/hadoop-0.20.2/lib/*" MyClass.java -d MyClass
jar -cvf MyClass.jar -C MyClass .

另外,如果您需要hive库,例如编译hive UDF:

javac -classpath "/opt/mapr/hadoop/hadoop-0.20.2/lib/*:/opt/mapr/hive/hive-0.12/lib/*" MyClass.java -d MyClass

编辑:我要补充的一件事是确保你在路径周围加上引号,否则linux会在命令行上展开它,这不是你想要的。路径中的*需要原样传递给java。

最新更新