7月21号day13总结

今天学习过程和小结

学习了hive中的数据类型以及hive的简单查询,

学习了sqoop versionsqoop导入导出数据。

主要用于在Hadoop(Hive)与传统的数据库(mysqlpostgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到HadoopHDFS中,也可以将HDFS的数据导进到关系型数据库中。

配置参数

export HADOOP_COMMON_HOME=$HADDOP_HOME

export HADDOP_MAPRED_HOME=$HADDOP_HOME

 

Hive表结构中的数据类型与MySQL对应列有如下关系:

 

MySQL(bigint) --> Hive(bigint)

MySQL(tinyint) --> Hive(tinyint)

MySQL(int) --> Hive(int)

MySQL(double) --> Hive(double)

MySQL(bit) --> Hive(boolean)

MySQL(varchar) --> Hive(string)

MySQL(decimal) --> Hive(double)

MySQL(date/timestamp) --> Hive(string)

 

1,使用sqoop导入mysql数据到hdfs

./sqoop import --connect jdbc:mysql://192.168.122.141/scott --username root --P --table emp -m 1 --target-dir /sqoop/emp;

2,使用sqoop导入mysql数据到hive

  ./sqoop import  --hive-import  --connect jdbc:mysql://192.168.122.141:3306/scott --username root --P   --table emp;

3,使用sqoop导入mysql数据到hive中,并指定表名

  ./sqoop import  --hive-import  --connect jdbc:mysql://192.168.122.141:3306/scott --username root --P   --table emp  --hive-table emp1;

 

4,使用sqoop导入mysql数据到hive中,并使用where条件

    ./sqoop import  --hive-import  --connect jdbc:mysql://192.168.122.141:3306/scott --username root --P   --table emp   --hive-table emp2  --where deptno=10;

 

5,使用sqoop导入mysql数据到hive中,并使用查询语句

   

       ./sqoop import  --hive-import  --connect jdbc:mysql://192.168.122.141:3306/scott --username root --P   --query select * from emp where sal<2000 and $CONDITIONS--split by empno --target-dir /sqoop/emp3--hive-table emp4;

 

 

6,使用sqoophive中的数据导出到mysql

 

  ./sqoop export --connect jdbc:mysql://192.168.122.141:3306/data --username root --P --table data  --export-dir=/var/lib/mysql/data/ --input-fields-terminated-by '\t';

 

 

也开始做网站日志分析的项目。

一开始先进行数据清洗。

通过map将有用的需要的数据挑选出来。然后将挑选出来的数据放入hive中。

 

 

 遇到问题汇总

  1. sqoop中导入导出数据很实用,要多加练习。
  2. 对于要进行的项目要通过软件架构等的步骤来完成。清洗数据要精确也要掌握好key的值。

3.在清洗出的数据存入hive中要注意字段的值。

学习技能思维导图

 

posted @ 2018-07-21 18:04  康杨  阅读(123)  评论(0编辑  收藏  举报