首页 > 大数据 > > 恩墨学院-CCA175-第二讲
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/ ,如需转载,请注明出处,否则将追究法律责任。