1. Hive的简介
- Hive是建立在hdfs上的数据仓库
- 披着mapreduce外衣的工具(查询引擎)
- 允许不熟悉mapreduce开发的人员可以借助hive来分析存储在hdfs中的海量数据
- hadoop的客户端工具,不一定非得部署在集群中
- 创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据
2. Hive到底是什么?
- 查询引擎 :把hql(类sql语句)转换成mr作业在hadoop中去执行
- 数据仓库: 底层的存储是基于hdfs的
3. ETL
数据的提取 转换 加载
4. OLTP与OLAP
- OLTP
- 离线事务处理(mysql…)
- OLAP
- 离线分析处理(hive)
5. Hive的安装
5.1 安装mysql
- 存储hive的元信息(metastore)
5.2 安装hive
5.2.1 准备安装包
apache-hive-2.1.0-bin.tar.gz
5.2.2 解压hive
[root@mini01 /soft]
tar -zxvf apache-hive-2.1.0-bin.tar.gz -C /opt/
5.2.3 重命名
[root@mini01 /opt]
mv apache-hive-2.1.0-bin hive
5.2.4 配置环境变量
#配置hive的环境变量
export HIVE_HOME=/opt/hive
export PATH=$PATH:$HIVE_HOME/bin
5.2.5 使环境变量立刻生效
source /etc/profile
5.2.6 配置hive
- 重命名模板配置文件
[root@mini01 /opt/hive/conf/]
mv hive-env.sh.template hive-env.sh
mv hive-default.xml.template hive-site.xml
mv hive-log4j2.properties.template hive-log4j.properties
- vim /opt/hive/conf/hive-env.sh 在后面追加下面配置
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/opt/hadoop
export HIVE_HOME=/opt/hive
- vim /opt/hive/conf/hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mini05:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/opt/hive/tmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/opt/hive/tmp</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/opt/hive/tmp</value>
</property>
<!--默认为false,开发环境建议使用true,生产环境建议使用false-->
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
<description>Let Hive determine whether to run in local mode automatically</description>
</property>
-
把mysql驱动放在soft下
-
将mysql-connector-java-5.1.39.jar拷贝到$HIVE_HOME/lib/目录下
cp mysql-connector-java-5.1.39.jar /opt/hive/lib/
- 查找是否拷贝成功
find .|grep mysql
- 在mysql中格式化hive的元数据
schematool -initSchema -dbType mysql
- hive的启动
hive
-
错误解决
Terminal initialization failed; falling back to unsupported
将/export/servers/hive/lib 里面的jline2.12替换了hadoop 中/export/servers/hadoop/hadoop-2.6.1/share/hadoop/yarn/lib/jline-0.09.jar*
启动hive时必须保证hadoop集群是启动的