簡體   English   中英

如何在不使用交互模式的情況下將命令傳遞給直線?

[英]How to pass command to beeline without using interactive mode?

使用直線,您可以為 hive 配置提供特定的 hive 命令(不是 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

我試圖做這樣的事情,但它似乎沒有做任何事情:

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 查詢之前,如何給直線一些直線命令?

不確定您為什么要嘗試使用直線添加 jar。 您可以輕松使用 hive shell。

  • 將 JAR 文件上傳到 hdfs 路徑hadoop fs -put ~/Downloads/hive.jar /lib/
  • 打開 hive shell 並發出 - add jar hdfs:///lib/hive.jar

現在,如果你想發出 SQL 命令,你可以在直線中使用-q

beeline ...   -q "show databases;" 

我認為直線 - -u需要給 DB url。像這樣的東西

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM