Sqoop的安装和配置,Sqoop的数据导入导出,MySQL对hdfs数据的操作

sqoop的安装基础是hive和mysql,没有安装好的同学建议去看一看博主的这一篇文章

Hive的部署,远程模式搭建,centos换源,linux上下载mysql。_hive-4.0.1-CSDN博客

好的那么接下来我们开始表演,由于hive是当时在hadoop03上安装的,所以本次的操作,只要没有特别提出就是在hadoop03执行的。

接下来给大家准备好了压缩包,当然也可以自己去官网下载。

------------------

通过网盘分享的文件:sqoop.zip
链接: https://pan.baidu.com/s/1sJInaXbUgUS8alHt_gwqGQ 提取码: d58v 
--来自百度网盘超级会员v4的分享

--------------------------

压缩包是表稳定的Sqoop-1.47版的,有需要其他版本下载的可以去官网下。

看到开头,我们需要做什么!!!

三秒抢答

0!

1!

2!

3!

是的我们需要先启动集群。

首先切换到自己hadoop的sbin目录,以启动集群。

cd /export/servers/hadoop/sbin

然后使用一键启动命令,在三台虚拟机上开始搭建集群。

start-all.sh

启动完成之后,使用jps,看一下自己的进程们显示的全面不全面。

发现叫全面之后,我们切换到hadoop03的虚拟机,输入下面的命令启动hadoop03上面,启动一下我们配置的MetaStore服务。

hive --service metastore

启动完MetaStore服务之后,我们再双击一下hadoop03,开启下一个窗口。

启动HiveServers2

hive --servece hiveserver2

启动完成之后,无需理会他们,开始我们一切顺利,每次都没有报错,一次就可以执行成功的操作。

小小小小建议,可以单独开一个给sql用的窗口。后面就不用反复退出了。

sqoop的安装配置

好的接下来切换到software目录

cd /export/software

切换好了之后,我们输入rz上传一下我们的压缩包

上传完成之后,我们进行一个解压缩

tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /export/servers/

解压缩完成之后,切换到servers目录

cd /export/servers

切换完成之后,我们进行一个重命名

mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

重命名完成之后,我们切换到sqoop目录里

cd sqoop/conf

切换到conf离职后,复制一下环境文件。

cp sqoop-env-template.sh sqoop-env.sh

复制完成之后,我们切换到sqoop-env.sh文件里面,输入

vi sqoop-env.sh

然后输入下面的内容

export HADOOP_COMMON_HOME=/export/servers/hadoop
export HADOOP_MAPRED_HOME=/export/servers/hadoop
export HIVE_HOME=/export/servers/hive

输入完成之后,esc冒号保存退出

那么接下来我们就可以开始开心的配置一下sqoop的环境变量了。

vi /etc/profile

输入

export SQOOP_HOME=/export/servers/sqoop
export PATH=$SQOOP_HOME/bin:$PATH

配置完成之后,还需要输入

source /etc/profile

好的那么接下来我们上传一下jar包,和自己的数据库关联起来。

切换到sqoop的lib目录下

cd /export/servers/sqoop/lib

上传一下mysql的关联jar包

那么也给大家准备好了

-----这里放一张jar包图片---------------------------------

好的上传完成之后,我们再上传一个sqoop的jar包

就是那个lang阿巴阿巴的包,

--------------这里放一张lang包的图片--------------

好的上传并且配置成功之后,我们就可以开始开心测试一下sqoop了

sqoop list-databases --connect jdbc:mysql://localhost:3306/?allowPublicKeyRetrieval=true --username root --password Itcast@2023

执行完成之后,就是下面这个样子

诶!!!!

是不是报错了,是不是说没有hbase

没有关系

cd /export/servers/sqoop/bin

输入

vim configure-sqoop

然后!按esc

:set number

这个是显示行号

之后我们查找一下

/Where to find the main Sqoop jar

后注释掉从

##Moved to be a runtime check in sqoop

# Where to find the main Sqoop jar

