- 浏览: 124859 次
- 性别:
- 来自: 吉林
文章分类
- 全部博客 (118)
- oracle数据库 (5)
- Web前端 (3)
- java后台 (6)
- Java虚拟机 (3)
- 大数据 (1)
- Java (27)
- 微信公众号 (1)
- ssh框架 (2)
- Java,eclipse (1)
- Hibernate (4)
- SSH (4)
- asp.net (1)
- XML,JSON (1)
- junit (1)
- SpringMVC (2)
- XML (2)
- JSON (2)
- HTTP AJAX POST请求 (2)
- request payload (1)
- form data (1)
- Content Type (1)
- Spring RESTful (1)
- RESTful (2)
- Git (2)
- 企业软件版本管理工具 (1)
- HIVE,HADOOP (1)
- Hadoop (1)
- Dobbo (1)
- 缓存(cache) (1)
- 服务器端,客户端 (1)
- Cookie (1)
- Session (1)
- MySQL索引 (1)
- 乐观锁,悲观锁 (1)
- 电子商务 (1)
- 面试部分 (1)
- 分布式事务处理 (1)
- java详解 (1)
- commons (1)
- NoClassDefFoundErrorLogFactory (1)
- Spring (1)
- tomcat (3)
- Ubuntu (1)
- 虚拟机 (1)
- Intel Virtual Technology (1)
- SVN (4)
- Taglib (5)
- java unsigned类型 (1)
- fmt (1)
- HMAC (1)
- linux (13)
- mysql (2)
- FTP (4)
- Maven (5)
- spring boot (6)
- myeclipse (1)
- web (1)
- Https (2)
- ssl (3)
- crt (1)
- cer (1)
- byte (1)
- 字符占字节 (1)
- 限制IP远程登录 (1)
- 禁止某些 IP 访问 (1)
- iptables (1)
- linux私钥登陆 (1)
- windows (1)
- openSSH (2)
- 大牛博客地址 (1)
- Maven常见异常 (1)
- shell命令 (1)
- WebWork2,Spring MVC (1)
- LinuxSS (0)
- Bitvise SSH Client (1)
- -bash-4.1$ (1)
- Centos7 (1)
- MQTT (5)
- Mosquitto (3)
- Mosquittos (0)
- HAProxy (1)
- 集群 (0)
- 负载均衡 (1)
- moqutte (1)
- 多线程 (1)
- Queue (1)
- BlockingQueue (1)
- ConcurrentLinkedQueue (1)
- erlang (1)
- jersey (1)
最新评论
(转自)http://blog.csdn.net/zhongguozhichuang/article/details/52702476
主要对Hive 安装配置进行介绍。
二、Hive 运行模式
与 Hadoop 类似,Hive 也有 3 种运行模式:
1. 内嵌模式
将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。
2. 本地模式
这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。
3. 远程模式
此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。
三、下载安装 Hive
上节课程我们已经了解到,Hive 是基于 Hadoop 文件系统之上的数据仓库。因此,安装Hive之前必须确保 Hadoop 已经成功安装。(本次实验环境,已经为大家安装好了 Hadoop.)
本次实验,使用Hive V1.1.0版本。Hive V1.1.0 可以在 Hadoop V1.0.0 以上环境中工作。终端下输入命令来下载:
下载完成后解压:
$ tar zxvf apache-hive-1.1.0-bin.tar.gz
解压出来的文件名很长,在终端下输入很麻烦,为了后面实验的方便,建议修改为较短文件名,例如:
$ mv apache-hive-1.1.0-bin hive
四、配置系统环境变量
修改 /etc/profile 文件,使用 sudo vim /etc/profile 来修改:
# Hive environment
export HIVE_HOME=/usr/local/hadoop/hive
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH
五、内嵌模式
(1)修改 Hive 配置文件
$HIVE_HOME/conf 对应的是 Hive 的配置文件路径,类似于之前学习的HBase, 该路径下的 hive-site.xml 是 Hive 工程的配置文件。默认情况下,该文件并不存在,我们需要拷贝它的模版来实现:
$ cp hive-default.xml.template hive-site.xml
hive-site.xml 的主要配置有:
hive.metastore.warehouse.dir
该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。
hive.exec.scratchdir
该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。
同时我们还要修改 Hive 目录下 /conf/hive-env.sh 文件(请根据自己的实际路径修改),该文件默认也不存在,同样是拷贝它的模版来修改:
export HADOOP_HEAPSIZE=1024
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib
(2)创建必要目录
前面我们看到 hive-site.xml 文件中有两个重要的路径,切换到 hadoop 用户下查看 HDFS 是否有这些路径:
$ hadoop dfs -ls /
没有发现上面提到的路径,因此我们需要自己新建这些目录,并且给它们赋予用户写(W)权限。
$ hadoop dfs -mkdir /user/hive/warehouse
$ hadoop dfs -mkdir /tmp/hive
$ hadoop dfs -chmod 777 /user/hive/warehouse
$ hadoop dfs -chmod 777 /tmp/hive
如果你遇到 no such file or directory 类似的错误,就一步一步新建目录,例如:
$ hadoop dfs -mkdir /tmp
$ hadoop dfs -mkdir /tmp/hive
检查是否新建成功 hadoop dfs -ls / 以及 hadoop dfs -ls /user/hive/ :
(3)修改 io.tmpdir 路径
同时,要修改 hive-site.xml 中所有包含 ${system:Java.io.tmpdir} 字段的 value 即路径(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello , 再回车即可),你可以自己新建一个目录来替换它,例如 /home/hive/iotmp . 同样注意修改写权限。如果不修改这个,你很可能会出现如下错误
(4)运行 Hive
./hive
报错
.解决方法:/schematool -initSchema -dbType derby
报错
解决方法:rm -rf metastore_db/ 在初始化
前面我们已经提到过,内嵌模式使用默认配置和 Derby 数据库,所以无需其它特别修改,先 ./start-all.sh 启动 Hadoop, 然后直接运行 hive:
报错
解决方法:
create table test_table(id INT, username string);
show tables;
六、远程模式
1.下载Hive
http://apache.mirrors.ionfish.org/hive/
配置
vim hive-site.xml
2.启动metastore
[hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin
[hadoop@hftclclw0001 bin]$ ./hive --service metastore &
[hadoop@hftclclw0001 bin]$ ps ax|grep metastore
...
...
在debug模式下开启metastore :
执行hive --service metastore -hiveconf hive.root.logger=DEBUG,console
3.启动HiveServer2
[hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin
[hadoop@hftclclw0001 bin]$ ./hive --service hiveserver2 &
[hadoop@hftclclw0001 bin]$ ps ax|grep HiveServer2
...
.
4.启动客户端
./hive -- service cli
5.启动shell 或是 beeline
beeline -u jdbc:hive2://master:10000
七、Java客户端
1.默认用户名和密码为空
2.默认端口10000,如果连不上须关闭防火墙
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
service iptables restart
错误
org.apache.hive.service.cli.HiveSQLException: 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
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:264)
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:255)
at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:593)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:172)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.car.test.HiveJdbcCli.getConn(HiveJdbcCli.java:156)
at com.car.test.HiveJdbcCli.main(HiveJdbcCli.java:35)
解决方法:
修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
重启hadoop
测试:./beeline -u 'jdbc:hive2://localhost:10000/userdb' -n username(替换为上述的用户名部分)
错误
java.sql.SQLException: org.apache.thrift.transport.TTransportException: SASL authentication not complete
at org.apache.hive.jdbc.HiveStatement.closeClientOperation(HiveStatement.java:211)
at org.apache.hive.jdbc.HiveStatement.close(HiveStatement.java:228)
at com.car.test.HiveJdbcCli.main(HiveJdbcCli.java:74)
Caused by: org.apache.thrift.transport.TTransportException: SASL authentication not complete
解决办法:
This is because the thrift server is expecting to authenticate via SASL when you open your transport connection. Hive Server 2 defaults to using SASL - unfortunately, PHP lacks a version of TSaslClientTransport (which is used as a wrapper around another TTransport object) which handles the SASL negotiation when you open your transport connection.
The easiest solution for now is to set the following property in your hive-site.xml
<property><name>hive.server2.authentication</name><value>NOSASL</value></property>
主要对Hive 安装配置进行介绍。
二、Hive 运行模式
与 Hadoop 类似,Hive 也有 3 种运行模式:
1. 内嵌模式
将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。
2. 本地模式
这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。
3. 远程模式
此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。
三、下载安装 Hive
上节课程我们已经了解到,Hive 是基于 Hadoop 文件系统之上的数据仓库。因此,安装Hive之前必须确保 Hadoop 已经成功安装。(本次实验环境,已经为大家安装好了 Hadoop.)
本次实验,使用Hive V1.1.0版本。Hive V1.1.0 可以在 Hadoop V1.0.0 以上环境中工作。终端下输入命令来下载:
$ wget http://labfile.oss.aliyuncs.com/apache-hive-1.1.0-bin.tar.gz
下载完成后解压:
$ tar zxvf apache-hive-1.1.0-bin.tar.gz
解压出来的文件名很长,在终端下输入很麻烦,为了后面实验的方便,建议修改为较短文件名,例如:
$ mv apache-hive-1.1.0-bin hive
四、配置系统环境变量
修改 /etc/profile 文件,使用 sudo vim /etc/profile 来修改:
# Hive environment
export HIVE_HOME=/usr/local/hadoop/hive
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH
五、内嵌模式
(1)修改 Hive 配置文件
$HIVE_HOME/conf 对应的是 Hive 的配置文件路径,类似于之前学习的HBase, 该路径下的 hive-site.xml 是 Hive 工程的配置文件。默认情况下,该文件并不存在,我们需要拷贝它的模版来实现:
$ cp hive-default.xml.template hive-site.xml
hive-site.xml 的主要配置有:
hive.metastore.warehouse.dir
该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。
hive.exec.scratchdir
该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。
同时我们还要修改 Hive 目录下 /conf/hive-env.sh 文件(请根据自己的实际路径修改),该文件默认也不存在,同样是拷贝它的模版来修改:
export HADOOP_HEAPSIZE=1024
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib
(2)创建必要目录
前面我们看到 hive-site.xml 文件中有两个重要的路径,切换到 hadoop 用户下查看 HDFS 是否有这些路径:
$ hadoop dfs -ls /
没有发现上面提到的路径,因此我们需要自己新建这些目录,并且给它们赋予用户写(W)权限。
$ hadoop dfs -mkdir /user/hive/warehouse
$ hadoop dfs -mkdir /tmp/hive
$ hadoop dfs -chmod 777 /user/hive/warehouse
$ hadoop dfs -chmod 777 /tmp/hive
如果你遇到 no such file or directory 类似的错误,就一步一步新建目录,例如:
$ hadoop dfs -mkdir /tmp
$ hadoop dfs -mkdir /tmp/hive
检查是否新建成功 hadoop dfs -ls / 以及 hadoop dfs -ls /user/hive/ :
(3)修改 io.tmpdir 路径
同时,要修改 hive-site.xml 中所有包含 ${system:Java.io.tmpdir} 字段的 value 即路径(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello , 再回车即可),你可以自己新建一个目录来替换它,例如 /home/hive/iotmp . 同样注意修改写权限。如果不修改这个,你很可能会出现如下错误
(4)运行 Hive
./hive
报错
.解决方法:/schematool -initSchema -dbType derby
报错
解决方法:rm -rf metastore_db/ 在初始化
前面我们已经提到过,内嵌模式使用默认配置和 Derby 数据库,所以无需其它特别修改,先 ./start-all.sh 启动 Hadoop, 然后直接运行 hive:
报错
解决方法:
create table test_table(id INT, username string);
show tables;
六、远程模式
1.下载Hive
http://apache.mirrors.ionfish.org/hive/
配置
vim hive-site.xml
<?xml version="1.0"?> <configuration> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://{ip:port}/{databases}</value> => mysql服务的ip和端口号 </property> <property> <name>javax.jdo.option.ConnectionDriveName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>{username}</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>{password}</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value> =>hive的仓库目录,需要在HDFS上创建,并修改权限 </property> </configuration> ...
2.启动metastore
[hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin
[hadoop@hftclclw0001 bin]$ ./hive --service metastore &
[hadoop@hftclclw0001 bin]$ ps ax|grep metastore
...
...
在debug模式下开启metastore :
执行hive --service metastore -hiveconf hive.root.logger=DEBUG,console
3.启动HiveServer2
[hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin
[hadoop@hftclclw0001 bin]$ ./hive --service hiveserver2 &
[hadoop@hftclclw0001 bin]$ ps ax|grep HiveServer2
...
.
4.启动客户端
./hive -- service cli
5.启动shell 或是 beeline
beeline -u jdbc:hive2://master:10000
七、Java客户端
1.默认用户名和密码为空
2.默认端口10000,如果连不上须关闭防火墙
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
service iptables restart
错误
org.apache.hive.service.cli.HiveSQLException: 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
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:264)
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:255)
at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:593)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:172)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.car.test.HiveJdbcCli.getConn(HiveJdbcCli.java:156)
at com.car.test.HiveJdbcCli.main(HiveJdbcCli.java:35)
解决方法:
修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
重启hadoop
测试:./beeline -u 'jdbc:hive2://localhost:10000/userdb' -n username(替换为上述的用户名部分)
错误
java.sql.SQLException: org.apache.thrift.transport.TTransportException: SASL authentication not complete
at org.apache.hive.jdbc.HiveStatement.closeClientOperation(HiveStatement.java:211)
at org.apache.hive.jdbc.HiveStatement.close(HiveStatement.java:228)
at com.car.test.HiveJdbcCli.main(HiveJdbcCli.java:74)
Caused by: org.apache.thrift.transport.TTransportException: SASL authentication not complete
解决办法:
This is because the thrift server is expecting to authenticate via SASL when you open your transport connection. Hive Server 2 defaults to using SASL - unfortunately, PHP lacks a version of TSaslClientTransport (which is used as a wrapper around another TTransport object) which handles the SASL negotiation when you open your transport connection.
The easiest solution for now is to set the following property in your hive-site.xml
<property><name>hive.server2.authentication</name><value>NOSASL</value></property>
相关推荐
基于hadoop,进行hive客户端安装与使用
HIVE安装及详解,及测试,该文档版本是1.2+的。。。。。
hive的安装其实有两部分组成,一个是Server端、一个是客户端,所谓服务端其实就是Hive管理Meta的那个Hive,服务端可以装在任何节点上,当hive服务并发量不高时推荐部署在数据节点上,并发量高时推荐单独部署在若干台...
hive安装
Client 是Hive的客户端,用户连接至 Hive Server。在启动 Client 模式的时候,需要指出Hive Server所在节点,并且在该节点启动 Hive Server。 WUI 是通过浏览器访问 Hive。今天我们来谈谈怎么通过HiveServer来操作...
这是安装hive的手册指南,安装hive服务端和hive客户端的详细步骤。
Hive安装部署及运维使用
Hadoop-2.8.0-HA-Hive安装部署与HQL06.hive的安装和基本使用.mp4
3.集群能正常运行的条件是集群可节点宕机数应保证有超过集群机器总数一半的机器在运行,因此从经济和实用性来说,集群的节点一般是奇数个,本文部署4台机器,其容灾能力与部署3台机器一致,即只能宕机1台
Hadoop-2.8.0-HA-Hive安装部署与HQL07.hive.mp4
大数据技术基础实验报告-Hive安装配置与应用
Hadoop-2.8.0-HA-Hive安装部署与HQL04.hive的基本功能机制和概念.mp4
Hadoop-2.8.0-HA-Hive安装部署与HQL05.mysql的安装详细步骤.mp4
Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4
Hadoop-2.8.0-HA-Hive安装部署与HQL08.hive的脚本化运行使用方式.mp4
Hadoop-2.8.0-HA-Hive安装部署与HQL09.hive的基本语法--建表语法.mp4
Hadoop-2.8.0-HA-Hive安装部署与HQL11.hive的基本语法--CTAS建表.mp4
java根据excel生成 hive建表语句 可以根据自己的格式修改
Hadoop-2.8.0-Day07-HA-Hive安装部署与HQL-课件与资料.zip
Hadoop-2.8.0-HA-Hive安装部署与HQL12.hive的基本语法--数据导入--从本地--从hdfs.mp4