如何在不使用交互模式的情况下将命令传递到直线?

xkftehaa  于 2022-10-21  发布在  Hive
关注(0)|答案(1)|浏览(120)

使用BELINE,您可以给出特定的配置单元命令(而不是HQL查询!)对于配置单元配置,例如:

add jar myjar.jar

然而,我不明白您如何才能在不处于交互模式的情况下提供这些命令,因为文档中没有(或者我没有找到)具体说明如何操作。
我尝试为它提供查询参数-e,但没有成功:

beeline \
        -u toto \
        -n toto\
        -p toto \
        --silent=true \
        -e "add jar hivexmlserde-1.0.5.3.jar; show databases;" 

Error: AnalysisException: Syntax error in line 1:
add jar hivexmlserde-1.0.5.3.jar; show databases
^
Encountered: ADD

我曾尝试做类似this的操作,但它似乎什么也做不了:

beeline \
        -u toto \
        -n toto\
        -p toto\
        --silent=true \
        -e "show databases;" <<EOF
        add jar hivexmlserde-1.0.5.3.jar
        list jar
        EOF

其不提供关于将JAR添加到分布式高速缓存的任何日志。
在执行所提供的HQL查询之前,我如何给出一些直线化命令?

hof1towb

hof1towb1#

不知道为什么您要尝试使用直线添加JAR。你可以很容易地使用Hive外壳。

  • 上传JAR文件到HDFS路径hadoop fs -put ~/Downloads/hive.jar /lib/
  • 打开配置单元外壳并发出-add jar hdfs:///lib/hive.jar

现在,如果您想发出一个SQL命令,您可以在直线中使用-q

beeline ...   -q "show databases;"

我认为对于直线--u需要给数据库URL。像这样的东西

beeline -n username -p password -u jdbc:hive2://hs2.local:10012

相关问题