标签(空格分隔): 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,自定义存储格式等;
适合离线数据处理;
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;
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;
1, 创建数据库
create database if not exists studb;
2,创建表并导入数据
load data local inpath '/home/student.txt' into path table default.student;
3, 查询表数据
select * from student;