首先 在hadoop集群的基础上部署 hive(这里hadoop集群和hive部署可以自己去搜索文章 很多)
hive要部署到hadoop的主机上
hive部署完成后要确保 hive能正常使用 并 hadoop集群机器做了 免密ssh登录
首先使用 scp 传输到你要做beeline的机器上
#/opt/module/hive 主机器的hive目录 换成你的
# a3 为你要传的机器名 如果你做了免密ssh就可以这样用 也可以用ip
#/opt/module 接收存放目录
scp -r /opt/module/hive root@a3:/opt/module
为了防止出现以下错误
Error: Could not open client transport with JDBC
Uri: jdbc:hive2://hadoop1:10000/default: Failed to open new session: java.lang.RuntimeException:
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User: root is not allowed to impersonate anonymous (state=08S01,code=0)
找到你hadoop的core-site.xml文件
vi /hadoop/etc/hadoop/core-site.xml
在你的配置下 添加
<configuration>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
#!!!!注意 外面如果没有<configuration></configuration> 要加上哦
#不然会出现想不到的错误
重启hadoop
集群
然后进入到 hive目录下
bin/beeline
如果弹出
Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path
找到 hive/conf文件cd到 conf下面
注意 我因为执行过
mv hive-env.sh.template hive-env.sh命令
所以我的是 hive-env.sh 如果你没有改名 那么你 就 vim hive-env.sh.template
vi也可以
vim hive-env.sh
然后使用 bin/beeline(要进入到hive目录下哦)
在使用!connect jdbc:hive2://远程服务器ip:10000/default
然后输入主机器的用户名 密码就可以
注意 这里如果一直一直一直没有反应
那么你需要去主服务器看一下 hiveserver2启动了没
hiveserver2启动非常非常非常慢 所以要等很长时间
后台启动并打印日志
nohup ./bin/hiveserver2>> hiveserver2.log 2>&1 &
查看服务是否启动
netstat -anp|grep 10000
如果出现就证明启动了
然后进入 hive目录下
cd /hive(这是我的路径)
运行
bin/beeline
再使用
!connect jdbc:hive2://远程服务器ip:10000/default
出现
证明连接成功