Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
Hive 没有专门的数据格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允许用户指定数据格式。
使用的虚拟机系统为CentOS 7 ,Hadoop集群为hadoop-2.7.7。
现在,来写Hive的安装配置,使用的Hive版本是hive-2.3.4,获取链接:http://hive.apache.org/downloads.html,
下载apache-hive-2.3.4-bin.tar.gz。
我的方法仍旧是,在Windows上下好,通过Xshell传到Hadoop用户中。
首先是解压
sudo tar -zxf apache-hive-2.3.4-bin.tar.gz -C /usr/local #解压hive到/usr/local下
cd /usr/local/
sudo mv apache-hive-2.3.4-bin hive # 将文件夹名改为hive
sudo chown -R hadoop:hadoop hive # 修改文件权限
配置环境变量
执行
vim ~/.bashrc
填写变量信息
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
执行
source ~/.bashrc #使变量生效
修改/usr/local/hive/conf
下的hive-site.xml
将hive-default.xml.template重命名为hive-default.xml;新建一个文件touch hive-site.xml
,并在hive-site.xml中粘贴如下配置信息:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://Master:9000/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hiveDB?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.Multithreaded</name>
<value>true</value>
</property>
</configuration>
下载mysql jdbc 包
我用的是mysql-connector-java-5.1.47.tar.gz
mysql-connector-java-5.1.47.tar.gz
tar -zxf mysql-connector-java-5.1.47.tar.gz #解压
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/local/hive/lib
#将mysql-connector-java-5.1.47-bin.jar拷贝到/usr/local/hive/lib目录下
安装并配置MySQL,链接: https://blog.csdn.net/FQAMBY/article/details/86565521
启动hive
启动hive之前,请先启动hadoop集群。
start-all.sh #启动hadoop
hive #启动hive
可能会有warning出现,不用管它。
至此,配置完成。
退出hive
exit;