之间与HBase、HCatalog 和Accumulo以及Zookeeper相关的内容

我们来到文章的末尾

注释一下

修改完成之后,我们就可以开心的

sqoop list-databases --connect jdbc:mysql://localhost:3306/?allowPublicKeyRetrieval=true --username root --password Itcast@2023

执行命令,连接成功。

sqoop数据的导入

再开始导入之前,

我们需要建立一个sql表,自己创建也行,这个文件在压缩包里也给大家准备好了。

(在物理机上创建完之后上传就可以)

名称:

sqoop_db.sql

下面是文件内容

DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
  `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`)
);
INSERT INTO `emp` VALUES ('1201','xiaozhang','manager','50000','TP');
INSERT INTO `emp` VALUES ('1202','xiaosan','Proof reader','50000','TP');
INSERT INTO `emp` VALUES ('1203','xiaosi','php dev','30000','AC');
INSERT INTO `emp` VALUES ('1204','xiaowu','php dev','30000','AC');
INSERT INTO `emp` VALUES ('1205','xiaoer','admin','20000','TP');
DROP TABLE IF EXISTS `emp_add`;
CREATE TABLE `emp_add` (
  `id` int(11) NOT NULL,
  `hno` varchar(100) DEFAULT NULL,
  `street` varchar(100) DEFAULT NULL,
  `city` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
INSERT INTO `emp_add` VALUES ('1201','288A','guangminglu','guangzhou');
INSERT INTO `emp_add` VALUES ('1202','108I','chenggonglu','beijing');
INSERT INTO `emp_add` VALUES ('1203','144Z','dadaolu','shenzhen');
INSERT INTO `emp_add` VALUES ('1204','78B','xingfulu','beijing');
INSERT INTO `emp_add` VALUES ('1205','720X','wenxinlu','beijing');
DROP TABLE IF EXISTS `emp_conn`;
CREATE TABLE `emp_conn` (
  `id` int(100) NOT NULL,
  `phno` varchar(100) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
INSERT INTO `emp_conn` VALUES ('1201','2356742','11@tp.com');
INSERT INTO `emp_conn` VALUES ('1202','1661663','12@tp.com');
INSERT INTO `emp_conn` VALUES ('1203','8887776','13@ac.com');
INSERT INTO `emp_conn` VALUES ('1204','9988774','14@ac.com');
INSERT INTO `emp_conn` VALUES ('1205','1231231','15@tp.com');

好的那么我们保存一下这个表

切换到data目录

cd /export/data

之后,我们输入rz上传一下我们刚才创建的sql表

上传完成之后,我们登录一下数据库

mysql -uroot -pItcast@2023

(-p后面是大家自己的密码,根据自己的实际情况修改哈)

登陆完成之后,我们创建一个数据库

create database sqoop_db;

创建完成之后选择

use sqoop_db;

之后我们就可以执行一下我们

source /export/data/sqoop_db.sql;

执行完成之后,我们查看一下当前表

show tables;

好的那么我们接下来开启一下mysql的远程访问、

开一下!远程!访问!一定要开!

update mysql.user set Host='%' where User='root';

连接完成之后,记得刷新一下链接,不然下面包失败的。

FLUSH PRIVILEGES;

,得退出数据库

好的么到此为止,接下来我们就可以开始进行下一步了

MySQL导入hdfs
sqoop import \
--connect jdbc:mysql://hadoop03:3306/sqoop_db?allowPublicKeyRetrieval=true \
--username root \
--password Itcast@2023 \
--table emp \
--columns id,name,deg,salary,dept \
--target-dir /sqoop \
--num-mappers 1

执行完上面的代码就可以

执行完成之后,我们就可以打开浏览器来查看一下有么得sqoop文件

出现下面的结果就是操作成功了:

--------------这里放一张浏览器访问成功的照片----------------------

喜欢看浏览器访问的师傅看到这里就可以,那么不喜欢浏览器访问的师傅,同样可以在本地操作

hdfs dfs -cat /sqoop/part-m-00000

查看文件结果。


小tips,小文件用cat查看,大文件用什么查看?

三秒抢答

.

.

.

.

.

对,用more命令查看

好的我们继续


接下来展示下,增量导入

我们再次来到sql数据库

mysql -uroot -p

然后输入密码,输入密码的时候默认是不显示的,不用管,输入就行。

然后我们往sqoop_db里插入一条数据。

insert into sqoop_db.emp values('1206','itcast','java dev','15000','AC');

然后,我们输入下面的命令

sqoop import \
--connect jdbc:mysql://hadoop03:3306/sqoop_db?allowPublicKeyRetrieval=true \
--username root \
--password Itcast@2023 \
--target-dir /sqoop \
--table emp \
--columns id,name,deg,salary,dept \
--num-mappers 1 \
--incremental append \
--check-column id \
--last-value 1205

ok接下来就去hadoop01:9870

查看一下结果文件就ok


MySQL导入hive

接下来的操作是,用sqoop的import命令,把mysql中指定的数据表的数据导入到hive的操作。

因为是hive和mysql的梦幻联动,那么首先我们需要

cp /export/servers/hive/lib/hive-common-4.0.1.jar  /export/servers/sqoop/lib

注意你下载的hive版本不一定是4.0.1哈,建议自己先切换到lib目录,复制一下目录下面的包名。

切换到hive连接一下hive数据库

create database itcast;

创建itcast数据库

好那么接下来,我们就可以开始将mysql中的数据表emp_add导入到hive

sqoop import \
--connect jdbc:mysql://hadoop03:3306/sqoop_db?allowPublicKeyRetrieval=true \
--username root \
--password Itcast@2023 \
--table emp_add \
--columns id,hno,street,city \
--hive-table itcast.emp_add_sqoop \
--create-hive-table \
--hive-import \
--num-mappers 1

第二行是数据库密码,记得换一下自己的密码哈。

这里的小提示,倒数第四行,的那个itcast,是个数据库哈,在hive里创建,如果没有这个数据,就自己创建一个。


之后再上去执行就可以了

ok接下来我们连接一下hive

直接在命令行输入hive

select * from itcast.emp_add_sqoop;

就可以查看emp_add_sqoop数据了。

MySQL过滤导入hdfs,和选择条件差不多

1、where命令

下面我们通过命令

sqoop import \
--connect jdbc:mysql://hadoop03:3306/sqoop_db?allowPublicKeyRetrieval=true \
--username root \
--password Itcast@2023 \
--table emp_add \
--columns id,hno,street,city \
--where "city = 'beijing'" \
--target-dir /sqoop/city_beijing \
--num-mappers 1
​
​

ok接下来我们在本地查看一下

hdfs dfs -cat /sqoop/city_beijing/part-m-00000

就会输出有关北京信息的地址了。

2、query命令

好的那么下一步,我们查找一下mysql在数据表emp的id,name和deg数据,并且过滤字段id<1203的数据。

sqoop import \
--connect jdbc:mysql://hadoop03:3306/sqoop_db?allowPublicKeyRetrieval=true \
--username root \
--password Itcast@2023 \
--target-dir /sqoop/id_1203 \
--query 'select id,name,deg from emp where id > 1203 and $CONDITIONS' \
--num-mappers 1
​

上面的命令执行完成之后,,在本地查看一下

hdfs dfs -cat /sqoop/id_1203/part-m-00000

查看下文件的数据

sqoop数据的导出

首先登录到你的mysql

三秒抢答输入命令

*

*

*

*

*

mysql -uroot -pItcast@2023

输入密码

接下来呢

我们选择sqoop_db数据库

use sqoop_db

Sqoop数据导出-在MySQL创建表emp_export

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)
);

