hive
一、認知
數據庫與數據倉庫
數據庫
mysql,oracle,sqlserver,DB2,sqlite,MDB
數據倉庫
hive
是MR的客戶端,不必要每臺機器都安裝部署
特性
1、hive操作接口是採用SQL語法的,HQL
2、避免了寫MapReduce的繁瑣過程
體系結構
1、client
終端命令行
JDBC,不常用,很麻煩
2、matastore
原本的數據集和字段名稱以及數據信息之間的雙射關係
我們目前是存在mysql中
3、serverce---hadoop
在操作hive之前,需要將hadoop的HDFS開啓,YARN開啓,MAPRED配置好
mysql----metastore----雙射,唯一映射
hive把拿到的數據通過SQL語句,轉化爲MR代碼
二、hive的部署與安裝
1、解壓hive到安裝目錄
2、重命名配置文件
3、hive-env.sh
4、安裝mysql
1)yum -y install mysql mysql-server mysql-devel
2)wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
3)rpm -ivh mysql-community-release-el7-5.noarch.rpm
4)yum -y install mysql-community-server
ps:如果使用離線綠色版本(免安裝版本)需要手動初始化mysql數據庫
5、配置mysql
1)開啓mysql服務systemctl start mysqld.service
2)設置root用戶密碼#mysqladmin -uroot password '123456'
3)爲用戶以及其它機器節點授權#grant all *.* to root@'hadoop001' identified by '123456';
grant:授權
all:所有權限
*.*:數據庫名稱.表名稱
root:操作mysql的用戶
@'':主機名
密碼:123456
4)hive-site.xml
(1)<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hlh001:3306/hive?createDatabaseIfNotExist=true</value>
(2)<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
(3)<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
(4)<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
5)hive-log4j.properties
hive.log.dir=/opt/module/hive/logs
6)拷貝mysql-connector-java.jar驅動包到hive的lib目錄下
6、啓動hive
bin/hive
7、修改HDFS系統中關於hive的一些目錄權限
/opt/module/hadoop/bin/hadoop fs -chmod 777 /tmp/
/opt/module/hadoop/bin/hadoop fs -chmod 777 /user/hive/warehouse
8、顯示數據庫名稱以及字段名稱
是否在當前客戶端中顯示查詢出來的數據的字段的名稱hive.cli.print.header
true
是否在當前客戶端中顯示當前數據庫名稱hive.cli.print.current.db
true
三、基礎操作
1、創建數據庫和表操作
創建數據庫
hive> create database staff;
創建表
hive> create table t1(eid int, name string, sex string) row format delimited fields terminated by '\t';
2、導入數據
從本地導入
load data local inpath '文件路徑' into table;
select * from table
select name from table
從HDFS系統導入