hive搭建和基本使用

标签: hive

Hive是什么?

由facebook开源,最初用于解决海量结构化的日志数据统计问题;
   ETL (Extraction-Transformation-Loading )工具

     构建在Hadoop之上的数据仓库;
   数据计算使用MR ,数据存储使用HDFS

     Hive 定义了一种类 SQL 查询语言——HQL;
   类似SQL , 但不完全相同

     通常用于进行离线数据处理(采用MapReduce);

     可认为是一个HQL MR的语言翻译器。
Hive典型应用场景

     日志分析
   统计网站一个时间段内的pv、uv
   多维度数据分析
   大部分互联网公司使用Hive进行日志分析,包括百度、淘宝等

     其他场景
   海量结构化数据离线分析
   低成本进行数据分析(不直接编写MR)

 

Hive各模块组成

用户接口
   包括 CLI ,JDBC/ODBC ,WebUI

     元数据存储(metastore)
   默认存储在自带的数据库derby 中,线上使用时一般换为MySQL

     驱动器(Driver)
   解释器、编译器、优化器、执行器

     Hadoop
   用 MapReduce进行计算,用HDFS进行存储

 

 

 

数据定义语句(DDL)
 

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
(col_name data_type, ...)
[PARTITIONED BY (col_name data_type, ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY
(col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[SKEWED BY (col_name, col_name, ...)]
[ [ROW FORMAT row_format] [STORED AS file_format] ]
[LOCATION hdfs_path]

 

1:下载地址

http://archive.apache.org/dist/hive

2:解压
3:配置hive的环境变量
    在当前用户的.bashrc中配置如下内容
  

  export HIVE_HOME=/home/hadoop/bd/apache-hive-2.1.0-bin

4:配置hive安装目录下的conf目录下的hive-env.sh文件
    该文件可以通过复制hive-env.sh.template改名得来
    配置内容如下:
  

  # Set HADOOP_HOME to point to a specific hadoop install directory
     HADOOP_HOME=/home/hadoop/bd/hadoop-2.7.3

    # Hive Configuration Directory can be controlled by:
     export HIVE_CONF_DIR=/home/hadoop/bd/apache-hive-2.1.0-bin/conf

    # Folder containing extra ibraries required for hive compilation/execution can be controlled by:
     export HIVE_AUX_JARS_PATH=/home/hadoop/bd/apache-hive-2.1.0-bin/lib

5:修改hive的日志文件存放的地址
  

  cp hive-log4j2.properties.template hive-log4j2.properties
    通过vi修改日志的存放文件
    property.hive.log.dir = /home/hadoop/bd/apache-hive-2.1.0-bin/logs

6:启动hadoop集群

7:安装默认的derby数据库为hive的元数据库
    可以先通过./schematool --help 命令来查看schematool命令的一些选项
     ./schematool -dbType derby -initSchema,使用这个命令来安装derby数据库为元数据

8:执行bin目录下的hive命令,进入hive命令行
    ./hive

如果没有问题的话,hive就安装成功了


1:创建表
    create table 表名
    指定分隔符创建表:

create table teacher (id int, name string) row format delimited fields terminated by '\t';

二:更改元数据库为mysql

1:复制文件hive-default.xml.template更名为hive-site.xml

    cp hive-default.xml.template hive-site.xml

2:清空hive-site.xml里面的配置信息
    添加我们自定义的信息

    <configuration>
     <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hm02:3306/hive?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>123</value>
    </property>
  </configuration>

3:拷贝mysql驱动jar包到hive安装目录下的lib目录

4:mysql授权以及实例化metastore
    1)如果之前对该主机和用户进行了授权,那么可以不用再次授权,否则进行授权,参考sqoop那章
    (grant all privileges on *.* to [email protected]'主机名' identified by '密码')
    前提是use mysql这个库。

    2)实例化metastore命令:
    ./schematool -dbType mysql -initSchema

5:关于mysql数据库作为元数据库的几点说明
    1)hive当中创建的表的信息,在元数据库的TBLS表里面
    2)这个表的字段信息,在元数据库的COLUMNS_V2表里面
    3)这个表在HDFS上面的位置信息,在元数据库的SDS表里面


 

 

 

 

 

 

 

 

版权声明:本文为fyihdg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fyihdg/article/details/82317760

智能推荐

太赞了!Linux 架构师总结的学习笔记,提供下载

  本文字数:1247,阅读时长大约:1分钟 导读:你想学习 Linux 吗? 最近很多小伙伴找我要一些 Linux 基础资料,于是我翻箱倒柜,把这份技术大牛总结的 Linux 归纳笔记找出来,免费共享给大家! 据说有小伙伴靠这份笔记顺利进入 BAT 哦,所以一定要好好学习这份资料! 资料介绍 这份资料非常全面且详细,从 Linux 常用命令到 Linux 常用操作,再到shell编程、...

