Hive学习一

Hive学习一

标签(空格分隔): Hive


一,概述

从某种意义上来说,Hive其实就是Hadoop 客户端。
元数据metadata(RDBMS:MySQL,PostgeSQL)

MapReduce编程的不便性:
1,MapReduce is hard to program
【八股文】格式编程,三大部分
2,No Schema , lack of query lanaguages, eg. SQL 数据分析,针对DBA、SQL语句,如何对数据分析
3,MapReduce编程成本高
4,FaceBook 实现并开源Hive

Hive特点:
* 处理的数据存储在HDFS
* 分析数据的底层实现:MapReduce
* 执行程序实在YARN上

what is hive?
1,由Facebook开源用于解决海量结构化日志的数据统计;
2,Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类
SQL查询功能;
3,构建在Hadoop之上的数据仓库;
使用HQL作为查询接口;
使用HDFS存储;
使用MapReduce计算;

本质是:将HQL转化成MapReduce程序
灵活性和扩展性比较好:支持UDF,自定义存储格式等;
适合离线数据处理;

二,hive安装,进行创建表,加载数据测试

1, 配置hive-env.sh配置文件,如图

# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/opt/app/hadoop-2.5.0

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/app/apache-hive-0.13.1-bin/conf

2, 在hdfs上创建相应的目录并赋权

bin/hadoop dfs -mkdir /tmp
bin/hadoop dfs -chmod g+w /tmp

bin/hadoop dfs -mkdir /user/hive/warehouse
bin/hadoop dfs -chmod g+w /user/hive/warehouse

3, 查看数据库和表

bin/hive
show databses;
show tables;
use tables;

4,创建表

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

5,加载测试数据

load data local inpath '/home/student.txt' into path table default.student;

6,查看测试结果

select * from student;

三,配置hive元数据存储在mysql中,查看相关元数据表信息

1, 在hive中加载mysql的驱动包
001.jpg-154.3kB

2,修改hive中的hive-site.xml配置

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost: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>root</value>
    </property>
</configuration>

3,启动hive服务(先要保证mysql的服务是开启的)

bin/hive

4,在mysql中查看元数据表信息

show databases;

001.jpg-13.5kB

四,熟悉基本的DML和DDL语句

1, 创建数据库

create database if not exists studb;

2,创建表并导入数据

load data local inpath '/home/student.txt' into path table default.student;

3, 查询表数据

select * from student;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

forrestxingyunfei

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

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

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

打赏作者

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

抵扣说明:

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

余额充值