章节内容
上一节我们已经完成了:
Flume 采集数据
Flume 3个Agent编写
Flume 双写:本地+HDFS
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
2C4G 编号 h121
2C4G 编号 h122
2C2G 编号 h123
注意事项
Apache Sqoop 于 2021 年 6 月迁入 Attic。
Apache Sqoop 的使命是创建和维护与 Apache Hadoop 和结构化数据存储相关的大规模数据传输软件。
虽然项目已经可能过时,但是如果你的时间充裕的话,可以适当地学习一下,可能会对你有一定的帮助的!!!
Sqoop介绍
Sqoop 是一款开源的工具,主要用于在 Hadoop(Hive) 与 传统数据库(MySQL等)之间进行数据的传递。可以将关系型数据库:(MySQL等)中的数据导入到HDFS中,可以将HDFS中的数据导入到传统数据库中。
Sqoop项目开始与2009年,最早是Hadoop的一个第三方模块,后来为了让使用者快速部署,Sqoop独立成为了Apache的项目。
它将导入或导出命令转换为 MapReduce 程序来实现。
Sqoop下载
下载 1.4.7 版本,这是最后一个稳定的版本了。后续项目就迁移了。
http://www.apache.org/dyn/closer.lua/sqoop/
下载解压
我选择了 h122 机器,对其进行测试。
tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz mv sqoop-1.4.7.bin__hadoop-2.6.0/ ../servers/sqoop-1.4.7/
环境变量
vim /etc/profile
向其中写入如下内容
# sqoop export SQOOP_HOME=/opt/servers/sqoop-1.4.7 export PATH=$PATH:$SQOOP_HOME/bin
退出保存,并且刷新环境变量。
修改配置
cd $SQOOP_HOME/conf
我们需要修改默认的配置
cp sqoop-env-template.sh sqoop-env.sh vim sqoop-env.sh
写入如下的内容:
export HADOOP_COMMON_HOME=/opt/servers/hadoop-2.9.2 export HADOOP_MAPRED_HOME=/opt/servers/hadoop-2.9.2 export HIVE_HOME=/opt/servers/hive-2.3.9
修改结果如下图:
测试结果
控制台测试:
sqoop version
额外配置
JDBC配置
JDBC驱动需要拷贝到 lib 目录下,由于当前节点是我的Hive节点,之前我已经拷贝过 JDBC 驱动了,这里我从Hive的目录直接拷贝过来即可。
cp $HIVE_HOME/lib/mysql-connector-java-8.0.19.jar $SQOOP_HOME/lib
Hive配置
Hive驱动也是,如果我们需要链接到Hive,那也需要拷贝一些支持库过来。
cp $HIVE_HOME/lib/hive-*-2.3.9.jar $SQOOP_HOME/lib/
Hadoop配置
Hadoop 配置同理,这里缺一个Jar包,拷贝一下过来。(不然后续会报错!)
cp $HADOOP_HOME/share/hadoop/tools/lib/json-20170516.jar $SQOOP_HOME/lib