使用sqoop操作HDFS与MySQL之间的数据互传

一,数据从HDFS中导出至MySQL中

1)开启Hadoop、mysql进程

bash 复制代码
start-all.sh

/etc/init.d/mysqld start

/etc/init.d/mysqld status

2)将学生数据stu_data.csv传到HDFS的/local_student目录下

bash 复制代码
在hdfs中创建目录
hdfs dfs -mkdir /local_student
上传自定义的本地数据
hdfs dfs -put /root/lab/data/stu_data.csv /local_student/

注意:若出现以下错误:mkdir: Cannot create directory /student. Name node is in safe mode.

解决方案:hadoop dfsadmin -safemode leave

3)运行MySQL,创建数据库student_data,创建hdfs_stu_score_mysql表。

进入MySQL:mysql -uroot -p123456(-u表示用户名,-pbiaosh)

sql 复制代码
create database student_data;

show databases;

use student_data;

create table hdfs_stu_score_mysql(

id int not null primary key,

name varchar(255),

age int,

score int);

退出客户端:

exit;

4)通过Sqoop,将HDFS上的数据导出到MySQL的hdfs_stu_score_mysql表中,具体命令如下:

bash 复制代码
sqoop export \

--connect jdbc:mysql://127.0.0.1:3306/student_data \

--username root \

--password 123456 \

--table hdfs_stu_score_mysql \
//--m 1 表示reduce数量定义为1个
--m 1 \

--export-dir /local_student/ \
//文件以制表符为分割符
--input-fields-terminated-by '\t' \

--columns="id,name,age,score"

5)MySQL中查询hdfs_stu_score_mysql表中数据

sql 复制代码
use student_data;

select * from hdfs_stu_score_mysql;

二,数据从MySQL中导入至HDFS中

1)在MySQL中筛选分数在85分(包括85分)以上的学生信息

sql 复制代码
# 进入MySQL客户端

mysql -uroot -p123456

use student_data;

# MySQL中建表

create table mysql_stu_top(

id int not null primary key,

name varchar(255),

age int,

score int

);

# 插入数据到mysql_stu_top表中:

insert into mysql_stu_top select * from hdfs_stu_score_mysql where score>=85;

# 查看结果

select * from mysql_stu_top;

# 退出客户端:

exit;

2)将MySQL中的mysql_stu_top表中数据导入到HDFS

bash 复制代码
sqoop import \

--connect jdbc:mysql://127.0.0.1:3306/student_data \

--username root \

--password 123456 \

--table mysql_stu_top \

--m 1 \

--target-dir /student/mysql_stu_top_hdfs

3)查看导入至HDFS中的数据

bash 复制代码
hdfs dfs -cat /student/mysql_stu_top_hdfs/part-m-00000
相关推荐
冰暮流星2 小时前
mysql之外键约束
数据库·mysql
betazhou3 小时前
mysql shell8.4.10+mysql 8.4.10搭建MySQL replicaset主从
数据库·mysql·ffmpeg·replicaset·mysql shell
2601_962065255 小时前
2.启动mysql容器
java·数据库·mysql
Omics Pro6 小时前
整合多组学分析+生物医学发现!对话式多智能体AI
数据库·人工智能·mysql·机器学习·自然语言处理
firstacui7 小时前
Mysql调优
android·mysql·adb
小王C语言7 小时前
MySQL 视图:视图是什么,视图和基表之间的关系
数据库·mysql
程序员-Benothing7 小时前
什么是 MySQL 的主从同步机制?它是如何实现的?
android·数据库·mysql
醉颜凉16 小时前
KingbaseES日期格式化:MySQL date_format函数的迁移指南
mysql·date_format·kingbasees·数据库兼容·函数迁移
醉颜凉16 小时前
MySQL 8 忘记 root 密码?这两种方法帮你轻松解决
数据库·mysql·adb
刃神太酷啦16 小时前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb