### Hive集成mysql数据库
默认情况下,Hive元数据保存在内嵌的Derby数据库中,只能允许一个会话连接。
实际生产环境不适用,为了支持多会话,需要一个独立的元数据库,使用MySQL。
> Hive内部对MySQL提供很好的支持。
先安装mysql,使用docker环境即可。
- 新建库,用来保存hive的元数据
```mysql
create database hive;
CREATE USER 'hadoop'@'%' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' WITH GRANT OPTION;
flush privileges;
```
### 修改hive-env.sh
```shell
export JAVA_HOME=/opt/tools/jdk1.8.0_131 ##Java路径
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0-cdh5.4.0 ##Hadoop安装路径
export HIVE_HOME=/opt/hadoop/apache-hive-2.1.1-bin ##Hive安装路径
export HIVE_CONF_DIR=/opt/hadoop/apache-hive-2.1.1-bin/conf ##Hive配置文件路径
```
### 在hdfs中创建下面的目录,并授权
```sh
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/log
```
### 修改hive-site.xml
- 将 hive-site.xml 文件中以下几个配置项的值设置成上一步中创建的几个路径。
```
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
```
- 需要在 hive-site.xml 文件中配置 MySQL 数据库连接信息
```sh
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
```
- 创建tmp文件
```sh
mkdir /home/hadoop/hive-2.1.1/tmp
```
### 初始化hive
schematool -dbType mysql -initSchema
### 参考
[hive2.1.1 部署安装](https://blog.csdn.net/u013310025/article/details/70306421)
[Hive安装与配置](http://www.cnblogs.com/kinginme/p/7233315.html)
### 创建表并导入数据
```sql
create table dep(id int, name string) row format delimited fields terminated by '\t'
load data local inpath '/home/hadoop/hivetestdata/people.txt' into table hive_test.dep;
```
[彻底弄清Hive安装过程中的几个疑问点](http://www.aboutyun.com/thread-10937-1-1.html)
- 在看的书和文章
- Java程序员手册
- 思维方式
- 面向服务
- Dubbo
- StringBoot
- 001.应用部署
- 002.注解学习
- SpringCloud
- SpringCloud入门
- Dbs
- 分布式
- Ffp
- 多线程
- 多线程小知识
- Java锁认识
- Netty
- Netty学习目录
- 读写事件流程分析与相关API
- 数据
- 大数据学习
- 学习目录
- Hadoop学习
- Hadoop组建安装
- ssh配置免密登陆
- Hadoop伪集群模式
- HBase伪集群模式
- Hive安装
- 常用操作命令
- 问题记录
- DOLIST
- 学习资料
- Spark
- 一些概念介绍
- 数据库
- Oracle相关
- 批量测试数据生成
- MySQL相关
- Redis
- 常用操作
- 机器学习
- 认识
- Kafka
- 监控
- 分布式相关
- RPC
- 中间件
- ElasticSearch
- ES环境搭建
- Python客户端创建索引
- Es的api常用操作
- SQL查询引擎
- Es数DB的数据同步
- ActiveMQ
- ActiveMQ介绍
- 分享
- Skyeye
- 组件安装配置
- Dubbo服务Demo应用部署
- Kafka安装配置
- RabbitMq配置
- Docker
- Docker学习文章
- Docker的大数据平台之路
- Docker环境搭建
- ubuntu16安装docker
- Docker镜像加速
- 使用Docker快速搭建中间件
- Docker环境使用mysql
- Docker环境的中间件搭建汇总
- Docker镜像容器管理
- Docker镜像创建
- Docker创建可用的系统容器
- Kubernetes
- etcd安装
- flanneld安装
- kubernetes环境安装
- kubernetes源码编译
- Linux相关
- Linux操作系统
- Deepin操作系统
- 新系统环境准备
- Linux系统小工具
- Linxu配置时间服务器同步
- DNS服务器dnsmasq
- Linux命令
- 常用命令
- 计算机基础
- README
- 数据结构
- 面试题总结
- 计算机组层原理
- 计算机组层原理
- 其它语言
- Python
- Python环境搭建
- Python学习总结
- Python语法学习
- Python模块学习
- MySQLdb
- scrapy
- Python的exception
- PythonNLP入门
- Go
- 工具组件
- Jenkins
- Jenkins认识
- Jenkins安装配置
- Jenkins插件使用
- Jenkins项目常用配置
- Git
- Git使用说明
- NLP
- 入门级别
- 一些概念
- faiss介绍
- WMD介绍