7月21号day13总结

时间:2023-03-03 11:21:14

今天学习过程和小结

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

学习了sqoop version用sqoop导入导出数据。

主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将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,使用sqoop将hive中的数据导出到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中要注意字段的值。

学习技能思维导图

7月21号day13总结