ok然后quit推出数据库

sqoop export \
--connect jdbc:mysql://hadoop03:3306/sqoop_db?allowPublicKeyRetrieval=true  \
--username root \
--password Itcast@2023 \
--columns id,name,deg,salary,dept \
--table emp_export \
--export-dir /sqoop/part-m-00000 \
--num-mappers 1

然后我们再次登录数据库。

select * from sqoop_db.emp_export;

就可以查看表的内容了。

那么本次的教学就到这里,大家如果有什么疑问可以在评论区留言或者私信博主,看到会给大家解释~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/925719.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

医疗废物检测

3809总图像数 数据集分割 训练组80&#xff05; 3030图片 有效集20&#xff05; 779图片 测试集&#xff05; 0图片 标签 预处理 自动定向&#xff1a; 已应用 调整大小&#xff1a; 拉伸至 640x640 增强 未应用任何增强。 注射器 手术刀 输液管 医用手套 医用口罩 血渍 数据集…

音视频流媒体直播/点播系统EasyDSS互联网视频云平台介绍

随着互联网技术的飞速发展&#xff0c;音视频流媒体直播已成为现代社会信息传递与娱乐消费的重要组成部分。在这样的背景下&#xff0c;EasyDSS互联网视频云平台应运而生&#xff0c;它以高效、稳定、便捷的特性&#xff0c;为音视频流媒体直播领域带来了全新的解决方案。 1、产…

