hive使用beeline配置遠程連接


hive以hadoop集群為基礎,提供hdfs的SQL支持;

hive一般可以以mysql為元數據存儲,默認Derby;hadoop,hive安裝自行百度吧;

介紹hive的遠程訪問:

  未配置之前使用beeline的話,每次都要為連接輸入用戶名密碼,較為麻煩;

  實現目標:在非集群節點上敲beeline命令,直接進入到hive的命令行

1,在hive服務的安裝節點的hive-site.xml配置文件中添加以下配置,配置beeline的遠程訪問用戶名和密碼

<property>
    <name>hive.server2.thrift.client.user</name>
    <value>root</value>
    <description>Username to use against thrift client</description>
  </property>
  <property>
    <name>hive.server2.thrift.client.password</name>
    <value>password</value>
    <description>Password to use against thrift client</description>
  </property>

2,保證hadoop集群環境正常運行,另外重要的一點是要在hive的服務安裝節點開啟hiveserver2

  直接運行hiveserver2會一直停留在打印hive的操作日志的狀態,可以改為后台運行

  后台運行命令為:nohup hiveserver2 > /dev/null 2>&1 &  說明:后面的/dev/null 2>&1有說法是黑洞,具體忘記了,年紀大了容易忘,,有興趣的童鞋可以百度一下

  nohup后台運行的命令怎么關掉呢?當然你也可以百度;一個方法為:jobs -l 可以看到運行的進程號,kill -9 殺之~

3,把hadoop的安裝文件夾和hive的安裝文件夾copy到要配置hive客戶端的這個linux上面,我測試的版本為hadoop-2.7.6,apache-hive-1.2.2-bin,並配置環境變量/etc/profile,記得source一下哦

  注意:不配置HADOOP_HOME,運行beeline會提示缺少HADOOP_HOME參數,你可以理解為需要連接集群的地址,如master:9000的相關配置是在hdfs-site.xml中

  hive是需要這些信息連接集群環境的,畢竟hive是在操作hdfs上的文件

4,配置命令;經過上面那三個步驟,其實你已經可以使用beeline -u jdbc:hive2://192.168.1.89:10000 -n root --color=true --silent=false 來遠程登錄hive了

  但是看着這一長串的命令,懶癌犯了。。。配置一個簡單點的命令吧。想到的一個辦法就是alias自定義命令,並把它配置到環境變量中,在~/.bashrc中添加

  alias beeline="/opt/softWare/hive/apache-hive-1.2.2-bin/bin/beeline -u jdbc:hive2://ip:10000  -n root --color=true --silent=false"

  source ~/.bashrc即可,需要注意的是beeline使用了絕對路徑,因為我新生成的命令就叫beeline,為避免沖突,寫了絕對路徑,當然你可以改成其他命令

5,最后測試一下,敲出beeline命令即可進入到遠程hive的命令行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM