大数据开发之sqoop----简单认识一下sqoop

在大数据领域里面我们一直都是使用Hadoop来处理和存储数据的,但是有的时候我们需要将处理完的数据返回给前端UI来展示给我们的用户,但是如果让前端直接来访问我们的hdfs来拉取数据的话,这效率真的不敢想象。所以我们需要将我用Hadoop/Spark处理完的数据重新放置回RBDMS里面去,那么怎么将HDFS上面的数据传输回RBDMS上面呢?难道每次都先get到本地然后再写入数据库里面?这个时候肯定有人想到封装一个框架来完成这个任务,我们只需要定义好输入和输出的接口就好了。这个框架就是sqoop。

sqoop也是apache上的一个顶级项目,现在的sqoop是分成了两个版本的,sqoop1.x和sqoop2.x,而我们生产环境当中还是以sqoop1.x为主,因为sqoop1.x和sqoop2.x是完全不兼容的,或者说它两不是一样东西。

sqoop具体来讲的话就是一个Hadoop和关系型数据库之间的一个桥梁,从代码面来将就是一个mr jar包,但是在这个jar包里面只有map端而没有reduce端,这个因为sqoop只是用来传输数据的,它没有执行任何的计算和聚合。同时sqoop是以Hadoop为参照系的,这里我曾经被面试过,面试官为输出端是什么到什么?输入端?因为是以Hadoop为参照系所以输入是指从关系型数据库到HDFS,而输出端是指从HDFS到关系型数据库。

sqoop安装:

1,下载sqoop-1.4.6-cdh5.7.0.tar.gz

2,解压到你的指定目录

3,配置环境变量

4,配置文件

我们要配置的文件是sqoop-env.sh这个,但是在conf目录里面是没有sqoop-env.sh的,只有sqoop-env-template.sh这个模版文件,我需要cp sqoop-env-template.sh sqoop-env.sh,然后在sqoop-env.sh里面修改参数。

现在我们来看下里面要修改写什么参数

就是HADOOP_COMMON_HOME 和 HADOOP_MAPRED_HOME 这两个参数,都是赋值你的HADOOP_HOME路径,以及一个HIVE_HOME参数是赋值你的hive路径。

好了,现在我们已经把sqoop配好了,可是怎么操作呢?我们先看下sqoop下的bin目录里有什么?

一堆我们不懂的东西,但是里面的sqoop这个命令总是知道的吧,我们使用命令帮助来看下。

usage提醒我们使用的方法是sqoop后面跟竖着排列的命令,然后即使一些参数。通过解释我们知道import和export是导入导出的命令,list-databases和list-tables是列出关系型数据当中有什么数据库和表。

我们先以list-databases为例看看怎么使用:

好多参数哦,既然我们要查看一个数据库,那么我们至少要有这个数据库的url吧,还有登陆账号和密码吧,--connect --username --password不就要你输入吗?

这样就可以看到我们MySQL里面的数据啦,如果是查看某个数据库里的表的话;

既然查看是这样的话,那么导入导出也是使用这个种方法吧。

我们尝试导入一个张表到HDFS上面去,命令如下:

sqoop import --connect url --username xxx  --password  xxx  --table xxx 这条命令是在只导入一个表的时候才有用,有的时候我们可能要导入多个表就使用这样的命令 sqoop import --connect url --username xxx  --password  xxx  -e ‘select-statement’ ,-e参数后面接你的SQL语句,同时添加and $CONDITION在SQL语句后面,这个SQL和and $CONDITION用单引号括起来。

其他的参数,你们就自己慢慢了解吧。

导出表也是一样的,只是要先创建好表结构在数据库里,当导出时指定清楚就好了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值