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

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

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

  1. add jar myjar.jar

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

  1. beeline \
  2. -u toto \
  3. -n toto\
  4. -p toto \
  5. --silent=true \
  6. -e "add jar hivexmlserde-1.0.5.3.jar; show databases;"
  7. Error: AnalysisException: Syntax error in line 1:
  8. add jar hivexmlserde-1.0.5.3.jar; show databases
  9. ^
  10. Encountered: ADD

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

  1. beeline \
  2. -u toto \
  3. -n toto\
  4. -p toto\
  5. --silent=true \
  6. -e "show databases;" <<EOF
  7. add jar hivexmlserde-1.0.5.3.jar
  8. list jar
  9. EOF

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

hof1towb

hof1towb1#

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

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

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

  1. beeline ... -q "show databases;"

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

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

相关问题