一、什么是Hive
Hive是Hadop生态系统中必不可少的一个工具。 它可以将存储在HDES中的结构化数据映射为数据库中的一张表,并提供了一种SQL方言对其进行查询。 这些SQL语句最终会翻译成MapReduce程序执行。Hive的本质就是为了简化用户编写MapReduce程序而生成的一种框架,它本身并不会存储和计算数据,完全依赖于HDFS和MapReduce。
Hive提供了一个被成为Hive查询语言(简称HiveQ或HQL)的SQL方言,来查询存储在Hadoop集群中的数据。Hive降低了传统数据分析系统转移到Hadoop系统上的难度。凡是会使用SQL语言的开发人员都可以轻松的学会和使用Hive。如果没有Hive,那么这些人员就必须学习新的语言和工具,然后才能应用到新的生产环境中。不过,Hive 和其它基于SQL的环境(MySQL)还是有一些差异的。
1、Hive特点
Hive是基于Hadoop的应用程序,受限于Hadoop的设计,Hive不能提供完整的数据库功能。最大的限制就是Hive不支持行级别的更新、插入或者删除操作。同时,因为MapReduce任务的启动过程需要消耗较长的时间,所有Hive查询延迟比较严重。传统数据库中在秒级别可以完成的查询,在Hive中,即使数据集相对较小,往往也需要执行更长的时间。最后需要说明的是,Hive 不支持事务。
二、Hive的安装
Hive的运行依赖于Hadoop,所以安装Hive前需要安装好Hadoop。
Hive的基本安装配置包括以下步骤:
1、检查Hadoop环境 2、安装MySQL 3、安装Hive 4、配置Hive
1、检查hadoop环境
(1)查看Hadoop版本
代码如下:
hadoop version
(2)启动进程
当前目录是/home/hadoop 先切换目录cd /usr/local/hadoop 代码如下:
cd /usr/local/hadoop
启动进程并查看 代码如下:
./sbin/start-dfs.sh
./sbin/start-ysrn.sh
jps
2、安装MySQL
(1)安装MySQL
代码如下:
sudo apt-get install mysal-server
(2)查看账号密码
代码如下:
sudo cat /etc/mysql/debian.cnf
(3)使用默认账号登录MySQL数据库
代码如下:
mysql -u debian-sys-maint -p
(4)创建Hive账户
代码如下:
CREATE USER 'hive'@'%' IDENTIFIED BY '123456';
(5)授予Hive用户操纵数据库的权限
代码如下:
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';
FLUSH PRIVILEGES;
(6)退出MySQL数据库
代码如下:
exit
3、安装Hive
(1)上传HIve到/home/hadoop
(2)把Hive解压到/usr/local 中
代码如下:
sudo tar -xvf apache-hive-2.3.7-bin.tar.gz -C /usr/local
(3)进入/usr/local目录,将解压后的目录重命名为 hive
代码如下:
cd /usr/local
sudo mv apache-hive-2.3.7-bin hive
(4)修改hive的拥有者为hadoop
代码如下:
sudo chown -R hadoop hive
4、配置Hive
(1)进入hive配置文件目录
代码如下:
cd /usr/local/hive/conf
(2)创建hive-site.xml文件配置信息
代码如下:
vim hive-site.xml
配置内容如下: 需要在hive目录下创建tmp目录
<configuration>
<property>
<name>system:java.io.tmpdir</name>
<value>/usr/local/hive/tmp</value>
</property>
<property>
<name>system:user.name</name>
<value>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
</configuration>
(3)进入hive的依赖库目录
代码如下:
cd /usr/local/hive/lib
(4)上传mysql的驱动文件到lib目录
(5)进入hadoop软件的配置文件目录
代码如下:
cd /usr/local/hadoop/etc/hadoop
(6)编辑core-site.xml文件
代码如下:
vim core-site.xml
配置内容如下:
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
(7)进入Hadoop的家目录编辑环境变量文件
代码如下:
cd ~
vim .bashrc
(8)在环境变量文件中添加内容
添加内容如下:
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export PATH=${HIVE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
(9)刷新环境变量
代码如下:
source.bashrc
(10)初始化Hive
代码如下:
schematool -dbType mysql -initSchema
初始化成功
(11)查询Hive默认数据库列表,验证安装
代码如下:
hive -e 'show databases'
安装成功
hive文件:
https://pan.baidu.com/s/1iCjmb9hdhnnL1kI0VzaCxg
|