hive数据仓库安装与使用

本文详细介绍了Hive数据仓库的安装、配置及使用方法。首先,解释了Hive作为基于Hadoop的数据仓库工具,元数据存储在MySQL中,数据存储在HDFS。接着,逐步讲解了安装Mysql、Hive的过程,包括修改配置、添加权限、启动服务等。然后,阐述了Hive的使用,包括DDL(如创建表、分区、加载数据)和DML(如查询、数据加载)操作。最后提到了Hive数据类型以及如何利用Hive脚本和crontab执行定时任务。
摘要由CSDN通过智能技术生成

第一部分:hive介绍

1、hive的概念

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

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

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

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://192.168.47.128:3306/hive?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

<description>username to use against metastore database</description>

</property>

<property>

 <name>javax.jdo.option.ConnectionPassword</name>

 <value>root</value>

 <description>password to use against metastore database</description>

</property>

</configuration>

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是hi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rose and war

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值