ITPub博客

首页 > 大数据 > > 恩墨学院-CCA175-第二讲

恩墨学院-CCA175-第二讲

作者:恩墨学院 时间:2019-03-07 14:13:41 0 删除 编辑

Sqoop export考试场景模拟

说明

使用sqoop将HDFS中客户数据导出到MySQL的表中。

将数据放在MySQL的solution表中,该表已经创建且目前为空表。

 

数据描述

数据文件存储在HDFS的/user/cert/problem2/data/customer/目录中

MySQL数据库信息:

安装:在集群的gateway节点上

数据库名: problem2

表名: solution

用户名: cloudera

密码: cloudera

输出要求

将HDFS中所有客户数据导出到MySQL的表中。

MySQL数据库中solution表已经存在,但目前没有内容

 

题解

sqoop export --connect jdbc:mysql://localhost:3306/problem2

--username cloudera --password cloudera

--table solution

--export-dir /user/cert/problem2/data/customer/

--input-null-non-string '\\N'

--input-null-string '\\N'

--input-fields-terminated-by ','

mysql> select * from solution;

注:--input-null-non-string '\\N' 对于非字符串类型,字符串'\\N'为空值

--input-null-string '\\N'  对于字符串类型,字符串'\\N'为空值

 

 

Hive是什么?

Hive是使用类SQL语法查询HDFS数据的高级工具

通过在集群上运行Map Reduce作业来完成查询

自动运行作业,并将结果显示给用户

Hive是由Facebook发起的一个开源的Apache项目

 

动机

许多数据分析类似于结构化查询语言(SQL)

SQL是关系型数据库管理系统(RDBMs)中的数据查询主要手段

标准

数据分析师通常对像Java这样的编程语言不熟悉

 

Hive如何工作?

Hive表是带有相关元数据的HDFS里的数据目录

表是通过描述HDFS中已经存在的数据来创建的

 

元数据(表结构和数据路径)存储在RDBMS里

 

 

Hive表

一张Hive表表示HDFS里的一个目录

Hive把文件夹下的所有文件看成是表的内容

Hive将关于文件的行和列如何分隔的信息存储在Hive的元数据里

 

表可被创建为受管理的表和外部表

受管理的表

Hive将数据文件放在HDFS的数据仓库目录中

默认位置:/user/hive/warehouse

如果表被删除,则模式(元数据)和HDFS数据都被删除

外部表

定义表时指定数据所在位置(不在warehouse内)

从数据文件在HDFS的所在位置进行查询

如果表被删除,则只有表的模式(元数据)被删除

 

注意:Hive不是关系型数据库管理系统

查询结果可能要等几秒,几分钟,甚至几个小时才能看到

不能使用Hive QL修改数据

不支持UPDATE或DELETE

 

Hive元数据服务器和部署模式选项

Hive元数据服务器(远程模式)

推荐的部署模式

元数据存储在像MySQL这样的独立的RDBMS上

嵌入模式

只支持单用户——只用于实验目的

使用Apache Derby,一种基于java的RDBMS

 

1.Import the movierating table from MySQL.

$ sqoop import --connect jdbc:mysql://localhost/movielens --table movierating --fields-terminated-by '\t' --username root --password cloudera --warehouse-dir /user/hive/warehouse/

 

2.Review the table loaded into HDFS.

$ hdfs dfs -ls /user/hive/warehouse

 

3.Define the movierating table in Hive.

> CREATE TABLE movierating

> (userid INT, movieid STRING, rating TINYINT)

> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

 

4.Verify that you created the movierating table in the Hive metastore.

> SHOW TABLES;

 

5.Run a simple test query that counts the number of rows in the movieratings table.

> SELECT COUNT(*) FROM movierating;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28530558/viewspace-3121978/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: DBA 发展方向
请登录后发表评论 登录
全部评论

注册时间:2014-01-16

  • 博文量
    180
  • 访问量
    163059