概述
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互传数据实例简单运维总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复