4. STM32_定时器

概述 什么是定时器&#xff1a; 定时器核心就是计数器&#xff0c;是使用精准的时基&#xff0c;通过硬件的方式&#xff0c;实现定时功能的器件。 定时器的工作原理&#xff1a; 主频时钟CLK通过PSC进行分频后产生定时器时钟TIM CLK&#xff0c;计数器CNT根据TIM CLK的频率…

BEPUphysicsint定点数3D物理引擎介绍

原文&#xff1a;BEPUphysicsint定点数3D物理引擎介绍 - 哔哩哔哩 帧同步的游戏中如果用物理引擎&#xff0c;为了保证不同设备上的结果一致,需要采用定点数来计算迭代游戏过程中的物理运算。也就是我们通常说的定点数物理引擎(确定性物理引擎)。本系列教程给大家详细的讲解如…

社群赋能电商:小程序 AI 智能名片与 S2B2C 商城系统的整合与突破

摘要&#xff1a;本文聚焦于社群在电商领域日益凸显的关键地位&#xff0c;深入探讨在社群粉丝经济迅猛发展背景下&#xff0c;小程序 AI 智能名片与 S2B2C 商城系统如何与社群深度融合&#xff0c;助力电商突破传统运营局限&#xff0c;挖掘新增长点。通过分析社群对电商的价值…

Android复习代码1-4章

public class RudioButton extends AppCompatActivity {Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_rudio_button);// 找到RadioGroup和TextView的实例RadioGroup radioGrou…

计算机网络基础(2):网络安全/ 网络通信介质

1. 网络安全威胁 网络安全&#xff1a;目的就是要让网络入侵者进不了网络系统&#xff0c;及时强行攻入网络&#xff0c;也拿不走信息&#xff0c;改不了数据&#xff0c;看不懂信息。 事发后能审查追踪到破坏者&#xff0c;让破坏者跑不掉。 网络威胁来自多方面&#xff1a…

shell(8)until循环以及函数基本创建

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…

联想M7400Pro打印机报无法打印02 关闭电源,然后重新打开。故障检修分析

联想M7400Pro打印机无法打印02可能是由于硬件故障、软件问题、通信故障等引起的。 以下是故障的解决方法: 1、关闭打印机(可尝试多次重新启动打印机)。 2、重新放置碳粉盒组件。 3、检查打印机驱动程序是否已正确安装。 4、检查打印机的设置,确保已选择正确的打印模式…

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中&#xff0c;DevOps&#xff08;开发运维一体化&#xff09;已经成为提升软件交付效率和质量的关键。而GitLab&#xff0c;作为一个全面的开源DevOps平台&#xff0c;不仅提供了强大的版本控制功能&#xff0c;还集成了持续集成/持续交付(CI/CD)…

arcgis for js点击聚合要素查询其包含的所有要素

