我是靠谱客的博主 舒服铃铛,最近开发中收集的这篇文章主要介绍sqoop2(1.99.4)的使用和简单运维sqoop安装sqoop-shell熟悉MYSQL与HDFS互传数据实例简单运维总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

sqoop安装

见文:sqoop2(1.99.4)的安装

sqoop-shell熟悉

启动sqoop server服务

bin/sqoop.sh server start

进入sqoop-shell

bin/sqoop2-shell

配置客户端使用服务

sqoop:000>set server --host [your hostname] --port 12000 --webapp sqoop

help可以查看可以执行的命令

sqoop:000>help

这里写图片描述

例如:查看版本号

sqoop:000>show version --all

这里写图片描述

例如:查看连接器

sqoop:000> show connector

这里写图片描述

还有查看任务、查看任务细节等等

MYSQL与HDFS互传数据实例

mysql version:5.6.38 MySQL Community Server
hadoop version:hadoop-2.6.0

任务前准备工作

创建MYSQL数据库,名为“sqoop”

mysql> create database sqoop;

授权数据库“sqoop”的操作权限给root

mysql> grant all privileges on sqoop.* to root;

更新权限信息

mysql> flush privileges;

建表,名为“test”并添加数据,为了方便我就直接用工具Navicat for mysql做
这里写图片描述
这里写图片描述

进入spark-shell,并配置好客户端使用服务(见上文)

建立HDFS连接

sqoop:000> create link --cid 1

这里写图片描述
建立JDBC连接

sqoop:000> create link --cid 2

这里写图片描述

MYSQL -> HDFS

创建任务

sqoop:000> create job -f 7 -t 6

这里写图片描述

*解释一下:
- -f代表from、-t代表to,实际数字根据自己生成的ID填写
- Schema name指的是数据库名字,Table name指的是表名
- Partition column name其实是sqoop工作的机制,它可以根据参数对数据进行分片并行化处理,所以一般填写不重复且自增的值,如id
- format就是一些指定的格式啦
- Output directory字面意思,输出的地方*

开始任务

sqoop:000> start job --jid 15

这里写图片描述

查看任务详细进度

sqoop:000> status job --jid 15

我这里发生错误
这里写图片描述
一脸懵逼,写一条命令看详细信息

sqoop:000> set option --name verbose --value true

再去查看任务详细进度
这里写图片描述
还是一脸懵逼
经过多次试验,操作几次总会出这样的意外,不知道是否跟我的集群有关系,那这里先不管啦

查看HDFS中是否已导入MYSQL中的数据
这里写图片描述
成功导出

HDFS->MYSQL

清空mysql数据库“sqoop”中表“test”数据
这里写图片描述

创建任务

sqoop:000> create job -f 6 -t 7

这里写图片描述

执行任务

sqoop:000> start job --jid 16

这里写图片描述
查看任务状态

sqoop:000> status job --jid 16

这里写图片描述
查看MYSQL内情况

mysql> select * from test;

这里写图片描述
任务成功

简单运维

Error

命令正确却发生错误,例如
这里写图片描述

查看详细信息

sqoop:000> set option --name verbose --value true

找原因
这里写图片描述

通过web端19888端口查看任务状况

在mapred-site.xml配置文件中添加

<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>CMaster:19888</value>
</property>
</configuration>

在namenode上启动

sbin/mr-jobhistory-daemon.sh start historyserversbin

打开浏览器,输入namenode主机ip以及19888端口
这里写图片描述
贴一个我曾经遇到的错误以及相应的查看方法
这里写图片描述
这里写图片描述
这里写图片描述
最终发现是源数据中某一列的时间格式出了问题,解决后就导入成功了

写脚本执行sqoop命令

创建文件,命名后缀为.sqoop,例如

vi script.sqoop

编辑文本
这里写图片描述
执行命令

sqoop2-shell /home/grid/script/script.sqoop

总结

这个是我上个月自学的一些内容,所以可能有些地方不太记得了。当时是为了找出解决某个实际需求的方法,所以也是学得不太透彻,之后有空的时候再深入学习吧。以后关于sqoop的更新可能还要学习的是基于时间的增量导入、定时执行等…

最后

以上就是舒服铃铛为你收集整理的sqoop2(1.99.4)的使用和简单运维sqoop安装sqoop-shell熟悉MYSQL与HDFS互传数据实例简单运维总结的全部内容,希望文章能够帮你解决sqoop2(1.99.4)的使用和简单运维sqoop安装sqoop-shell熟悉MYSQL与HDFS互传数据实例简单运维总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部