hive2.1.1安装部署

一、Hive 运行模式

 

与 Hadoop 类似,Hive 也有 3 种运行模式:

1. 内嵌模式

将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

2. 本地模式

这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

3. 远程模式

此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。

二、下载安装 Hive

 

http://hive.apache.org/downloads.html

tar -xzvf apache-hive-2.1.1-bin.tar.gz    ##解压

三、配置系统环境变量
修改 /etc/profile 文件  vi /etc/profile 来修改(root用户操作):
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. 设置 Hive环境变量  
  2. # Hive environment  
  3. export HIVE_HOME=/home/hadoop/cloud/apache-hive-2.1.1-bin  
  4. export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH  
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. 使环境变量生效:  
  2. source /etc/profile  


四、内嵌模式

(1)修改 Hive 配置文件

$HIVE_HOME/conf 对应的是 Hive 的配置文件路径,类似于之前学习的Hbase, 该路径下的 hive-site.xml 是 Hive 工程的配置文件。默认情况下,该文件并不存在,我们需要拷贝它的模版来实现:

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. 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 文件(请根据自己的实际路径修改),该文件默认也不存在,同样是拷贝它的模版来修改:
cp hive-env.sh.template  hive-env.sh
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. # Set HADOOP_HOME to point to a specific hadoop install directory  
  2. HADOOP_HOME=/home/hadoop/cloud/hadoop-2.7.3  
  3.   
  4. # Hive Configuration Directory can be controlled by:  
  5. export HIVE_CONF_DIR=/home/hadoop/cloud/apache-hive-2.1.1-bin/conf  
  6.   
  7. # Folder containing extra ibraries required for hive compilation/execution can be controlled by:  
  8. export HIVE_AUX_JARS_PATH=/home/hadoop/cloud/apache-hive-2.1.1-bin/lib  

(2)创建必要目录


前面我们看到 hive-site.xml 文件中有两个重要的路径,切换到 hadoop 用户下查看 HDFS 是否有这些路径:
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. hadoop fs -ls /  
没有发现上面提到的路径,因此我们需要自己新建这些目录,并且给它们赋予用户写(W)权限。
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse  
  2. $HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp/hive/  
  3. hadoop fs -chmod 777 /user/hive/warehouse  
  4. hadoop fs -chmod 777 /tmp/hive  

检查是否新建成功 hadoop fs -ls / 以及 hadoop fs -ls /user/hive/ :

(3)修改 io.tmpdir 路径

同时,要修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value 即路径(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello , 再回车即可),你可以自己新建一个目录来替换它,例如 /home/Hadoop/cloud/apache-hive-2.1.1-bin/iotmp

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. mkdir /home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp  
  2. chmod 777 /home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp  
  3. 把hive-site.xml 中所有包含 ${system:Java.io.tmpdir}替换成/home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp  
全局替换命令 先按Esc键  再同时按shift+:把以下替换命令粘贴按回车即可全局替换
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. %s#${system:java.io.tmpdir}#/home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp#g  

(4)运行 Hive
[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. ./bin/hive  
报错

解决办法:./bin/schematool -initSchema -dbType derby

报错

解决方法:删除/home/hadoop/cloud/apache-hive-2.1.1-bin目录下 rm -rf metastore_db/ 在初始化:./bin/schematool -initSchema -dbType derby
重新运行

./bin/hive

报错

/tem/hive 没写的权限

 

Hive本身自带一个数据库,但是有弊端,hive本身数据库,每次只允许一个用户登录

mysql安装:http://blog.csdn.net/u014695188/article/details/51532410

 

设置mysql关联hive

修改配置文件

### 创建hive-site.xml文件 
在hive/conf/目录下创建hive-site.xml文件

 

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3. <configuration>  
  4.    <property>  
  5.         <name>javax.jdo.option.ConnectionURL</name>  
  6.         <value>jdbc:mysql://192.168.169.134:3306/hive?createDatabaseIfNotExist=true</value>  
  7.     </property>  
  8.     <property>  
  9.         <name>javax.jdo.option.ConnectionDriverName</name>  
  10.         <value>com.mysql.jdbc.Driver</value>  
  11.     </property>  
  12.     <property>  
  13.         <name>javax.jdo.option.ConnectionUserName</name>  
  14.         <value>root</value>  
  15.     </property>  
  16.     <property>  
  17.         <name>javax.jdo.option.ConnectionPassword</name>  
  18.         <value>123456</value>  
  19.     </property>  
  20.     <property>    
  21.    <name>hive.metastore.schema.verification</name>    
  22.    <value>false</value>    
  23.     <description>    
  24.     Enforce metastore schema version consistency.    
  25.     True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic    
  26.           schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures    
  27.           proper metastore schema migration. (Default)    
  28.     False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.    
  29.     </description>    
  30.  </property>   
  31. </configuration>  

报错:Caused by: MetaException(message:Version information not found in metastore. )

 

解决:hive-site.xml加入

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. <property>    
  2.    <name>hive.metastore.schema.verification</name>    
  3.    <value>false</value>    
  4.     <description>    
  5.     Enforce metastore schema version consistency.    
  6.     True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic    
  7.           schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures    
  8.           proper metastore schema migration. (Default)    
  9.     False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.    
  10.     </description>    
  11.  </property>   



 

报错:缺少mysql jar包

解决:将其(如mysql-connector-Java-5.1.15-bin.jar)拷贝到$HIVE_HOME/lib下即可。

报错:

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized.   
  2.     Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed,   
  3.     don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)  

解决:

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. #数据库的初始化。  
  2.      bin/schematool -initSchema -dbType mysql  

启动:

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. bin/hive  


启动后mysql 多了hive 数据库

 

 