功能说明 上一篇讲了实现聚合效果, 但是点击聚合效果无法获取到该聚合点包含的所有点信息 这一篇是对如何实现该功能的案例 实现 各属性说明需要自行去官网查阅 官网案例 聚合API 没空说废话了, 加班到12点,得休息了, 直接运行代码看效果就行, 相关重点和注意事项都在代码注…

代码美学2:MATLAB制作渐变色

效果&#xff1a; %代码美学&#xff1a;MATLAB制作渐变色 % 创建一个10x10的矩阵来表示热力图的数据 data reshape(1:100, [10, 10]);% 创建热力图 figure; imagesc(data);% 设置颜色映射为“cool” colormap(cool);% 在热力图上添加边框 axis on; grid on;% 设置热力图的颜色…

嵌入式 FPGA开发

目录 一、引言 二、当前嵌入式 FPGA 开发的现状 三、嵌入式 FPGA 开发的优势 四、嵌入式 FPGA 的应用领域 1. 通信系统 2. 数字信号处理 3. 视频图像处理 4. 高速接口设计 5. 人工智能 6. IC 设计与 PCB 设计类比 五、嵌入式 FPGA 未来发展趋势 六、结论 一、引言 …

力扣--LCR 145.判断对称二叉树

题目 请设计一个函数判断一棵二叉树是否 轴对称 。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 解释&#xff1a;从图中可看出最后一层的节点不对称。 提示&#xff1a; 0 < 节点个数 < 1000 代码 /** Definition fo…

人工智能之数学基础:欧式距离及在人工智能领域中的应用

本文重点 欧式距离,也称为欧几里得距离,是数学中用于衡量多维空间中两点之间绝对距离的一种基本方法。这一概念最早由古希腊数学家欧几里得提出,并以其名字命名。欧式距离的计算基于勾股定理,即在一个直角三角形中,斜边的平方等于两直角边的平方和。在多维空间中,欧式距…

camunda流程引擎 API 接口介绍

camunda流程引擎 API 接口介绍 与流程引擎交互最常见的方式就是使用 Java API 。其起点是创建一个流程引擎。有了流程引擎&#xff0c;就可以从中获取各种服务因为提供了工作流和流程管理的方法。流程引擎和服务对象是线程安全的&#xff0c;因此可以为整个服务器保存一个全局的…

【娱乐项目】基于批处理脚本与JavaScript渲染视频列表的Web页面

Demo介绍 一个简单的视频播放器应用&#xff0c;其中包含了视频列表和一个视频播放区域。用户可以通过点击视频列表中的项来选择并播放相应的视频&#xff0c;播放器会自动播放每个视频并在播放完毕后切换到下一个视频。本项目旨在通过自动化脚本和动态网页渲染&#xff0c;帮助…

Chili靶机渗透

获取ip&#xff1a; 获取端口号&#xff1a; 可以看到不存在ssh服务了&#xff0c;但是存在ftp和http服务&#xff1a; 扫描一下http服务&#xff1a; 访问网址&#xff1a; 查看源代码只发现一个标题&#xff1a; 扫描一下目录信息&#xff1a; 没有扫描到什么东西&#xff0…

去中心化物理基础设施网络(DePIN):重塑未来的基石

一、引言&#xff1a;DePIN的定义与背景 什么是DePIN&#xff1f; 去中心化物理基础设施网络&#xff08;DePIN&#xff0c;Decentralized Physical Infrastructure Networks&#xff09;是利用区块链和去中心化技术管理、优化和激励物理资源分配的一种新兴模式。与传统集中式…

【Linux】线程同步与互斥

文章目录 1. 线程互斥1.1 进程线程间的互斥相关背景概念1.2 互斥量mutex1.3 相关操作1.4 互斥量实现原理1.5 互斥量的封装 2. 线程同步2.1 条件变量2.2 生产者消费者模型2.3 基于BlockingQueue的生产者消费者模型2.4 信号量2.5 基于环形队列的生产消费模型 3. 线程池3.1 日志3.…