### 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介紹