博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sqoop2搭建及使用
阅读量:4880 次
发布时间:2019-06-11

本文共 5157 字,大约阅读时间需要 17 分钟。

1. 下载并安装配置Sqoop

【需要的环境:Hadoop,Java】

首先  Hadoop版本2.7.2

20161013

找了篇Sqoop的文章就开撸  结果发现什么1.3,1.9,又有什么Sqoop1,Sqoop2.乱了。

先是使用的1.3,两个多小时,各种失败。发现还有一个与hadoop的版本兼容问题。

 

下午立即开始使用官网的Sqoop2,发现只有1.99.7,先用吧

虽然好了一点,但还是各种问题,一天过去了。。

注意: sqoop1的1.4.x及以下版本是与hadoop-2.6.x以下兼容,sqoop2是与hadoop-2.6.0+兼容,千万不能弄错!

还有,下载的这个压缩包里面都有一个doc文件夹,里面放着文档,因为版本较多且兼容问题严重,所以一定要参照这个文档安装和配置! 

 

20161014 

昨天捣鼓了一天,先是Sqoop1.3,然后用1.99.7.结果各种问题;

今天早上又去官网游荡了一下,发现这个1.99.7还不是正式发行版,不能放到生产环境的,真够郁闷,没办法,打算尝试一下1.99.6吧。

然而 官网已经把1.99.6的安装包去掉了,只能去网上找了一份。试了一下  顺畅了许多。

