Sqoop安装使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

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的字段。

相关文章
|
9月前
|
机器学习/深度学习 人工智能 算法
基于强化学习的专家优化系统
基于强化学习的专家优化系统
587 24
|
12月前
|
存储 运维 分布式数据库
1T 数据到底有多大?
本文探讨了1TB数据量的实际意义,通过对比日常业务量和数据库处理能力,揭示了1TB数据的庞大。文中指出,虽然一些机构拥有PB级别的数据,但这更多是存储需求而非计算需求。文章最后强调,优化TB级数据处理效率,如将几小时的处理时间缩短至几分钟,对于大多数应用场景来说更为实际和重要。
|
存储 小程序 JavaScript
|
数据采集 数据可视化 大数据
处理大数据:Python 与数据库的结合
在处理大数据的领域中,Python 凭借其强大的数据处理和分析能力,成为了与数据库结合的理想选择。Python 提供了丰富的数据库接口和工具,可以与各种主流的关系型数据库和 NoSQL 数据库进行高效交互。本文将探讨 Python 在处理大数据方面与数据库结合的一些关键技术和应用。
|
缓存 Windows
sourcetree打开就闪退
sourcetree打开就闪退
289 0
|
弹性计算 Cloud Native 分布式数据库
OceanBase携手天阳科技推出新一代信用卡核心系统联合解决方案,为信用卡业务稳健增长提供创新活力与数据动力
1985 年,中国银行发行我国第一张人民币信用卡。经过 30 余年的发展,信用卡已经从少数精英才能持有向大众普及,据央行数据显示,截至 2022 年一季度末,我国人均持有信用卡和借贷合一卡 0.57 张。
520 0
OceanBase携手天阳科技推出新一代信用卡核心系统联合解决方案,为信用卡业务稳健增长提供创新活力与数据动力
|
数据挖掘 atlas 数据库
单细胞工具箱|singleR-单细胞类型自动注释
单细胞工具箱|singleR-单细胞类型自动注释
486 0
|
存储 自然语言处理 算法
行程编码与词典编码 | 学习笔记
快速学习行程编码与词典编码,介绍了行程编码与词典编码系统机制, 以及在实际应用过程中如何使用。
行程编码与词典编码 | 学习笔记
|
监控 Java 数据安全/隐私保护
ZooKeeper监控工具(六)
之前说了那么多配置信息,具体做的怎么样,还需要真正的获取ZooKeeper的运行时信息才行。这里介绍ZooKeeper的监控。 与文无关 有如下方式: 使用内置的四字命令来获取健康状态信息 使用JMX查看运行状态 使用Exhibitor 使用Sass 四字命令 最简单的监控方式就是使用ZooKeeper的四字命令,你可以直接通过telnet或者nc命令查看状态。