sqoop建表_Sqoop学习之路 (一)

一、概述sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。核心的功能有两个:导入、迁入导出、迁出导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并...
摘要由CSDN通过智能技术生成

一、概述

sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。

核心的功能有两个:

导入、迁入

导出、迁出

导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统

导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。

sqoop:

工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序

hive

工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序

二、工作机制

将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制

三、安装

1、前提概述

将来sqoop在使用的时候有可能会跟那些系统或者组件打交道?

HDFS, MapReduce, YARN, ZooKeeper, Hive, HBase, MySQL

sqoop就是一个工具, 只需要在一个节点上进行安装即可。

补充一点: 如果你的sqoop工具将来要进行hive或者hbase等等的系统和MySQL之间的交互

你安装的SQOOP软件的节点一定要包含以上你要使用的集群或者软件系统的安装包

补充一点: 将来要使用的azakban这个软件 除了会调度 hadoop的任务或者hbase或者hive的任务之外, 还会调度sqoop的任务

azkaban这个软件的安装节点也必须包含以上这些软件系统的客户端/2、

2、软件下载

sqoop版本说明

绝大部分企业所使用的sqoop的版本都是 sqoop1

sqoop-1.4.6 或者 sqoop-1.4.7 它是 sqoop1

sqoop-1.99.4----都是 sqoop2

此处使用sqoop-1.4.6版本sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

3、安装步骤

(1)上传解压缩安装包到指定目录

因为之前hive只是安装在hadoop3机器上,所以sqoop也同样安装在hadoop3机器上

[hadoop@hadoop3 ~]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C apps/

(2)进入到 conf 文件夹,找到 sqoop-env-template.sh,修改其名称为 sqoop-env.sh cd conf

[hadoop@hadoop3 ~]$ cd apps/[hadoop@hadoop3 apps]$ ls

apache-hive-2.3.3-bin hadoop-2.7.5 hbase-1.2.6 sqoop-1.4.6.bin__hadoop-2.0.4-alpha zookeeper-3.4.10[hadoop@hadoop3 apps]$ mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6[hadoop@hadoop3 apps]$cd sqoop-1.4.6/conf/[hadoop@hadoop3 conf]$ ls

oraoop-site-template.xml sqoop-env-template.sh sqoop-site.xml

sqoop-env-template.cmd sqoop-site-template.xml

[hadoop@hadoop3 conf]$ mv sqoop-env-template.sh sqoop-env.sh

(3)修改 sqoop-env.sh

[hadoop@hadoop3 conf]$ vi sqoop-env.sh

export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.7.5

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

export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.7.5

#set the path to where bin/hbase is available

export HBASE_HOME=/home/hadoop/apps/hbase-1.2.6

#Set the path to where bin/hive is available

export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin

#Set the path for where zookeper config dir is

export ZOOCFGDIR=/home/hadoop/apps/zookeeper-3.4.10/conf

为什么在sqoop-env.sh 文件中会要求分别进行 common和mapreduce的配置呢???

在apache的hadoop的安装中;四大组件都是安装在同一个hadoop_home中的

但是在CDH, HDP中, 这些组件都是可选的。

在安装hadoop的时候,可以选择性的只安装HDFS或者YARN,

CDH,HDP在安装hadoop的时候,会把HDFS和MapReduce有可能分别安装在不同的地方。

(4)加入 mysql 驱动包到 sqoop1.4.6/lib 目录下

[hadoop@hadoop3 ~]$ cp mysql-connector-java-5.1.40-bin.jar apps/sqoop-1.4.6/lib/

(5)配置系统环境变量

[hadoop@hadoop3 ~]$ vi .bashrc

#Sqoop

export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6

export PATH=$PATH:$SQOOP_HOME/bin

保存退出使其立即生效

[hadoop@hadoop3 ~]$ source .bashrc

(6)验证安装是否成功

sqoop-version 或者 sqoop version

四、Sqoop的基本命令

基本操作

首先,我们可以使用 sqoop help 来查看,sqoop 支持哪些命令

[hadoop@hadoop3 ~]$ sqoop help

Warning: /home/hadoop/apps/sqoop-1.4.6/../hcatalog does not exist! HCatalog jobs will fail.

Please set $HCAT_HOME to the root of your HCatalog installation.

Warning: /home/hadoop/apps/sqoop-1.4.6/../accumulo does not exist! Accumulo imports will fail.

Please set $ACCUMULO_HOME to the root of your Accumulo installation.

18/04/12 13:37:19 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6

usage: sqoop COMMAND [ARGS]

Available commands:

codegen Generate code to interact with database records

create-hive-table Import a table definition into Hive

eval Evaluate a SQL statement and display the results

exportExport an HDFS directory to a database table

help List available commands

import Import a table from a database to HDFS

import-all-tables Import tables from a database to HDFS

import-mainframe Import datasets from a mainframe server to HDFS

job Work with saved jobs

list-databases List available databases on a server

list-tables List available tables in a database

merge Merge results of incremental imports

metastore Run a standalone Sqoop metastore

version Display version information

See 'sqoop help COMMAND' for information on a specific command.

[hadoop@hadoop3 ~]$

然后得到这些支持了的命令之后,如果不知道使用方式,可以使用 sqoop command 的方式 来查看某条具体命令的使用方式,比如:

[hadoop@hadoop3 ~]$ sqoop help import

Warning:/home/hadoop/apps/sqoop-1.4.6/../hcatalog does not exist!HCatalog jobs will fail.

Please set $HCAT_HOME to the root of your HCatalog installation.

Warning:/home/hadoop/apps/sqoop-1.4.6/../accumulo does not exist!Accumulo imports will fail.

Please set $ACCUMULO_HOME to the root of your Accumulo installation.18/04/12 13:38:29 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6usage: sqoop import [GENERIC-ARGS] [TOOL-ARGS]

Common arguments:--connect Specify JDBC connectstring

--connection-manager Specify connection manager

class name--connection-param-file Specify connection

parametersfile

--driver Manually specify JDBC

driver class to use--hadoop-home Override

$HADOOP_MAPRED_HOME_ARG--hadoop-mapred-home

$HADOOP_MAPRED_HOME_ARG--help Print usage instructions-P Read password from console--password Set authentication

password--password-alias Credential provider

password alias--password-file Set authentication

passwordfilepath--relaxed-isolation Use read-uncommitted

isolationforimports--skip-dist-cache Skip copying jars to

distributed cache--username Set authentication

username--verbose Print moreinformationwhileworking

Import control arguments:--append Imports datainappend

mode--as-avrodatafile Imports data

to Avro data

files--as-parquetfile Imports data

to Parquet

files--as-sequencefile Imports data

to

SequenceFile

s--as-textfile Imports data

as plain

text

(default)--autoreset-to-one-mapper Reset the

number of

mappers to

one mapperif no splitkey

available--boundary-query Set boundary

queryforretrieving

max and min

value of the

primary key--columns

Columns to

import from

table--compression-codec Compression

codec to useforimport--delete-target-dirImports dataindelete

mode--direct Use dire

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值