本期给大家分享小北精心整理的大数据研究笔记以及数据采集工具Sqoop的详细介绍。 我希望这对你有帮助。 如果您喜欢,请不要忘记鼓励和联系。 欢迎您在评论区提出建议和讨论。
???做起来不容易,但请给我一些鼓励。 ? ? ? 喜欢? ➕收藏⭐➕关注✅???欢迎您的建议。 只需单击一下即可开始。
1. 理论学习 1. Sqoop 简介
在 The Apache Attic 中,Sqoop 的介绍如下: 它是创建和维护相关的软件传递) Apache Sqoop 的使命是创建和维护相关的软件。用于 Apache Hadoop 和结构化数据存储的批量数据传输。 可以这么理解:Sqoop是一个关系型数据库(oracle、mysql、postgresql等)数据和Hadoop数据转换的工具。
Sqoop官方网站:http://Scoop. apache.org/
Sqoop版本:(两个版本不完全兼容,sqoop1最常用) sqoop1:1.4.x sqoop2:1.99.x
有类似产品例如: Sqoop:DataX:阿里巴巴顶级数据交换工具
2. Sqoop原理架构
如下图,正如您所看到的,Sqoop架构非常简单,Sqoop是Hadoop生态架构中最简单的框架。 Sqoop1.4x版本从客户端直接连接Hadoop,解析任务,生成对应的Maprecue执行。
3. 使用Sqoop 将数据导入HDFS Process Analytics
4. 将HDFS Process Analytics 中的数据导出到Sqoop
2. 使用它明智地(一)安装Sqoop 1、上传安装包并解压(到指定目录) tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4 -alpha.tar.gz [ k4] ] C /usr/local/soft/ 2. 重命名 sqoop 文件夹。 mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6 3. 修改sqoop配置。 文件# 切换到sqoop配置文件所在目录 cd /usr/local/soft/sqoop-1.4.6/conf# 复制配置文件并重命名为 cp sqoop-env-template. k4]env .sh # vim sqoop-env.sh 编辑配置文件,添加以下内容: /hadoop-2.7.6/share/hadoop/mapreduceexport HBASE_HOME=/usr/local/soft/hbase-1.4.6export HIVE_HOME=/usr/local/soft/hive-1.2.1export ZOOCFGDIR=/usr/local/soft/zookeeper/zookeeper-3.4.6/confexport ZOOKEEPER_HOME=/usr/local/soft/zookeeper/zookeeper-3.4.6# 切换到bin目录 cd /usr/local/ Soft /sqoop-1.4.6/bin# vim configure- 修改sqoop配置文件并注释掉不必要的内容(即删除警告消息)
4 更改环境变量vim。 /etc /profile# 将 sqoop 目录添加到环境变量中。 export SQOOP_HOME=/usr/local/soft/sqoop-1.4.6export PATH=$SQOOP_HOME/bin 5. 添加 MySQL 连接驱动# 添加 MySQL 连接驱动。 $SQOOP_HOME/lib #将 MySQL 连接驱动程序从 HIVE 复制到 $SQOOP_HOME/libcp /usr/local/soft/hive-1.2.1/lib/mysql-connector-java-5.1。 .49.jar /usr/local/soft/sqoop-1.4.6/lib/ 6.测试安装 # 打印sqoop version sqoop version
# 测试MySQL连接 sqoop list-databases [k4 ]connect jdbc: mysql://master:3306?useSSL=false -username root -password 123456
(二)准备MySQL数据 1、登录MySQL数据库,创建数据库登录#mysql - u root -p123456;#Create创建database Student;#切换use Student 2. 将数据导入学生数据库。 方法一:mysql shell source /root/student.sql; source/root/score.sql; 方法二:Linux shell mysql -u root -p123456 Student 创建数据库 testqoop。 运行脚本 sqoop --options-file MySQLToHIVE.conf –direct
使用该参数可以加快使用 MySQL 提供的导出工具 mysqldump 导出 MySQL 数据的速度。 提高导出速度和效率
master上的/usr/bin/mysqldump必须分发到节点1和节点2上的/usr/bin目录
scp /usr/bin/mysqldump node1: /usr/bin/scp /usr/bin/mysqldump node2:/usr/bin/ - 参数用法 import --connect jdbc:mysql://master:3306/student [k4 ]- 用户名root --密码 123456 --字段-End-按“/t”--行-终止-按“/n”- -m 2 --split-bystudent_id --e "从 Student_id=1500100011 中选择 * 并在 $CONDITIONS 中得分" --target - dir / testQ --hive-导入--hive-覆盖--创建-hive-表--hive-数据库测试qoop --hive-table core2 3. 为 MySQLToHBase 创建脚本并将其保存为 MySQLToHBase.conf。 import --connect jdbc:mysql://master:3306/student?useSSL=false[ k4] -用户名 root --密码 123456--表 Student[k4 ] -hbase-表学生--hbase-创建-表--hbase-行-密钥id--m 1[k4 ]-column-family cf1 在 HBase 中创建学生表 create "student","cf1" 运行脚本 sqoop --Options-File MySQLToHBase.conf (4)。 从 HDFS、HIVE、HBASE... 到传统关系数据库的导出操作 1. 创建 HDFSToMySQL 脚本并将其保存为 HDFSToMySQL.conf。 true&characterEncoding=UTF-8--用户名 root--密码123456--tablestudent-m1--列id、姓名、年龄、性别、clazz--导出-directory/sqoop/data/student1/--field-end-by ” , “首先清除MySQL学生表中的数据。 否则会出现主键冲突。 运行脚本 sqoop --options- 文件 HDFSToMySQL.conf (5)。 显示 sqoop help sqoop help21/04/26 15:50: 36 INFO sqoop.Sqoop: Sqoop running version: 1.4.6usage: sqoop COMMAND [ARGS]可用命令: codegen 生成与数据库记录交互的代码 create-hive[k4 ]table 将表定义导入 Hive eval 评估 SQL 语句并显示结果 import 将 HDFS 目录导出到数据库表 help 列出可用命令 import 表从数据库到 HDFS import-all-tables 导入表 import-mainframe 从数据库导入到HDFS将数据集从大型机服务器转换为 HDFS 作业 使用保存的作业 list-databases 列出服务器上的可用数据库 list-tables 列出数据库中的可用表 合并增量导入 合并结果 Metastore 运行独立的 Sqoop Metastore 版本显示版本信息 具体命令请参见sqoop help命令。 # 显示 import sqoop 的详细帮助 import --help
评论前必须登录!
注册