【底层原理】高级开发必须懂的"字节对齐"

认识字节对齐之前,假定int(4Byte),char(1Byte),short(2Byte) 认识字节对齐 先看段代码:   sizeof(Data1)和sizeof(Data2)分别表示Data1和Data2内存占用字节数,输出结果不一样是因为编译时对Data1和Data2做了不同的字节对齐。Data1的对齐为4Byte,Data2的对齐是2Byte。   假定存储起始地址为...

爬lol全英雄皮肤

初学爬虫简单的爬取一下lol全英雄皮肤,自己写的,和网上CV的好不一样,觉得文章说得过去的记得留下足迹。 一 分析页面 1.英雄列表 首先在英雄页面找到hero_list.js;至于为什么是这个文件,看图: 观察该文件响应头,获取访问的url,打开新的窗口,访问该链接,能获取对应数据。(这边显示在一行很男查看,推荐一款好用的chrome插件JSONView,可以帮帮我们格式化json数据,可以在g...

解决VUE项目重复点击菜单报错:Avoided redundant navigation to current location: “/xxxxx“. 问题

描述: 报错见下图: 解决方法: 在router文件夹下添加下面一段代码...

Nginx 入门指南(十)

负载均衡模块 负载均衡模块用于从upstream指令定义的后端主机列表中选取一台主机。Nginx 先使用负载均衡模块找到一台主机,再使用 upstream 模块实现与这台主机的交互。为了方便介绍负载均衡模块,做到言之有物,以下选取 Nginx 内置的 ip hash 模块作为实际例子进行分析。 配置 要了解负载均衡模块的开发方法,首先需要了解负载均衡模块的使用方法。因为负载均衡模块与之前书中提到的...

猜你喜欢

文本和输入:复制和粘贴

Android提供了一个功能强大的基于剪贴板的复制和粘贴框架。 它支持简单和复杂的数据类型,包括文本字符串,复杂数据结构,文本和二进制流数据,甚至应用程序资产。 简单的文本数据直接存储在剪贴板中,而复杂数据则作为粘贴应用程序与内容提供者解析的参考进行存储。 复制和粘贴在应用程序中以及在实现框架的应用程序之间工作。 由于框架的一部分使用内容提供者,因此本主题假定您熟悉Android内容提供程序API...

[unity]代码批量修改图片、文本文件的AssetBundle的Name

  当项目工程内有大量文件,需要打包成AssetBundle的时候,一个一个打包是一件非常麻烦的事情。 批量修改AssetBundle的Name并对AssetBundle包 进行批量 打包。   批量修改项目工程文件的图片、文本文件的AssetBundle   1.批量建立AssetBundle 1.1修改文件的.meta文件的文本内容 来自参考资料1   ...

[Python] 用K-means算法进行客户分群

目录 一、背景 1.项目描述 2.数据描述 二、相关模块 三、数据可视化 1.数据读取 2.数据可视化 2.1 平行坐标图 2.2 年龄/年收入/消费分数的分布 2.3 年龄/年收入/消费分数的柱状图 2.4 不同性别用户占比 2.5 两两特征之间的关系 2.6 两两特征之间的分布 四、K-means聚类分析 0.手肘法简介 1.基于年龄和消费分数的聚类 2.基于年收入和消费分数的聚类 3.基于年...

CUDA9.0+win10+Visual Studio2017版本配置安装教程

CUDA9.0+win10+Visual Studio2017版本配置安装教程 不幸掉入深度学习的深渊,从此以后无法自拔,哈哈,虽然电脑属于平民配置,但因为有师姐顶配DELL工作站的操练,可以肆无忌惮的配置安装自己想要的东西,一路踩坑,一路爬,一把辛酸泪。安装的时候特别要注意VS和CUDA版本的兼容问题,否则要么卸载重装,要么一系列的路径操作会让你绝望。 如果电脑配置够新,不妨试试安装最新版本的C...

python发送邮件-实操记录-发送一封普通的邮箱

获取smtp服务 开通qq邮箱的smtp服务的流程详情_pyhui的技术博客-CSDN博客 https://blog.csdn.net/ifubing/article/details/104499005 他说以后会得到一串密码 代码:功能实现 逻辑图 实例化 键 键 键 参数1 参数2 实例化得到 实例化得到 等于 等于 参数1 参数2 实例化 实例化 参数1 参数1 参数1 实例化 实例化 实例...