测试

 

创建数据库

create database db_hive_test;
 

创建测试表

 

use db_hive_test;

create table student(id int,name string) row format delimited fields terminated by '\t';



 

加载数据到表中

 

新建student.txt 文件写入数据(id,name 按tab键分隔)

vi student.txt

 

[html]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. 1001    zhangsan  
  2. 1002    lisi  
  3. 1003    wangwu  
  4. 1004    zhaoli  

load data local inpath '/home/hadoop/student.txt' into table  db_hive_test.student

 

 

查询表信息

select * from student;

 

 

查看表的详细信息

desc formatted student;

 

通过ui页面查看创建的数据位置

http://192.168.169.132:50070/explorer.html#/user/hive/warehouse/db_hive_test.db

通过Mysql查看创建的表

 

查看hive的函数 

show functions;

查看函数详细信息 

desc function sum; 
desc function extended

转载于:https://www.cnblogs.com/hmy-blog/p/6506417.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Apache Hive是一个开源的数据仓库基础设施,可以通过使用SQL来查询和分析大规模的数据集。apache-hive-2.1.1-bin.tar.gz是Hive2.1.1版本的二进制安装包。这个安装包包含了Hive运行所需的所有文件。 在安装Hive之前,我们需要确保已经安装Java Development Kit (JDK),因为Hive是在Java环境下运行的。然后,我们可以通过以下步骤来安装apache-hive-2.1.1-bin.tar.gz: 1. 首先,我们需要下载apache-hive-2.1.1-bin.tar.gz文件。我们可以从Apache Hive官方网站下载这个文件。 2. 下载完成后,我们需要将下载的文件解压缩。可以使用以下命令进行解压缩:tar -zxvf apache-hive-2.1.1-bin.tar.gz 3. 解压缩完成后,我们需要配置Hive的环境变量。我们可以打开.bashrc或.bash_profile文件,并添加以下配置行: export HIVE_HOME=/path/to/hive export PATH=$PATH:$HIVE_HOME/bin 请将上述配置行中的"/path/to/hive"替换为您解压缩Hive的路径。 4. 保存文件,然后加载这些配置。我们可以使用以下命令加载.bashrc文件:source ~/.bashrc 5. 现在,我们可以启动Hive了。使用以下命令启动:hive 这将启动Hive的命令行界面,我们可以在其中执行Hive的SQL查询和操作。 这就是安装apache-hive-2.1.1-bin.tar.gz的基本步骤。安装完成后,您可以开始使用Hive来查询和分析大规模的数据集。希望这个回答能对您有帮助! ### 回答2: Apache Hive是一个基于Hadoop的数据仓库解决方案,它可以提供结构化查询语言(SQL),以便从大规模分布式数据集中检索和分析数据。hive-2.1.1-bin.tar.gz是Hive的一个版本,其中的bin表示该文件包含了Hive的可执行脚本和二进制文件。 在解压和安装这个tar.gz文件之后,我们可以通过运行Hive的命令行界面来开始使用HiveHive提供了类似于SQL的查询语言,称为HiveQL,它允许用户使用SQL语句来查询和分析存储在Hadoop集群上的数据。 Hive可以处理各种类型的数据,包括结构化数据、半结构化数据和非结构化数据。它允许用户定义表结构,将数据导入表中,并执行类SQL查询来处理这些表。Hive使用Hadoop的MapReduce框架来执行查询,因此具有良好的可扩展性和容错性。 除了基本的查询功能外,Hive还支持用户自定义函数(UDFs),以便根据特定需求编写自定义的函数,并将其应用于查询中。此外,Hive还支持分区和分桶的概念,以改进查询性能。 通过使用Hive,用户可以利用Hadoop集群的强大计算能力和存储能力来处理大规模数据集。它提供了一种简化和抽象化的方式来处理和查询大数据,对于那些熟悉SQL语法的用户来说,学习和使用Hive相对容易。 总之,apache-hive-2.1.1-bin.tar.gz是Apache Hive的一个版本,它提供了一个基于Hadoop的数据仓库解决方案,可以通过HiveQL语言来查询和分析大规模分布式数据集。 ### 回答3: apache-hive-2.1.1-bin.tar.gz 是Apache Hive项目的二进制压缩文件。Apache Hive是一个基于Hadoop的数据仓库基础架构工具,用于提供数据的存储、查询和分析。通过Hive,用户可以使用类SQL语言在Hadoop集群中执行数据查询,并将查询结果转换为MapReduce任务进行处理。 Apache Hive提供了一个类似于关系型数据库的查询语言,称为HiveQL,它使用了SQL语法来查询和操作存储在Hadoop HDFS或Hive表中的数据。HiveHiveQL查询转换为MapReduce任务或Tez DAG(有向无环图)任务,让用户可以轻松地利用Hadoop集群的并行处理能力进行大规模数据处理。 通过Apache Hive,用户可以在不需要掌握复杂的MapReduce编程技术的情况下,利用简单的SQL语法进行数据分析和挖掘。用户可以创建Hive表,将数据加载到表中,并使用HiveQL进行查询和处理。此外,Hive还提供了用户定义函数(UDF)、用户定义聚合函数(UDAF)和用户定义转换函数(UDTF)的能力,让用户可以按照自己的需求扩展和定制Hive的功能。 apache-hive-2.1.1-bin.tar.gz是Hive 2.1.1版本的二进制分发文件。用户可以下载并解压此文件,即可在本地环境中部署和运行Apache HiveHive还有其他版本和分发文件可供选择,用户可以根据自己的需求选择适合的版本进行使用。对于想要在Hadoop集群中快速搭建和使用数据仓库工具的用户,Apache Hive提供了一个强大而灵活的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值