HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用

Hive体系结构:

    是建立在hadoop之上的数据仓库基础架构.

    和数据库相似,只不过数据库侧重于一些事务性的一些操作,比如修改,删除,查询,在数据库这块发生的比较多.数据仓库主要侧重于查询.对于相同的数据量在数据库中查询就比较慢一些,在数据仓库中查询的效率就比较快.

    数据仓库是面向于查询的,并且处理的数据量要远远高于数据库处理的数据量.
    传统的数据仓库产品,依然有数据存储的瓶颈,那么在这个瓶颈下查询的速度慢了,那么就不适用了,我们的hadoop是处理海量数据的,所以我们可以在上面建立数据仓库.
    Hive和MapReduce的区别,最简单的一个区别就是MapReduce是使用Java写的,平时开发的过程中,需要用java语言进行书写,对于很多人是有瓶颈的.
    hive封装在Hadoop之上的,可以使用SQL进行查询的一个框架.

    Hive中的数据是从其他数据库产品中导入进来的,所以他要从其他数据库中把数据提取出来,然后转化过来,因为我们的数据库有很多,并且业务很分散,但是我们的数据仓库一般都是面向某个领域某个主题的,这个时候我们数据仓库中的一张表要融合很多数据库中的多张表,多张表在进入数据仓库的时候也需要进行转化.将转化之后的数据加载到数据仓库中.
    在数据仓库中经常做的一个事就是ETL(extract transform load)的过程.hive的查询语言非常类似于SQL,但是又有自身的特色,称为HiveQL(HQL).
    Hive数据转化的过程可以使用Hive自身的,可以MapReduce,也可以使用其他的一些东西.通常是使用MapReduce.
    Hive查询的数据位于HDFS中.
    HiveQL的查询在执行时转化为MapReduce,透过MapReduce去执行HDFS.对Hive的优化看生成MapReduce运行的效率如何.

    hive和hdfs对应关系:

      Hive中的数据库,表对应HDFS中的文件夹.
      Hive表中的列对应HDFS中的文件夹中的数据文件中的数据的不同字段.
      Hive表中的数据对应于HDFS中的文件夹中的数据文件中的数据.
    Hive与HDFS的对应关系是存放在Hive的一个组件metastore中的.

    metastore表现为关系数据库,可以是derby,也可以是mysql.也就是说我们的关系是存放在derty或者是mysql中的表里面的.
    Hive和Hadoop结合在一起,需要有一个映射的关系,这个映射的关系就是metastore,sql语句的执行在这里边要转换为对表的操作,对文件夹的操作,对文件的操作,以及对数据的列的操作是通过查询metastore来实现的.
    HDFS中存储的文件,数据类型都是字节数组,本身是不区分类型的,但是在hql语句中是需要区分类型的,还有类型的对应.

Hive安装:

    hive相当于客户端,hadoop相当于服务端,所以我们的hive要配置hadoop的某一台机器上.

    cd /usr/local
    解压缩:tar -zxvf hive-0.9.0.tar.gz
    重命名:mv hive-0.9.0.tar.gz hive
    进入hive配置目录:cd hive/conf
    mv hive-exec-log4j.properties.templater hive-exec-log4j.properties
    mv hive-log4j.properties.templater hive-log4j.properties
    mv hive-env.sh.template hive-env.sh
    mv hive-default.xml.template hive-default.xml
    cp hive-default.xml hive-site.xml

    删除hive-site内部所有内容
    修改bin目录下的hive-config.sh,增加以下三行

    export JAVA_HOME=/usr/local/jdk
    export HIVE_HOME=/usr/local/hive
    export HADOOP_HOME=/usr/local/hadoop

hive的使用:

    cd bin/
    执行hive
    显示数据库:show databases;
    进入数据库:use default;
    显示数据库中的表:show tables;
    创建表:create table t1(id int);
    查询内容:select * from t1;

  hive的映射关系:

    Hive中的数据库,表对应HDFS中的文件夹.
    Hive表中的列对应HDFS中的文件夹中的数据文件中的数据的不同字段.
    Hive表中的数据对应于HDFS中的文件夹中的数据文件中的数据.
    当hive部署成功后,hive默认的数据库default在hdfs上对应的目录是/usr/hive/warehouse

  修改hive的metastore为mysql

  centos上安装mysql

    yum install mysql-server
    启动mysql service mysqld start
    启动mysql mysqld_safe &
    访问mysql mysql -uroot
    进入mysql数据库 use mysql;
    查询用户user的密码 select password ,user from user;
    修改用户密码 update user set password=password(‘admin‘);
    修改mysql为允许远程连接 grant all on *.* to ‘root‘@‘%‘ identified by ‘admin‘;
    刷新 flush privileges; 之前的操作在当前回话中立即生效
    退出登录 mysql -uroot -padmin

    将mysql的jdbc驱动放到hive的lib目录中, 

  cp mysql-connector-java-5.1.10 /usr/local/hive/lib

    修改hive/conf/hive-site.xml

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop4:3306/hive_hadoop?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>admin</value>
    </property>

    删除hive/bin/下面的metastore_db,derby.log

    操作:

    hive
    use default;
    show tables;
    create table t1(id int);
    quit;
    mysql -uroot -padmin
    show databases;
    use hive_hadoop;
    shwo tables;

    DBS:hive上的数据库

    TBLS:表的信息
    COLUMNS_V2:列的信息

    select * from dbs;
    select * from tbls \g;
    select * from columns_v2;

    加载linux磁盘文件到hive表中:对hive的操作实际上是对hdfs的操作,对hdfs的操作只允许一次写入不允许修改的,load的数据来自于磁盘文件.

    vi onecolumn
    1
    2
    3
    4
    5

