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

原文地址:https://www.cnblogs.com/zuizui1204/p/9999652.html