Hive学习之HiveServer2服务端配置与启动,允许远程连接
2017-11-09 09:38
387 查看
Hive有三种使用方式——CLI命令行,HWI(hie web interface)浏览器 以及 Thrift客户端连接方式。
1、hive 命令行模式
直接输入/hive/bin/hive的执行程序,或者输入 hive –service cli 用于linux平台命令行查询,查询语句基本跟MySQL查询语句类似
2、hive web界面的启动方式
hive –service hwi 用于通过浏览器来访问hive
如果lib目录下没有hive-hwi-{version}.war包,我们要自己打包
官网下载源码包(比如1.10版本)
解压
再进入 hwi 目录,打包 war 文件(注意命令末尾有一个点.)
打包完成后,有了我们需要的 war 文件,再复制到 $HIVE_HOME/lib 目录下
另外我们还需要拷贝一个 Java 的 tools.jar 到 $HIVE_HOME/lib 目录下
否则会出现类似于下面的错误(因为 JAVA_HOME 指到$JAVA_HOME/jre 下了,而其 lib下的 tools.jar 跟$JAVA_HOME/lib/tools.jar 不一样,编译的时候需要用到后者)
最后我们修改hive-site.xml文件
![](https://img-blog.csdn.net/20171109094449445?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzMxMDExOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
启动hwi,命令为: ./hive --service hwi
如果启动没有报错,可以访问http://localhost:9999/hwi
3、jdbc远程连接hiveserver2
在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift
server,而HiveServer2却不会。既然已经存在HiveServer为什么还需要HiveServer2呢?这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供了更好的支持。
hive-site.xml的配置。因为我这里没有配置连接hive的用户名和密码,所以在我的java代码连接Hive时,不用输入用户名和密码。
先启动元数据库,在命令行中键入:hive --service metastore &
接下来开启hiveserver2服务:
在命令行中键入:hive --service hiveserver2 &
注意查看日志是否报错。
![](https://img-blog.csdn.net/20171109094132400?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzMxMDExOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1、hive 命令行模式
直接输入/hive/bin/hive的执行程序,或者输入 hive –service cli 用于linux平台命令行查询,查询语句基本跟MySQL查询语句类似
2、hive web界面的启动方式
hive –service hwi 用于通过浏览器来访问hive
如果lib目录下没有hive-hwi-{version}.war包,我们要自己打包
官网下载源码包(比如1.10版本)
解压
$ tar zxvf apache-hive-1.1.0.src.tar.gz
再进入 hwi 目录,打包 war 文件(注意命令末尾有一个点.)
#cd apache-hive-1.1.0-src/hwi #jar cvfM0 hive-hwi-1.1.0.war -C web/ .
打包完成后,有了我们需要的 war 文件,再复制到 $HIVE_HOME/lib 目录下
#cp hive-hwi-1.1.0.war /usr/local/hive-1.1.0/lib
另外我们还需要拷贝一个 Java 的 tools.jar 到 $HIVE_HOME/lib 目录下
cp /usr/local/jdk1.7.0_67/lib/tools.jar /usr/local/hive-1.1.0/lib
否则会出现类似于下面的错误(因为 JAVA_HOME 指到$JAVA_HOME/jre 下了,而其 lib下的 tools.jar 跟$JAVA_HOME/lib/tools.jar 不一样,编译的时候需要用到后者)
最后我们修改hive-site.xml文件
启动hwi,命令为: ./hive --service hwi
如果启动没有报错,可以访问http://localhost:9999/hwi
3、jdbc远程连接hiveserver2
在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift
server,而HiveServer2却不会。既然已经存在HiveServer为什么还需要HiveServer2呢?这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供了更好的支持。
hive-site.xml的配置。因为我这里没有配置连接hive的用户名和密码,所以在我的java代码连接Hive时,不用输入用户名和密码。
先启动元数据库,在命令行中键入:hive --service metastore &
接下来开启hiveserver2服务:
在命令行中键入:hive --service hiveserver2 &
注意查看日志是否报错。
相关文章推荐
- hadoop学习之HIVE(3.2):hadoop2.7.2下配置hiveserver2启动远程连接
- Hive学习之HiveServer2服务端配置与启动
- Hive学习之HiveServer2服务端配置与启动
- Hive学习之HiveServer2服务端配置与启动
- EntityFramework.SqlServer.dll 中发生 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
- 如何配置 SQL Server 2005 以允许远程连接
- 【Vegas原创】如何配置 SQL Server 2005 以允许远程连接
- 如何配置 SQL Server 2005 以允许远程连接
- 如何配置 SQL Server 2005 以允许远程连接
- 如何配置 SQL Server 2005 以允许远程连接
- 如何配置 SQL Server 2005 以允许远程连接
- 如何配置 SQL Server 2005 以允许远程连接
- windows 2003 server远程桌面连接,”终端服务器超出了最大允许连接数“的解决办法以及无限时保持连接会话数据的方法
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 -
- 配置sql server 2005以允许远程连接
- 如何配置 SQL Server 2005 以允许远程连接 (转)
- 如何配置 SQL Server 2005 以允许远程连接
- 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- 如何配置 SQL Server 2005 以允许远程连接
- HSQLDB学习心得(1)-关于SERVER模式下多个数据库的启动问题与数据库连接