Sqoop的安装与配置

1.上传解压Sqoop

bash 复制代码
tar -zxf ../software/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

1.1配置环境变量

bash 复制代码
export SQOOP_HOME=/opt/module/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin

使得环境生效

bash 复制代码
source /etc/profile

查看版本信息sqoop version

1.2 配置sqoop-env.sh

bash 复制代码
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.4
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.4
export HIVE_HOME=/opt/module/hive-3.1.2
export HIVE_CONF_DIR=/opt/module/hive-3.1.2/conf
export HBASE_HOME=/opt/module/hbase-2.2.2
export HBASE_CONF_DIR=/opt/module/hbase-2.2.2/conf
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*:$HBASE_HOME/lib/hbase-*.jar:$HBASE_HOME/lib/zookeeper-*.jar

1,3配置sqoop需要的mysql驱动

mysql驱动程序

将mysql-connector-java-5.1.32-bin.jar放入sqoop的lib目录

bash 复制代码
cp /opt/software/mysql-connector-java-5.1.32-bin.jar /opt/module/sqoop-1.4.7/lib/

记得启动zookeeper(zkServer.sh start)也许会要用到

测试连接mysql数据库 列出mysql的所有数据库

8.0+

bash 复制代码
sqoop list-databases --connect jdbc:mysql://localhost:3306/?allowPublicKeyRetrieval=true --username root --password yourPassword1234!

5.7+

bash 复制代码
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P	
password( yourPassword1234!)

上述需要免密登录测试连接数据库列出mysql的所有数据库就需要在./etc/my.cnf加上密码验证跳过验证[mysqld] skip-grant-tables 然后重启mysql服务即可 systemctl restart mysqld

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'master' IDENTIFIED BY 'yourPassword1234!' WITH GRANT OPTION;
FLUSH PRIVILEGES;

然后试试重新连接mysql数据库并列出mysql的所有数据库

bash 复制代码
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P

输入自己密码(yourPassword1234!)即可列出mysql的所有数据库

2. Sqoop常用操作

2.1 数据迁移

确保启动了集群

bash 复制代码
[root@slave2 ~]# 
sqoop import \
>--connect jdbc:mysql://slave2:3306/sqoop_db \
>--username root \
>--password yourPassword1234! \
>--table emp \
>--columns id,name,deg,salary,dept \
>--target-dir /sqoop_demo1 \
>--num-mappers 1



进入mysql切换sqoop_db在emp插入一条数据

sql 复制代码
insert into sqoop_db.emp values ('1209','itcast','java dev','15000','AC');
bash 复制代码
[root@slave2 ~]# sqoop import \
> --connect jdbc:mysql://slave2:3306/sqoop_db \
> --username root \
> --password yourPassword1234! \
> --target-dir /sqoop \
>--table emp \
>--columns id,name,deg,salary,dept \
> --num-mappers 1 \
> --incremental append \
> --check-column id \
> --last-value 1205


2.2使用sqoop的where语句

bash 复制代码
sqoop import --connect jdbc:mysql://slave2:3306/sqoop_db --username root --password yourPassword1234! --table emp_add --columns id,hno,street,city --where "city='beijing'" --target-dir /sqoop/city_beijing --num-mappers 1

2.3 sqoop导出

进入mysql切换sqoop_db数据库

创建表

sql 复制代码
create table if not exists sqoop_db.emp_export
            (
               id int(11) not null ,
               name varchar(100) default null,
               deg varchar(100) default null,
               salary int(11) default null,
               dept varchar(10) default null,
               primary key (id)
            );
bash 复制代码
sqoop export --connect jdbc:mysql://slave2:3306/sqoop_db --username root --password yourPassword1234! --table emp_export --export-dir /sqoop/part-m-00000 --num-mappers 1 --columns "id,name,deg,salary,dept"
相关推荐
conkl1 小时前
在 CentOS 系统上实现定时执行 Python 邮件发送任务完整指南
linux·运维·开发语言·python·centos·mail·邮箱
江輕木1 小时前
VMware安装配置CentOS 7
linux·运维·centos
yumgpkpm2 小时前
CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)POC报告
大数据·hive·hadoop·python·elasticsearch·hbase·cloudera
路弥行至5 小时前
C语言入门教程 | 第七讲:函数和程序结构完全指南
c语言·经验分享·笔记·其他·算法·课程设计·入门教程
凌然先生6 小时前
12.如何利用ArcGIS进行基本的空间数据格式转换
经验分享·笔记·arcgis·电脑
学工科的皮皮志^_^6 小时前
PCIE学习
经验分享·嵌入式硬件·学习·fpga开发·pcie
半梦半醒*8 小时前
zookeeper + kafka
linux·分布式·zookeeper·kafka·centos·运维开发
jingwang-cs9 小时前
船舶终端数据采集与监管平台一体化方案
经验分享
森诺Alyson9 小时前
前沿技术借鉴研讨-2025.10.28(超声数据)
论文阅读·经验分享·深度学习·论文笔记·论文讨论
探索宇宙真理.10 小时前
Vite信息泄露 | CVE-2025-46565 复现&研究
经验分享·安全漏洞