hive数据仓库安装与使用

第一部分:hive介绍

1、hive的概念

  hive是基于hadoop的一个数据仓库的工具,也是数据库,存放的是历史数据,用于数据挖掘etl。

  hive的元数据存放在mysql(或者derby)中,真正的数据存放在dfs分布式文件系统内,hive底层封装了很多mapreduce的任务,通过sql语句调度相应的任务。由yarn资源调度系统执行任务,分析数据,最后返还给hive一个执行结果

hive数据仓库安装与使用_第1张图片

2、hive的数据存储

  1)、Hive中所有的数据都存储在 HDFS中,没有专门的数据存储格式

  2)、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。

  3)、Hive 中包含以下数据模型: DB、Table,External Table,Partition,Bucket。

     db:在hdfs中表现为S{hive,metastore.warehouse.dir;目录下一个文件夹

     table:在hdfs中表现所属db目录下一个文件夹

     externaltable:与table类似,不过其数据存放位置可以在任意指定路径

     partition:在hdfs中表现为table目录下的子目录

     bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件

第二部分:数据库安装

1、安装mariadb和hive

保证系统能连接外网,能连接外网的情况下该步骤可以省略:

/etc/resolv.conf增加

nameserver 192.168.47.2

nameserver 114.114.114.114

su切换root

安装

yum -y install mariadb  mariadb-devel  mariadb-server

查看版本

rpm -qi mariadb-server

开启服务

systemctl start mariadb.service

添加开机启动

systemctl enable mariadb.service

进行一些安全设置,以及修改数据库管理员密码

mysql_secure_installation

用户登录

mysql -u root -p

执行更改密码的语句

> update user set password=password('aaa) where user='root

# (执行下面的语句**:所有库下的所有表: 任何IP地址或主机都可以连接,用于navicat等软件连接mysql)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

FLUSH PRIVILEGES;

断开连接

exit

su hadoop 切换到普通用户hadoop

hive安装

解压hive

安装mysql数据库

配置hive I

tar -zxvf hive-1.2.4.targz  -C   /home/hadoop/cluster

配置HIVE

HOME环境变量 vi conf/hive-env.sh 配置其中的$hadoop home

HADOOP_HOME=/home hadoop/cluster/hadoop-2.6.4

2、配置数据库信息 vi hive-site.xml

xxx/conf/hive-site.xml

javax.jdo.option.ConnectionURL

jdbc:mysql://192.168.47.128:3306/hive?createDatabaseIfNotExist=true

JDBC connect string for a JDBC metastore

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

Driver class name for a JDBC metastore

javax.jdo.option.ConnectionUserName

root

username to use against metastore database

 javax.jdo.option.ConnectionPassword

 root

 password to use against metastore database

3、将mysql驱动包拷贝到¥HIVE_HOME/lib目录下

4、Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的

cp jline-2.12.jar /home/hadoop/cluster/hadoop-2.6.4/share/hadoop/yarn/lib/

5、启动hadoop集群   start-all.sh

启动mysql    切换到root       systemctl start mariadb.service   

启动hive         hive-1.2.1/bin/          ./hive

第三部分:hive的使用

1、ddl部分

show databases;   

use databsename;

show tables;

1)create语句

第一种方式

create [external] table[if not exists]table_name

[(col_name   data_type[COMMIT col_comment],...)]

[COMMENT table_comment]

    [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

    [CLUSTERED BY (col_name, col_name, ...)

    [SORTED BY (col_name [ASC|DESC], ...)]

INTO num_buckets BUCKETS]

    [ROW FORMAT row_format]

    [STORED AS file_format]

    [LOCATION hdfs_path]

EXTERNAL关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),

    Hive 创建内部表时,会将数据移动到数据仓库指向的路径;

    若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。

在删除表的时候,内部表的元数据和数据会 被一起删除,而外部表只删除元数据,不删除数据。

PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)

partition是hive提供的一

你可能感兴趣的:(大数据,hive,数据仓库,hadoop)