具体安装配置过程:(sqoop的shell命令是在$SQOOP_HOME/bin目录下)

  1. 下载解压
  2. 配置~/.bashrc,然后执行 source ~/.bashrc 使变更即刻生效
    export PATH=.......:$SQOOP_HOME/bin:$PATH  #将红字部分插入原来的$PATH前面即可export SQOOP_HOME=/home/hadoop/sqoop       #Sqoop根目录export CATALINE_BASE=$SQOOP_HOME/serverexport LOGDIR=$SQOOP_HOME/logs             #log目录  
  3. 配置sqoop server
    1. $SQOOP_HOME/server/conf/catalina.properties文件,修改common.loader属性,引用$HADOOP_HOME/share/hadoop/* 和 */lib
      common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/common/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/common/lib/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/hdfs/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/hdfs/lib/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/mapreduce/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/mapreduce/lib/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/yarn/*.jar,/home/hadoop/hadoop-2.7.2/share/hadoop/yarn/lib/*.jar
    2. $SQOOP_HOME/server/conf/sqoop.properties
      org.apache.sqoop.submission.engine.mapreduce.configuration.directory=$HADOOP_HOME/etc/hadoop  #红字部分要替换成具体的路径,切记!
  4. 修改hadoop配置文件core-site.xml
    hadoop.proxyuser.$SERVER_USER.hosts
    *
    hadoop.proxyuser.$SERVER_USER.groups
    *
  5. 验证sqoop2服务器的配置情况 
    sqoop2-tool verify  #如果提示successful 就可以进行下一步了,否则需要查看错误信息和日志文件

到这里 配置就完成了。 


Sqoop1.996命令

参考:

Show

  • show server --[all,host,port,webapp] #展示服务端信息
  • show option --name verbose  #展示客户端配置
  • show version --[all,client,server,protocol]
  • show connector [--all]
  • show connection [--all,--xid 3]
  • show job [--all,--jid 3]
  • show link [--all, --lid3]

Update

  • update connection --xid 2
  • update job --jid 2
  • update link --lid 3

Delete

  • delete connection --xid 3
  • delete job --jid 1
  • delete link --lid 2

Clone

  • clone connection --xid 2
  • clone job --jid 2
  • clone link --lid 2

Submission

  • start job --jid 2 -s
  • stop job --jid 2
  • status job --jid 2

  


开始数据传输 

 开始之前需要准备几个jar包

①如果数据库是MSSQL的话,需要下载这个SqlServerJDBC驱动 

解压后将lib里面的jar文件拷贝到sqoop安装目录的server/lib下面

②mysql的话,需要下载   

  1. 启动  Sqoop2包含了server和client,所以需要先启动server
  2. sqoop2.sh server start   #服务关闭:sqoop2-server stop 
  3. 以交互模式打开client 
    sqoop2-shell
  4. 配置客户端使用指定的Sqoop server
    set server --host your.host.com --port 12000 --webapp sqoop   #红字部分替换成自己的Sqoop服务器 一般用localhost即可  

 

创建数据库link

JDBC Driver Class: com.microsoft.sqlserver.jdbc.SQLServerDriver  #驱动名称JDBC Connection String: jdbc:sqlserver://192.168.1.212:1433;DatabaseName=Test   #格式与mysql略有出入,并且这是MSSQL2005以上的格式,2000的话 还有些区别Username: saPassword: *************JDBC Connection Properties: There are currently 1 values in the map:protocol = tcpentry#

创建hdfs link与mysql的方式一致

 

创建job与mysql仅仅有一点区别

就是Schema name: dbName.dbo  比mysql多了红字部分

 


Sqoop + MySql + Hadoop(HBase)

创建数据库link

Using Connector generic-jdbc-connector with id 4  Link configuration    JDBC Driver Class: com.mysql.jdbc.Driver    JDBC Connection String: jdbc:mysql://192.168.1.333:3306/someDB    Username: root    Password: 123    JDBC Connection Properties:       protocol = tcp

 

创建hdfs link

Using Connector hdfs-connector with id 3  Link configuration    HDFS URI: hdfs://hdfs nameservice:port/  #使用hadoop配置文件 core-site.xml中fs.defaultFS的值即可    Hadoop conf directory: /home/hadoop/hadoop/etc/hadoop  #hadoop配置文件的路径

 

创建Job

Job with id 1 and name mysql2hdfs (Enabled: true, Created by hadoop at 16-10-17 下午3:56, Updated by hadoop at 16-10-17 下午4:48)  Throttling resources    Extractors: 2    Loaders: 2From link: 1  From database configuration    Schema name: dbName    Table name: targetTableName    Table SQL statement:     Table column names:     Partition column name:     Null value allowed for the partition column:     Boundary query:   Incremental read    Check column:     Last value: To link: 2  To HDFS configuration    Override null value:     Null value:     Output format: TEXT_FILE    Compression format: NONE    Custom compression format:     Output directory: hdfs:/mysqlData/sqoopTableName  #要在hdfs中存放的路径    Append mode:

 

注意事项: 

1.在执行job之前  最好执行命令

set option --name verbose --value true

这样如果执行出现问题,会把详细日志打印出来,一目了然。

2.一个job如果执行成功,在hdfs的指定目录下就会有生成的文件,如果想重新start一遍,需要把生成的文件删除才行

$HADOOP_HOME/bin/hadoop dfs -rm /mysqlData/sqoopTableName/*   #之前在job中设置的hdfs路径

查看生成的文件

$HADOOP_HOME/bin/hadoop dfs -cat /mysqlData/sqoopTableName/*

 

[hadoop@hadoop1 bin]$ ./hadoop dfs -cat /db_data/Cities/*DEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.1,'青岛','0530'2,'济南','0531'[hadoop@hadoop1 bin]$

 

To HBase: 

Sqoop2在1.99.6开始通过KiteConnector的方式在一定程度上支持了HBase的读写 。

 

转载于:https://www.cnblogs.com/TiestoRay/p/5953749.html

你可能感兴趣的文章
【javascript学习——《javascript高级程序设计》笔记】DOM操作
查看>>
高效的SQL语句翻页代码
查看>>
NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
查看>>
linux下Makefile全解(二)
查看>>
XMLHTTP.readyState的五种状态
查看>>
百度外卖 前端面试题
查看>>
record for json formate site
查看>>
查询树形的根节点
查看>>
HDU 1272 小希的迷宫
查看>>
hdu 5412 CRB and Queries(整体二分)
查看>>
CentOS如何安装linux桌面?
查看>>
Speech and Booth Demo in Maker Faire Shenzhen 2018
查看>>
bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
查看>>
bzoj 2281: [Sdoi2011]黑白棋
查看>>
bzoj 4475: [Jsoi2015]子集选取
查看>>
团队开发7
查看>>
java之静态代理与动态代理
查看>>
软件测试2019:第四次作业
查看>>
201571030335 + 小学四则运算练习软件项目报告
查看>>
不用代码就能实现get与post
查看>>