beeline vs hive cli
近期,大数据开发环境升级为cloudera 5.3. 配套的hive版本升级为0.13.1.可以使用心仪已久的分析开窗函数了。但在使用的过程中发现一些问题,仅记于此。
1.在使用hive命令的时候,发现自动跳转至beeline客户端,并且提示hive cli已经过期,推荐使用beeline.
然后提示你输入jdbc url.
2.通过hadoop version 找到hive的home,发现有一个hive-old 的文件,通过检查测试发现这就是原来hive cli的文件。
3.简单测试beeline的使用,发现cloudera的发行版的beeline在运行load data local inpath的时候总是提示找不到文件的错误,
去其官方论坛上发现有人遇到过这个问题,而且尚未解决,但是支持hdfs的全路径。
我们在项目中使用了类似 hive –e ‘load data local inpath’ 和 hive –f 之类的
因为我们这边的hadoop使用的是kerbos认证,所以需要在jdbc的url中接入principal。
hive cli 之于hive 就相当于sql plus之于oracle. 需要和server安装在一起。
而beeline只需要一个jdbc jar包就可以了,可以不需要与hive server 2装在一台server.
他们认证的方式也不同,hive cli可以直接访问hdfs和hive meta store,感觉更稳定快捷一些。
而beeline 则需要把请求提交到hive server2,通过安全验证,然后在队列中等待。
beeline的并发性和安全性得到了提高。