本来的命令是sqooop list-databases --connect jdbc:mysql://localhost(或者127.0.0.1):3306
上网查了很多,既不是MySQL驱动问题也不是配置问题
应该是自己IP地址问题
修改为本地的IP地址192.168.10.1成功输出
附带sqoop的安装步骤以及导出步骤
# 安装
1:解压tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
2:重命名${SQOOP_HOME}/conf/sqoop-env-template.sh 为sqoop-env.sh
3:只要/etc/profile中配置的有HADOOP_HOME,sqoop就可以找到hadoop
4:建议配置SQOOP的环境变量
vi /etc/profile
export SQOOP_HOME=/data/soft/sqoop-1.4.7.bin__hadoop-2.6.0
在PATH环境变量中增加$SQOOP_HOME/bin
5:增加mysql8驱动jar包,添加到SQOOP_HOME的lib目录下
mysql-connector-java-8.0.16.jar
6:开放mysql远程访问权限【开放权限以后集群中的机器才可以连接windows上的mysql服务】
USE mysql;
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
7:注意:使用hadoop-3.2的版本的时候,需要在SQOOP_HOME的lib目录下增加common-lang.jar
commons-lang-2.6.jar
8:在mysql中创建数据库,名称为data,创建表top10
CREATE DATABASE data DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci;
USE data;
CREATE TABLE top10 (
dt date,
uid varchar(255),
length bigint(20)
);
# 使用sqoop将hdfs中指定目录的数据导出到mysql的表中
sqoop export \
--connect jdbc:mysql://192.168.10.1:3306/data?serverTimezone=UTC \
--username root \
--password admin \
--table top10 \
--export-dir /res/videoinfojobtop10/20211029 \
--input-fields-terminated-by "\t"