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的命令行