热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用Sqoop2在Mysql和hadoop导入导出数据

最近在做用户刷赞排除逻辑的时候,需要结合nginx的access.log日志和Mysql中的部分记录联合查询才能做到,之前的nginx日志一直存放在hadoop中,mysql的数据则没有导入到hadoop中去过,要搞定这事还得将Mysql中的一些表导入到HDFS中去才成。虽说Sqoop的大名早

最近在做用户刷赞排除逻辑的时候,需要结合nginx的access.log日志和Mysql中的部分记录联合查询才能做到,之前的nginx日志一直存放在hadoop中,mysql的数据则没有导入到hadoop中去过,要搞定这事还得将Mysql中的一些表导入到HDFS中去才成。虽说Sqoop的大名早

最近在做用户刷赞排除逻辑的时候,需要结合nginx的access.log日志和Mysql中的部分记录联合查询才能做到,之前的nginx日志一直存放在hadoop中,mysql的数据则没有导入到hadoop中去过,要搞定这事还得将Mysql中的一些表导入到HDFS中去才成。虽说Sqoop的大名早已经闻名遐迩了,但是到底没有在生产环境中试用过,这回倒是一个很好的实践机会。

线上跑的Hadoop版本为社区版本的hadoop2.2.0,一看Sqoop2最新版本是sqoop-1.99.5-bin-hadoop200.tar.gz,但是它是依赖的hadoop2.6.0这个版本,下载下来后就心里打鼓,担心版本匹配不上,试了一把后果不其然,不行,遂下载Sqoop2的1.99.5源代码下来把依赖修改为Hadoop2.2.0,编译倒是能过,但是最终运行的时候还是在报sqlite相关的错误,一时没有解决不掉,就考虑用老的版本来试一试了,sqoop-1.99.3-bin-hadoop100.tar.gz这个版本我是试用过的,但是该版本功能过于简单了,而1.99.4这个版本的功能刚刚好满足我的要求了,就下载sqoop-1.99.4-bin-hadoop200.tar.gz 这个来试一试。

(1)安装环境

操作系统:Linux(centos6.5)

JDK版本:1.7.0_45

Hadoop版本:hadoop2.2.0

Sqoop2版本:sqoop-1.99.4-bin-hadoop200

hadoop安装目录:/home/hadoop/hadoop-2.2.0

Sqoop2安装目录:/home/hadoop/sqoop-1.99.4-bin-hadoop200

Hadoop和Sqoop都是同一个用户hadoop下面,hadoop用户的的家目录:/home/hadoop


(2)修改Sqoop2的配置文件

1、首先修改配置文件/home/hadoop/sqoop-1.99.4-bin-hadoop200/server/conf/sqoop.properties指定hadoop的配置文件所属路径。

将原来的如下配置:

# Hadoop configuration directory
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/etc/hadoop/conf/
修改为:

# Hadoop configuration directory
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/hadoop/hadoop-2.2.0/etc/hadoop/

2、修改配置文件/home/hadoop/sqoop-1.99.4-bin-hadoop200/server/conf/catalina.properties。

这里即时把/home/hadoop/hadoop-2.2.0/share/hadoop下全部的*.jar包加入到sqoop2的类路径中去。

将原来的如下配置:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/usr/lib/hadoop/*.jar,/usr/lib/hadoop/lib/*.jar,/usr/lib/hadoop-hdfs/*.jar,/usr/lib/hadoop-hdfs/lib/*.jar,/usr/lib/hadoop-mapreduce/*.jar,/usr/lib/hadoop-mapreduce/lib/*.jar,/usr/lib/hadoop-yarn/*.jar,/usr/lib/hadoop-yarn/lib/*.jar

修改为:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/common/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/common/lib/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/hdfs/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/hdfs/lib/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/mapreduce/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/mapreduce/lib/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/tools/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/tools/lib/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/yarn/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/yarn/lib/*.jar,/home/hadoop/hadoop-2.2.0/share/hadoop/httpfs/tomcat/lib/*.jar

(3)修改环境变量

由于sqoop2和Hadoop的用户都为hadoop,并且hadoop用户的home目录为:/home/hadoop,所以直接修改/home/hadoop/.bash_profile在文件末尾追加如下内容即可:

export SQOOP_HOME=/home/hadoop/sqoop-1.99.4-bin-hadoop200  
export PATH=$SQOOP_HOME/bin:$PATH  
export CATALINA_HOME=$SQOOP_HOME/server  
export LOGDIR=$SQOOP_HOME/logs

当然完成上述修改后需要在hadoop用户下执行命令来让配置即可生效:

source  /home/hadoop/.bash_profile

(4)小试sqoop2

至此可以来试一试sqoop2可用不可用,进入目录/home/hadoop/sqoop-1.99.4-bin-hadoop200/bin下执行下述命令体验下。

启动sqoop2的服务:./sqoop2-server start

进入Client的shell环境:./sqoop2-shell

Client连接到服务端:set server --host 127.0.0.1 --port 12000 --webapp sqoop

其它建立link、job可以参考:

http://sqoop.apache.org/docs/1.99.5/CommandLineClient.html:


SQOOP2不知道何故,我死活找不到从mysql导出数据到HDFS的时候,怎么去指定字段的分隔符号,求助百度、谷歌、官网都没有用!悲剧了,所以我不得不另谋出路,虽说此时此刻可以去看看Sqoop2的源代码,看看是否有地方设置分隔符号,但是最快速的办法莫过于试用另外的版本,比如1.4.5,肯定是可以的,否则SQOOP也不能这么有名了。

且看我试用Sqoop1.4.5的经历,期间也不是一帆风顺的!


推荐阅读
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • PHP函数实现分页含文本分页和数字分页【PHP】
    后端开发|php教程PHP,分页后端开发-php教程最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。影视网源码带充值系统,vscode配置根 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • 11月26日,由中国计算机协会(CCF)主办,CCF大数据专家委员会协办,CSDN承办的Hadoop与大数据技术大会(Hadoop&BigDataTechnology ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
author-avatar
醣荳_448
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有