vi onecolumn 数据

    将hive配置到环境变量中:

    vi ~/.bashrc
    export PATH=/usr/local/hive/bin:$PATH
    source ~/.bashrc
    hive
    load data local inpath ‘./onecolumn‘ into table t1;
    select * from t1;查询
    drop table t1;删除表 hive中没有修改

将hive添加到环境变量中

    多列数据的上传:

    create table t2(id int,name string) row format delimited fields terminated by ‘\t‘;
    vi user
    1    zhangsan
    2    lisi
    3    wangwu
    load data local inpath ‘./user‘ into table ‘t2‘;
    select * from t2;
    select name from t2;

    当需要查询某一列的时候,hive就不能够进行全表扫描了,只能走mapreduce

    创建表:

    create table t1(id int);
    create table t2(id int,name string) row format delimited fields terminated by ‘\t‘;

    加载linux磁盘文件到hive的表中:

    load data local inpath ‘./onecolumn‘ into table t1;
    load data local inpath ‘./user‘ into table t2;
时间: 2024-10-18 02:07:21

HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用的相关文章

mysql安装图解 mysql图文安装教程(详细说明)

整理的一篇mysql的安装教程,步骤明细也有详细的说明. MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本. mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe",出现如下界面 mysql安装图文教程1 mysql安装向导启

mysql安装图解 mysql图文安装教程(详细说明)-[转]

很多朋友刚开始接触mysql数据库服务器,下面是网友整理的一篇mysql的安装教程,步骤明细也有详细的说明. MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本. mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面 my

linux(Debian)下安装与MySql的安装、配置及使用

参考资料:http://www.cnblogs.com/xusir/p/3334217.html 以下是简要记录. 一.安装 安装:apt-get install mysql-server mysql-client MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习. 1.数据库目录 /v

免安装板mysql的“安装”和“卸载”

原本下载了一个安装版本的mysql,官网上写的是32位的,但是可以在64位机上使用,安装过程中其它模块基本上都能安装上,但是最主要的mysql server安装失败.日志显示缺少vs2003,我安装一个2007的,但还是不能安装mysql server.网上查找后也没找到能实际解决的方法,最后还是决定重新下载一个版本. 从官网上下载了一个免安装版的mysql,第一次用这个版本,记录下. 1.解压后先新建一个my.ini文件,内容如下 [mysql] # 设置mysql客户端默认字符集 defau

mysql 安装 通过mysql installer安装

一  下载mysql installer 官网链接 :https://dev.mysql.com/downloads/installer/ mysql installer为32位,但是可以安装32位/64位mysql相关软件. 建议下载离线安装包进行安装.安装包在手,随时可以重装. 二 开始安装 电脑上已经有mysql的话 1  卸载之前的mysql 2   安装新的mysql时 配置和之前的mysql 不要一样,避免造成冲突. 全新安装mysql 安装MySQL之前,这里先列出几个可能会出现的

Centos7 zabbix的安装以及mysql的安装

1.Zabbix是什么 Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能.同时Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件.Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警.这样可以快速反馈服务器的问题.基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能.这些功能使得Zabbix成为容量规划的理想方案. 支持SNMP(包括捕获和主动轮训),IPMI,JMX

【原】无脑操作:Windows 10 + MySQL 5.5 安装使用及免安装使用

本文介绍Windows 10环境下, MySQL 5.5的安装使用及免安装使用 资源下载: MySQL安装文件:http://download.csdn.net/detail/lf19820717/9892711 MySQL免安装文件:http://download.csdn.net/detail/lf19820717/9892716 ---------------------------------------------------------------------------------

Hive的安装与MySQL结合

#HIVE可以在任意节点搭建,实验在master 链接:http://pan.baidu.com/s/1i4LCmAp 密码:302x hadoop+hive下载 ##原封不动的复制,必死无疑,请根据实际填写相关参数和路径 1.  Hive的基础设施 a.基于已经搭建好的hadoop b.下载hive版本,注意和hadoop对应起来 2.安装hive a.下载好的包解压到/usr/local/命名为hive tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /u

hive 与mysql集成安装

Hive集成Mysql作为元数据 默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试.为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤: 第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务.此步省略,具体请看http://www.cnblogs.com/linjiqin/archive/2013/03/0