sqoop简介与安装配置

SQOOP的描述

SQOOP是用于对数据进行导入导出的。

   (1)把MySQL、Oracle等数据库中的数据导入到HDFS、Hive、HBase中

         (2)把HDFS、Hive、HBase中的数据导出到MySQL、Oracle等数据库中

 

SQOOP的安装

解压缩sqoop的tar.gz文件,设置环境变量(source /etc/profile)

 

把数据从mysql导入到hdfs(默认是/user/<username>)中

1.  复制mysql的驱动到sqoop目录下的lib中

2.  执行导入命令

 

  sqoopimport --connect jdbc:mysql://hadoop0:3306/hive --username root --password admin --table TBLS --fields-terminated-by'\t'  --null-string '**'  -m 1 --append --hive-import

 

 

说明:

ü  执行import命令将mysql的hive数据库中的TBLS表导入到hdfs中(默认目录user/root)

ü  --fields-terminated-by '\t' :表示导入到hdfs中以’\t’进行切割

ü  --null-string ‘**’:表示当字段为null时用’**’替换

ü  -m1:表示只指定一个map任务(map任务的个数关系生成文件的个数)

ü  --append:表示如果执行多次则进行追加(否则多次执行则会报already exsist)

ü  --hive-import:表示导入到hive中(如果只需导入到hdfs中则可不写)

ü   

 

  sqoopimport --connect jdbc:mysql://hadoop0:3306/hive --username root --password admin --table TBLS --fields-terminated-by'\t'  --null-string '**'  -m 1 --append --hive-import  --check-column'TBL_ID' --incremental append --last-value 6

 

说明:

ü  执行import命令将mysql的hive数据库中的TBLS表导入到hdfs中(默认目录user/root)

ü  --check-column 'TBL_ID':表示检查’TBL_ID‘列

ü  --incremental:表示增量

ü  --last-value 6:表示开始追加导入的列从第6列开始(不包含第6列)

ü  --check-column 'TBL_ID' --incremental append --last-value 6:整体解释为 检查导入的主键列‘TBL_ID’当该列的值(增量)大于6时,可以进行追加导入,否则不进行导入

(这样做的目的:当第一次导入数据时主键列的最后一个值为6,第二次导入时我们不想导入所有的数据而是后来增加的数据,所以我们可以接着上一次的数据导入,即不导入重复数据)

 

把数据从hdfs导出到mysql中 

 sqoop export --connect jdbc:mysql://hadoop0:3306/hive  --username root --password admin --table ids--fields-terminated-by '\t' --export-dir '/ids'

 

说明:

--export-dir '/ids':指定要导出到Mysql的文件目录

 

设置为作业,运行作业

 sqoop job --create myjob -- import --connectjdbc:mysql://hadoop0:3306/hive --username root --password admin --table TBLS --fields-terminated-by'\t'  --null-string '**'  -m 1 --append --hive-import 

 

说明:

ü  设置为作业后可以直接执行作业,执行作业即执行该命令

ü  执行作业的命令:sqoopjob  –exec  myjob

ü  查看作业已创建的Job作业:sqoop job –list

 

注:运行作业第一次需要输入密码,输入密码后即可执行,然后修改sqoop/conf/sqoop-site.xml中的sqoop.metastore.client.record.password(去掉注释即可)

以后运行就不需要在此输入密码了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Sqoop安装与配置步骤: 1. 确保已经安装配置Hadoop、Hive和MySQL。 2. 进入/opt目录,并解压Sqoop安装包到/app目录下,并将解压好的安装包重命名为sqoop。执行以下命令: ```shell mkdir /app cd /opt tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /app cd /app mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop ``` 3. 配置Sqoop的环境变量。编辑~/.bashrc文件,并添加以下内容: ```shell export SQOOP_HOME=/app/sqoop export PATH=$PATH:$SQOOP_HOME/bin ``` 保存并退出文件。 4. 使环境变量生效。执行以下命令: ```shell source ~/.bashrc ``` 5. 配置Sqoop的连接参数。进入Sqoop的conf目录,并复制模板文件sqoop-env-template.sh为sqoop-env.sh。执行以下命令: ```shell cd /app/sqoop/conf cp sqoop-env-template.sh sqoop-env.sh ``` 6. 编辑sqoop-env.sh文件,并设置以下参数: ```shell export HADOOP_COMMON_HOME=/path/to/hadoop export HADOOP_MAPRED_HOME=/path/to/hadoop export HIVE_HOME=/path/to/hive export ZOOKEEPER_HOME=/path/to/zookeeper ``` 将/path/to/hadoop、/path/to/hive和/path/to/zookeeper替换为实际的路径。 7. 配置Sqoop的数据库连接参数。进入Sqoop的conf目录,并复制模板文件sqoop-site-template.xml为sqoop-site.xml。执行以下命令: ```shell cd /app/sqoop/conf cp sqoop-site-template.xml sqoop-site.xml ``` 8. 编辑sqoop-site.xml文件,并设置以下参数: ```shell <property> <name>sqoop.metastore.client.enable.autoconnect</name> <value>true</value> </property> <property> <name>sqoop.metastore.client.autoconnect.url</name> <value>jdbc:mysql://localhost:3306/sqoop_metastore</value> </property> <property> <name>sqoop.metastore.client.autoconnect.username</name> <value>sqoop</value> </property> <property> <name>sqoop.metastore.client.autoconnect.password</name> <value>password</value> </property> ``` 将localhost、3306、sqoop_metastore、sqoop和password替换为实际的数据库连接信息。 9. 完成以上配置后,Sqoop就已经安装配置好了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值