如何在java应用程序的配置单元外壳上添加JAR

如何在java应用程序的配置单元外壳上添加JAR,java,hadoop,hive,hdfs,Java,Hadoop,Hive,Hdfs,我正在尝试在蜂箱外壳上添加罐子。我知道服务器上的全局选项,但我的要求是在配置单元外壳上的每个会话中添加它们。 我已经将其用于hdfs-dfs命令,以将jar添加到hdfs文件系统中 这就是我尝试过的: 在hdfs/tmp上创建了一个文件夹 使用filesystem.copyFromLocalFile将文件添加到hdfs文件系统 (相当于hdfs dfs-put myjar.jar/tmp 在fs文件系统上设置文件的权限 检查jar是否已使用getFileSystem加载到hdfs 列出fs文件系

我正在尝试在蜂箱外壳上添加罐子。我知道服务器上的全局选项,但我的要求是在配置单元外壳上的每个会话中添加它们。 我已经将其用于hdfs-dfs命令,以将jar添加到hdfs文件系统中

这就是我尝试过的:

在hdfs/tmp上创建了一个文件夹 使用filesystem.copyFromLocalFile将文件添加到hdfs文件系统 (相当于hdfs dfs-put myjar.jar/tmp

在fs文件系统上设置文件的权限

检查jar是否已使用getFileSystem加载到hdfs

列出fs文件系统上用于确认JAR存在的文件

这是可行的,我将jar加载到hdfs中,但我无法将jar添加到配置单元会话中

当我尝试将其添加到蜂巢壳中时,我正在执行以下操作:

statement = setStmt(createStatement(getConnection()));
query = "add jar " + path;
statement.execute(query);
我得到了这个错误[例如/tmp/myjar.jar的路径]:

Error while processing statement: /tmp/myjar.jar does not exist
路径上的其他排列,例如

query = "add jar hdfs://<host>:<port>" + path;
query = "add jar <host>:<port>" + path;

我设法解决了这个问题

由于的配置,进程失败。 在会话中添加JAR之前,我们将JAR上载到该对象

这就是初始化文件系统的方式
FileSystem fs=FileSystem.newInstance(conf);

对象conf应该具有配置单元服务器的属性

为了使流程正常工作,我需要在Configuration属性上设置以下参数
conf.set(“fs.defaultFS”,hdfsDstStr);
我设法解决了这个问题

由于的配置,进程失败。 在会话中添加JAR之前,我们将JAR上载到该对象

这就是初始化文件系统的方式
FileSystem fs=FileSystem.newInstance(conf);

对象conf应该具有配置单元服务器的属性

为了使流程正常工作,我需要在Configuration属性上设置以下参数
conf.set(“fs.defaultFS”,hdfsDstStr)

嗨??你解决这个问题了吗?你想注册一个自定义自定义自定义函数吗?有一种方法可以在hive中注册自定义函数。我想告诉你?参考serde jarsI was。我想,你可以使用
add jar
语句在hive中添加一个jar函数,因为我猜你想定义一个新的hive udf函数。嗨??您解决了这个问题吗?您是否正在尝试注册自定义udf?有一种方法可以在hive中注册自定义函数。我想告诉您?参考serde jarsI was。您可以使用
add jar
语句在hive中添加jar函数,因为我猜您是在尝试定义新的hive udf函数。
query = "list jars";
ResultSet rs = statement.executeQuery(query);