热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ApacheSqoop数据转换安装配置与基本操作命令

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

Apache Sqoop数据转换安装配置与基本操作命令

系统环境

CentOS 6.5

组件版本

nameversion
Sqoop 1.4.6

Sqoop安装

解压

懒的敲了

  • 配置环境变量
# SQOOP
SQOOP_HOME=/home/Hadoop/development/src/sqoop-1.4.6-cdh5.6.0
PATH=$PATH:$SQOOP_HOME/bin
export PATH

cd 到Sqoop根目录

配置Sqoop核心文件

主要配置${SQOOP_HOME}/conf/sqoop-env-template.sh 文件

cp ${SQOOP_HOME}/conf/sqoop-env-template.sh ${SQOOP_HOME}/conf/sqoop-env.sh

主要修改参数

# 指定 Hadoop 安装目录
export HADOOP_COMMON_HOME=
# 指定 Hadoop MapReduce 技术jar存放目录
export HADOOP_MAPRED_HOME=
# Hbase 安装目录
export HBASE_HOME=
# Zookeeper 安装目录
export ZOOCFGDIR=

如果没有安装的可以不用填写

例如

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/hadoop/development/src/hadoop-2.6.0-cdh5.6.0

#Set path to where hadoop-*-core.jar is available
"这里之所以和Hadoop安装目录一样,是由于上次我配置成mapreduce jar地址时,sqoop报错"
export HADOOP_MAPRED_HOME=/home/hadoop/development/src/hadoop-2.6.0-cdh5.6.0

#set the path to where bin/hbase is available
"我没有安装Hbase所以这里直接 注释掉就可以"
#export HBASE_HOME=

#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/development/src/hive-1.1.0-cdh5.6.0

#Set the path for where zookeper config dir is
export ZOOCFGDIR=/home/hadoop/development/src/zookeeper-3.4.5-cdh5.6.0

注释掉没有使用的组件

bin/config-sqoop

#if [ ! -d "${HBASE_HOME}" ]; then
#  echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
#  echo 'Please set $HBASE_HOME to the root of your HBase installation.'
#fi

# Moved to be a runtime check in sqoop.
#if [ ! -d "${HCAT_HOME}" ]; then
#  echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
#  echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
#fi

#if [ ! -d "${ACCUMULO_HOME}" ]; then
#  echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
#  echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
#  echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."
#  echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'
#fi

测试Sqoop是否配置成功

sqoop list-databases --connect jdbc:mysql://192.168.2.251:3306/canbot --username root --password root


Warning: /home/hadoop/development/src/sqoop-1.4.6-cdh5.6.0/bin/../../hbase does not exist! HBase imports will fail.
Please set $HBASE_HOME to the root of your HBase installation.
Warning: /home/hadoop/development/src/sqoop-1.4.6-cdh5.6.0/bin/../../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/hadoop/development/src/sqoop-1.4.6-cdh5.6.0/bin/../../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
Warning: /home/hadoop/development/src/sqoop-1.4.6-cdh5.6.0/bin/../../zookeeper does not exist! Accumulo imports will fail.
Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.
16/05/23 10:34:46 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.6.0
16/05/23 10:34:46 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
16/05/23 10:34:47 INFO manager.MySQLManager: Preparing to use a MySQL "streaming resultset.
information_schema
canbot
from_66internet
from_fhmysql
hive
mysql
sys_app_user"

Sqoop操作笔记

mysql导出到HDFS

import 导入

–connect ‘jdbc:mysql://192.168.2.251:3306/canbot?characterEncoding=UTF-8’ 链接数据库语句

–username root –password root 账号密码

–table kylin01 指定mysql中 canbot库中的 kylin01 表

–target-dir ‘/yuqi_dir/sqoop/kylin01’ 指定将表到导入到HDFS 中的路径

-m 1 运行map 数量

./bin/sqoop import --connect 'jdbc:mysql://192.168.2.251:3306/canbot?characterEncoding=UTF-8' --username root --password root --table kylin01 --target-dir '/yuqi_dir/sqoop/kylin01' -m 1 

查看kylin01表数据

mysql> select * from kylin01;
+-----------+------------+-------+------------+
| commodity | username   | price | dateTime   |
+-----------+------------+-------+------------+
| iPhone6s  | zhangsan   |  1400 | 1488547368 |
| iPhone5s  | lisi       |  1400 | 1463145768 |
| iPhone4s  | wangsu     |  1400 | 1451820168 |
| iPhone7s  | liouqi     |  1400 | 1430655768 |
| iPhone8s  | admin      |  1400 | 1454498568 |
| iPhone9s  | userkxl    |  1400 | 1470205368 |
| iPhone3s  | zhangsan   |  1400 | 1454505768 |
| XIAOMI    | zhangsan   |  1400 | 1463998968 |
| XIAOMI    | liouwangba |  1400 | 1453558968 |
| XIAOMI    | zhangaiguo |  1400 | 1471792968 |
| huawei 7x | lioudadiao |  1400 | 1444926168 |
| huawei 7x | zhangdapao |  1400 | 1469697768 |
| huawei 7x | zhujing    |  1400 | 1462040568 |
| huawei 7x | nuannuan   |  1400 | 1462512168 |
| huawei 7x | juanmao    |  1400 | 1466302968 |
| iPhone6s  | zhangsan   |  1400 | 1488547368 |
| iPhone5s  | lisi       |  1400 | 1463145768 |
| iPhone4s  | wangsu     |  1400 | 1451820168 |
| iPhone7s  | liouqi     |  1400 | 1430655768 |
| iPhone8s  | admin      |  1400 | 1454498568 |
| iPhone9s  | userkxl    |  1400 | 1470205368 |
| iPhone3s  | zhangsan   |  1400 | 1454505768 |
| XIAOMI    | zhangsan   |  1400 | 1463998968 |
| XIAOMI    | liouwangba |  1400 | 1453558968 |
| XIAOMI    | zhangaiguo |  1400 | 1471792968 |
| huawei 7x | lioudadiao |  1400 | 1444926168 |
| huawei 7x | zhangdapao |  1400 | 1469697768 |
| huawei 7x | zhujing    |  1400 | 1462040568 |
| huawei 7x | nuannuan   |  1400 | 1462512168 |
| huawei 7x | juanmao    |  1400 | 1466302968 |
+-----------+------------+-------+------------+
30 rows in set

