Sqoop安装使用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

1 环境

1、操作系统:CentOS-6.5-x86

2、JDK-1.6.0_45

3、Hadoop-1.2.1

4、Zookeeper-3.4.6

5、sqoop-1.4.5.bin__hadoop-1.0.0

2 搭建前提条件

已经按照Hadoop中“HBase安装”文章,已经搭建起了一个Hbase数据库,并且已经启动。

3 部署步骤

3.1 下载

http://sqoop.apache.org/

3.2 安装

安装目录:/opt

修改操作权限:


sudo  chmod  755  sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz

修改用户权限:
sudo  chown  -R  hadoopusr:hadoop  sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz

解压:
sudo  tar  -zxvf  sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz

更改目录名称:

sudo  mv  mv  sqoop-1.4.5.bin__hadoop-1.0.0  sqoop-1.4.5

3.3 添加环境变量信息

进入/etc/profile:


sudo  vi  /etc/profile

添加:
export  SQOOP_HOME=/opt/sqoop-1.4.5

在“export PATH=”信息后,添加:

:$SQOOP_HOME/bin

保存退出,然后使配置文件生效:

sudo  source

3.4 修改配置文件

进入“/opt/sqoop-1.4.5/conf”目录,修改文件名:


mv  sqoop-env-template.sh  sqoop-env.sh

修改文件信息:

vi  sqoop-env.sh

添加信息:
#Set path to where bin/hadoop is availableexport HADOOP_COMMON_HOME=/opt/hadoop-1.2.1
 

#Set path to where hadoop-*-core.jar is available

export HADOOP_MAPRED_HOME=/opt/hadoop-1.2.1

 

#set the path to where bin/hbase is available

export HBASE_HOME=/opt/hbase-0.98.4

 

#Set the path to where bin/hive is available

#export HIVE_HOME=

 

#Set the path for where zookeper config dir is

export ZOOCFGDIR=/opt/zookeeper-3.4.6

3.5 测试

输入命令“sqoop”,若能出现正常的信息,即为安装成功。

4 连接数据库

这里,造作的都是Mysql数据库中,一个叫test的表。

4.1 添加数据库驱动包

MySql添加:mysql-connector-java-5.1.20-bin.jar

Oracle添加:ojdbc14.jar

slf4j添加:slf4j-api-1.6.4.jar,slf4j-log4j12-1.6.4.jar(从Hbase中找)

4.2 列出MysqL中所有表

连接Mysql数据库,显示所有表:

sqoop  list-databases  –connect   jdbc:mysql://10.5.110.240  -username  lab1107  -password  lab1107

【说明】
sqooplist-tables
–connect   jdbc:mysql://10.5.110.240/test

-username  lab1107

-password  lab1107
#sqoop命令#使用的是显示所有表操作
#告诉jdbc,连接mysql的url为10.5.110.240,使用的是test数据库

#连接mysql的用户名为lab1107

#连接mysql的密码为lab1107

1、以上的命令中后面的##部分是注释,为了说明方便添加,执行的时候需要删掉;另外,命令的所有内容不能换行,只能一行才能执行。

4.3 连接mysql并列出test数据库中的表

sqoop  list-tables  –connect  jdbc:mysql://10.5.110.240/test  -username  lab1107  -password  lab1107

4.4 将mysql数据导入HDFS中

sqoop  import  –connect  jdbc:mysql://10.5.110.240:3306/test  -username  lab1107  -password  lab1107 -table tb_user  -m  1  -target-dir  /user/test

4.5 将Mysql数据导入Hbase中

sqoop  import  –connect jdbc:mysql://10.5.110.240/test  –username  lab1107  –password  lab1107  –table tb_user  –hbase-table  demo_2hbase  –hbase-create-table  –hbase-row-key  uid  –column-family  url

 

【说明】

sqoop  import–connect  jdbc:mysql://10.5.110.240/test
–username  lab1107

–password  lab1107

–table tb_user

–hbase-table  demo_2hbase

–hbase-create-table

–hbase-row-key  uid

–column-family  url
–table: MySql中表名
–hbase-table:Hbase中表明

–hbase-create-table:没有表的话,创建

–hbase-row-key:MySQL中的主键名

–column-family:Hbase中的列族名

4.6 将Oracle数据导入Hbase中

sqoop  import  –connect  jdbc:oracle:thin:@10.5.110.238:1521:big  –username  big   –password  big  –m  1  –table  TD_PRODUCT  –columns  PID,PNAME,RECDATE  –hbase-create-table  –hbase-table  product  –hbase-row-key  PID  –column-family  depinfo

【说明】
sqoop  import–connect  jdbc:oracle:thin:@10.5.110.238:1521:big
–username  big

–password  big

–m  1

–table  TD_PRODUCT

–columns  PID,PNAME,RECDATE

–hbase-create-table

–hbase-table  product

–hbase-row-key  PID

–column-family  depinfo
 连接的数据库:端口:数据库名-m:并行执行sqoop导入程序的map task的数量,在不指定的情况下默认启动4个map,此处指定1个
–hbase-row-key:如果不指定则采用源表的key作为hbase的row key。可以指定一个字段作为row key,或者指定组合行键,当指定组合行键时,用双引号包含多个字段,各字段用逗号分隔

 

注意几个坑:

1.Oracle的表名必须大写(–table CMS_NEWS_0625) ;
2.用户名必须大写字母( –username ZHAOBIAO);
3.组合行键参数中的字段名都必须大写(–hbase-row-key “CREATE_TIME,PUBLISH_TIME,TITLE”);
4.作为组合行键的几个字段都不能有null值,否则会报错,请执行该语句前先确认;
5.sqoop不会导入值为null的字段。

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
分布式计算 Java 关系型数据库
73 sqoop安装
73 sqoop安装
28 2
|
3月前
|
分布式计算 Hadoop 关系型数据库
Sqoop入门指南:安装和配置
Sqoop入门指南:安装和配置
|
4月前
|
关系型数据库 MySQL 分布式数据库
DataX下载安装
DataX下载安装
177 0
|
4月前
|
SQL 分布式计算 关系型数据库
sqoop快速安装
sqoop快速安装
24 0
|
9月前
|
SQL 存储 分布式计算
Hive 3.x的安装部署 - Ubuntu
Hive 3.x的安装部署 - Ubuntu
224 0
|
11月前
|
SQL 分布式计算 关系型数据库
sqoop的安装和使用
sqoop的安装和使用
|
11月前
|
SQL 分布式计算 Java
Hive环境安装
Hive环境安装
108 0
|
分布式计算 Hadoop 分布式数据库
Hbase 安装方法
Hbase 安装方法
|
SQL 分布式计算 Oracle
【Sqoop】(一)Sqoop 概述及安装环境搭建
【Sqoop】(一)Sqoop 概述及安装环境搭建
315 0
【Sqoop】(一)Sqoop 概述及安装环境搭建
|
存储 SQL 分布式计算
Sqoop简介及安装部署
Apache Sqoop是专为Apache Hadoop和结构化数据存储如关系数据库之间的数据转换工具的有效工具。你可以使用Sqoop从外部结构化数据存储的数据导入到Hadoop分布式文件系统或相关系统如Hive和HBase。相反,Sqoop可以用来从Hadoop的数据提取和导出到外部结构化数据存储如关系数据库和企业数据仓库。 Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块。
181 0