Sqoop 小咪咪 2024-04-20 08:37 47阅读 0赞 ## 一、Sqoop ## ### 1 官网 ### http://sqoop.apache.org/ ### 2 概述 ### 1、用于结构化数据存储(如传统关系型数据库)和Hadoop之间的数据传输 2、Sqoop的核心设计思想是利用MapReduce加快数据传输速度,即Sqoop的导入和导出功能是通过基于Map Task(只有Map)的MapReduce作业完成,因此Sqoop是一种批处理方式进行数据传输,难以实现实时的数据进行导入和导出 ### 3 特点 ### 优点:可以将跨平台的数据进行整合 缺点:不灵活 mysql <--> hdfs mysql --> hive mysql -->hbase import:从关系型数据库到hadoop export:从hadoop到关系型数据库 ### 4 安装 ### 1、解压配置环境变量 (1)tar -zxvf /home/sqoop... -C /usr/local/sqoop... (2)vi /etc/profile 添加如下内容: export SQOOP_HOME=/usr/local/sqoop export PATH=$PATH:$SQOOP_HOME/bin 2、mv ./conf/sqoop-env-template.sh ./conf/sqoop-env.sh 3、配置文件:vi ./conf/sqoop-env.sh export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.8.5/ export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.8.5/ export HIVE_HOME=/usr/local/hive-1.2.1/ export ZOOCFGDIR=/usr/local/zookeeper-3.4.7/ 4、将mysql的驱动包导入到sqoop安装目录下的lib包下面 cp /home/mysql-connector-java-5.1.18.jar ./lib/ 5、启动测试: sqoop version sqoop help ### 5 Demo ### #### 1 查看数据库 #### sqoop list-databases --connect jdbc:mysql://hadoop01:3306 \ --username root --password 123456 #### 2 查看数据表 #### //查看test数据库中的数据表 sqoop list-tables \ --connect jdbc:mysql://hadoop01:3306/test \ --username root --password 123456 #### 3 HDFS <-- Mysql 导入 #### ##### –table ##### //将数据从Mysql中导入HDFS中 //方法1 使用--table 1、 [root@hadoop01 ~]# hdfs dfs -mkdir -p /sqoopdata/test 2、 sqoop import --connect jdbc:mysql://hadoop01:3306/test \ --driver com.mysql.jdbc.Driver \ --username root --password 123456 \ -m 1 \ --table user \ --target-dir hdfs://hadoop01:9000/sqoopdata/test/t3 3、 [root@hadoop01 ~]# hdfs dfs -cat /sqoopdata/test/t1/* ##### –query ##### //方法2 使用--query sqoop import --connect jdbc:mysql://hadoop01:3306/test \ --driver com.mysql.jdbc.Driver \ --username root --password 123456 \ -m 1 \ --split-by user_id \ --fields-terminated-by '\t' \ --query 'SELECT s1.* FROM u2 s1 where $CONDITIONS' \ --as-textfile \ --target-dir hdfs://hadoop01:9000/sqoopdata/test/t4 #### 4 HDFS --> Mysql 导出 #### //将数据从HDFS中导出到Mysql中 sqoop export \ --connect jdbc:mysql://hadoop01:3306/test \ --username root \ --password 123456 \ --table u3 \ --input-null-string '' \ --input-null-non-string '' \ --export-dir hdfs://hadoop01:9000/sqoopdata/test/t3/* #### 5 Hive <-- Mysql 全量导入 #### 1、 create table xry.u4( user_id bigint, user_name string, trade_time string ) ; 2、 sqoop import --connect jdbc:mysql://hadoop01:3306/test \ --driver com.mysql.jdbc.Driver \ --username root --password 123456 \ --table u2 \ -m 1 \ --hive-import \ --hive-table xry.u4 3、 select * from xry.u4; #### 6 Hive <-- Mysql 增量导入 #### //将test.u2表中,user_id大于4的行,追加到hive的xry.u4表中 sqoop import --connect jdbc:mysql://hadoop01:3306/test \ --driver com.mysql.jdbc.Driver \ --username root --password 123456 \ --table u2 \ --incremental append \ --check-column user_id \ --last-value 4 \ -m 1 \ --hive-import \ --hive-table xry.u4 ### 6 Error ### #### 1 mysql2hdfs #### ##### ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE\_CONF\_DIR is set correctly.Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf ##### 原因:配置文件中缺少环境变量 解决方法:vi /etc/profile,添加下面的环境变量 export HIVE_CONF_DIR=$HIVE_HOME/conf export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/* 参考文章1链接:https://www.cnblogs.com/abcdwxc/p/8981543.html 参考文章2链接:https://blog.csdn.net/b_x_p/article/details/79180719 #### 2 mysql2hdfs: #### ##### FAILED: SemanticException \[Error 10072\]: Database does not exist: xry ##### 原因: sqoop的conf目录下需要添加hive-site.xml配置文件 解决方法: [root@hadoop01 ~]# cp /usr/local/hive-1.2.1/conf/hive-site.xml /usr/local/sqoop/conf/ 参考文章1链接:https://www.cnblogs.com/zuoql/p/10149351.html 参考文章2链接:https://blog.csdn.net/qq_24326765/article/details/82713874
相关 Sqoop 一、Sqoop 1 官网 http://sqoop.apache.org/ 2 概述 1、用于结构化数据存储(如传统关系型数据库)和Ha... 小咪咪/ 2024年04月20日 08:37/ 0 赞/ 48 阅读
相关 Sqoop 1 Sqoop简介 Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在 Sqoop 谁践踏了优雅/ 2023年06月15日 09:52/ 0 赞/ 6 阅读
相关 Sqoop 文章目录 一、Sqoop简介 二、Sqoop安装 三、Sqoop导入数据 3.1 RDBMS到HDFS 3.2 RDBMS到H àì夳堔傛蜴生んèń/ 2023年02月21日 06:21/ 0 赞/ 25 阅读
相关 sqoop sqoop有什么用? sqoop 用来在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递 ----------------- 秒速五厘米/ 2022年06月06日 01:08/ 0 赞/ 218 阅读
相关 sqoop 笔记 ![Center][] ![Center 1][] ![Center 2][] ![Center 3][] ![Center 4][] ![C £神魔★判官ぃ/ 2022年06月04日 04:56/ 0 赞/ 513 阅读
相关 sqoop_使用 <table> <tbody> <tr> <td><p>命令</p></td> <td><p>说明</p></td> </tr> 一时失言乱红尘/ 2022年05月25日 08:48/ 0 赞/ 193 阅读
相关 Sqoop Sqoop的基本原理和相关参数配置: 简介 Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgre 心已赠人/ 2022年04月25日 01:46/ 0 赞/ 224 阅读
相关 Sqoop Sqoop优化 参考这个https://blog.csdn.net/u010185220/article/details/79085119 如何判断读取的数据是否完整?可 柔情只为你懂/ 2022年03月15日 02:24/ 0 赞/ 249 阅读
相关 Hadoop Sqoop 一、概述: Sqoop是一款开源的工具,主要用于在Hadoop(如Hive、HDFS)与传统的数据库(mysql、Oracle ...)间进行数据的传递,可以将一个关系型数据 古城微笑少年丶/ 2022年01月17日 04:17/ 0 赞/ 244 阅读
相关 Sqoop sqoop flume数据采集 采集日志数据 sqoop数据迁移 hdfs->mysql azkaban任务调度 flume->hdfs->shell->hive- 矫情吗;*/ 2021年12月03日 07:01/ 0 赞/ 294 阅读
还没有评论,来说两句吧...