查看HDFS导出的kylin01表数据

[hadoop@canbot130 ~]$ hadoop fs -cat /yuqi_dir/sqoop/kylin01/*
16/05/25 04:08:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
iPhone6s,zhangsan,1400,1488547368
iPhone5s,lisi,1400,1463145768
iPhone4s,wangsu,1400,1451820168
iPhone7s,liouqi,1400,1430655768
iPhone8s,admin,1400,1454498568
iPhone9s,userkxl,1400,1470205368
iPhone3s,zhangsan,1400,1454505768
XIAOMI,zhangsan,1400,1463998968
XIAOMI,liouwangba,1400,1453558968
XIAOMI,zhangaiguo,1400,1471792968
huawei 7x,lioudadiao,1400,1444926168
huawei 7x,zhangdapao,1400,1469697768
huawei 7x,zhujing,1400,1462040568
huawei 7x,nuannuan,1400,1462512168
huawei 7x,juanmao,1400,1466302968
iPhone6s,zhangsan,1400,1488547368
iPhone5s,lisi,1400,1463145768
iPhone4s,wangsu,1400,1451820168
iPhone7s,liouqi,1400,1430655768
iPhone8s,admin,1400,1454498568
iPhone9s,userkxl,1400,1470205368
iPhone3s,zhangsan,1400,1454505768
XIAOMI,zhangsan,1400,1463998968
XIAOMI,liouwangba,1400,1453558968
XIAOMI,zhangaiguo,1400,1471792968
huawei 7x,lioudadiao,1400,1444926168
huawei 7x,zhangdapao,1400,1469697768
huawei 7x,zhujing,1400,1462040568
huawei 7x,nuannuan,1400,1462512168
huawei 7x,juanmao,1400,1466302968

hdfs导出到mysql

sqoop export #导出
--connect jdbc:mysql://192.168.2.251:3306/canbot?characterEncoding=UTF-8 --username root --password root #数据库连接语句
--table a #指定导入到那张表
--export-dir /yuqi_dir/sqoop/kylin01/part-m-00000 #要导入的文件存在HDFS的路径
-m 2 #运行map的个数

Mysql直接导入到Hive

sqoop import --connect 'jdbc:mysql://192.168.2.251:3306/canbot?characterEncoding=UTF-8' --username root --password root 
--table a #标记要导出的mysql表
--hive-import --hive-table d 导入到Hive并且hive表的名称为"d" 
-m 1
hive> select * from d;
OK
iPhone6s        zhangsan        1400    1488547368
iPhone5s        lisi    1400    1463145768
iPhone4s        wangsu  1400    1451820168
iPhone7s        liouqi  1400    1430655768
iPhone8s        admin   1400    1454498568
iPhone9s        userkxl 1400    1470205368
iPhone3s        zhangsan        1400    1454505768
XIAOMI  zhangsan        1400    1463998968
XIAOMI  liouwangba      1400    1453558968
XIAOMI  zhangaiguo      1400    1471792968
huawei 7x       lioudadiao      1400    1444926168
huawei 7x       zhangdapao      1400    1469697768
huawei 7x       zhujing 1400    1462040568
huawei 7x       nuannuan        1400    1462512168
huawei 7x       juanmao 1400    1466302968
iPhone6s        zhangsan        1400    1488547368
iPhone5s        lisi    1400    1463145768
iPhone4s        wangsu  1400    1451820168
iPhone7s        liouqi  1400    1430655768
iPhone8s        admin   1400    1454498568
iPhone9s        userkxl 1400    1470205368
iPhone3s        zhangsan        1400    1454505768
XIAOMI  zhangsan        1400    1463998968
XIAOMI  liouwangba      1400    1453558968
XIAOMI  zhangaiguo      1400    1471792968
huawei 7x       lioudadiao      1400    1444926168
huawei 7x       zhangdapao      1400    1469697768
huawei 7x       zhujing 1400    1462040568
huawei 7x       nuannuan        1400    1462512168
huawei 7x       juanmao 1400    1466302968
Time taken: 0.949 seconds, Fetched: 30 row(s)
Hadoop 专题页面 =13


推荐阅读
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
author-avatar
左莹薇_834
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有