有问题。。。。。。。。

数据迁移工具sqoop

sqoop安装

[root@sqoop data]# wget  wget http://apache.fayea.com/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

[root@sqoop data]# tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

拷贝hadoop 目录到 sqoop服务器/data目录上

[root@sqoop data]#  scp -r namenode:/data/hadoop /data/

修改sqoop 配置文件,指定hadoop 目录

[root@sqoop conf]# cp /data/sqoop/conf/sqoop-env-template.sh  /data/sqoop/conf/sqoop-env.sh

[root@sqoop conf]# vim /data/sqoop/config/sqoop-env.sh

export HADOOP_COMMON_HOME=/data/hadoop
export HADOOP_MAPRED_HOME=/data/hadoop/share/hadoop/mapreduce

关闭hbase hive zk 等报警,通过sqoop 可以把 关系型数据库存储到 hbase中

[root@sqoop bin]# vim /data/sqoop/bin/configure-sqoop

## Moved to be a runtime check in 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

###也可以设置环境变量

vim /etc/profile
HADOOP_HOME=/data/hadoop/
PATH=$HADOOP_HOME/bin:$PATH:$HOME/bin
HADOOP_MAPRED_HOME=/data/hadoop/share/hadoop/mapreduce
PATH=$HADOOP_MAPRED_HOME/bin:$PATH:$HOME/bin

sqool 使用命名

[root@sqoop bin]# ./sqoop help
// :: INFO sqoop.Sqoop: Running Sqoop version: 1.4.
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
export Export 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.

官方文档:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html

把192.168.20.60 的mysql 的senyintmain 导入到 hdfs中

wget http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.5/mysql-connector-java-6.0.5.jar

cp mysql-connector-java-6.0.5.jar /data/sqoop/lib

[hadoop@sqoop ~]$ /data/sqoop/bin/sqoop import  --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --table sys_log

hdfs 权限是 hadoop. supergroup,所以需要把 /data  hadoop  sqoop 修改权限

[root@sqoop data]# chown -R hadoop.hadoop  hadoop/ sqoop

[root@sqoop data]# su - hadoop

[hadoop@sqoop data]# [hadoop@sqoop ~]$ /data/sqoop/bin/sqoop import  --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --table sys_log

database 没有数据库权限,在mysql 192.168.20.60服务器上添加权限

[root@localhost:mysql>grant all on  *.* to 'fengjian'@'192.168.20.%'  IDENTIFIED BY '123456';

在此执行

[hadoop@sqoop data]# [hadoop@sqoop ~]$ /data/sqoop/bin/sqoop import  --connect jdbc:mysql://192.168.20.60:3306/fengjian --username feng --password 123456 --table sys_log --target-dir /sqoop/td2 -m 2 --fields-terminated-by '\t' --columns 'id,account,income' --where 'id>2 and id<=9'

显示192.168.20.60 中的数据库

[hadoop@sqoop ~]$ [hadoop@sqoop ~]$ /data/sqoop/bin/sqoop import  --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --table sys_log

连接mysql 需要使用mysql连接的jar包
--table trade_detail 导入到hdfs的mysql 表
--target-dir 导入到hdfs的目录名称
-m 2 使用2个map
--fields-terminated-by '\t' 设置分隔符,默认使用逗号分隔,
--columns "id,account,income" 设置导入的列
--where 'id>2 and id<=9' 加上查询条件

如果有条件 where id > 5 and $CONDITIONS'
./sqoop import --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --query 'select * from trade_detail where id > 5 and $CONDITIONS' -m 1 --target-dir /sqoop/td3
如果没有条件 where $CONDITIONS'
./sqoop import --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --query 'select * from trade_detail where $CONDITIONS' -m 1 --target-dir /sqoop/td3

--query 指定sql语句 后面必须加 $CONDITIONS
-m 1 必须使用1个map

如果指定map为多个,必须指定使用--split-by
./sqoop import --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --query 'select * from trade_detail where id > 5 and $CONDITIONS' -m 2 --target-dir /sqoop/td4 --split-by trade_detail.id
用trade_detail.id 分隔,1个map将所有的数据都读取进来,不用切分数据。

建议使用单引号,如果使用双引号 "\$CONDITIONS"

从hdfs 导入到mysql中
在msql表中创建一个 与 hdfs 相同的表结构
create table feng like templatesql;

./sqoop import --connect jdbc:mysql://192.168.20.60:3306/fengjian --username fengjian --password 123456 --export-dir '/sqoop/td3/' --table feng -m 1 --fields-terminated-by '\t'

数据迁移工具sqoop的更多相关文章

  1. 数据迁移工具Sqoop和DataX功能比较

    本文转载自: http://www.cnblogs.com/panfeng412/archive/2013/04/29/data-migration-tool-sqoop-and-datax.html ...

  2. Sqoop 数据迁移工具

    Sqoop 数据迁移工具 sqoop : SQL to hadOOP 两个功能: 1. RDB 向HDFS导入 2. HDFS向RDB导入 注:拷贝mysql-connector.jar 和 json ...

  3. Sqoop数据迁移工具的使用

    文章作者:foochane  原文链接:https://foochane.cn/article/2019063001.html Sqoop数据迁移工具的使用 sqoop简单介绍 sqoop数据到HDF ...

  4. 大数据之sqoop

    一.安装: 1 解压然后把mysql的驱动放在$SQOOP_HOME/lib 目录中2. conf/sqoop-en.sh export HADOOP_COMMON_HOME=/home/hadoop ...

  5. 【大数据】Sqoop学习笔记

    第1章 Sqoop简介 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MyS ...

  6. 撸了个 django 数据迁移工具 django-supertube

    撸了个 django 数据迁移工具 django-supertube 支持字段映射和动态字段转化. 欢迎 star,issue https://github.com/FingerLiu/django- ...

  7. Sqoop数据迁移工具

    一.概述 sqoop 是 apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具. 导入数据: MySQL, Oracle 导入数据到 Hadoop 的 HDFS. HIVE. ...

  8. [大数据之Sqoop] —— Sqoop初探

    Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中. Sqoop也是基于Mapreduce来做的数据导入. 关于 ...

  9. [大数据之Sqoop] —— 什么是Sqoop?

    介绍 sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具.你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中:也可以把数据从hdfs中导出到关系型数据 ...

随机推荐

  1. singleton pattern的推荐实现

    一.单例模式的C#实现: (1)使用double-checked locking的方式: public sealed class Singleton { private static volatile ...

  2. WinForm/MIS项目开发之中按钮级权限实践

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  3. 第十六篇:SWindow的布局属性pos2type及offset

    当窗口大小需要根据内容来确定时,使用XML布局可能需要做一些特殊的处理. 例如:不管窗口多大,我需要将该窗口相对于父窗口居中在XML中应该怎么处理? 如果窗口大小是固定的(如, 100 *100),这 ...

  4. 个人对Java中多态的一些简单理解

    什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...

  5. jquery:closest和parents的主要区别

    closest和parents的主要区别是:1,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找:2,前者逐级向上查找,直到发现匹配的元素后就停止了,后者一直向上查找直到根元素,然后把这些元素放进 ...

  6. 【转】HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别

    转自:http://blog.csdn.net/paincupid/article/details/47746341 一.HashMap和TreeMap区别 1.HashMap是基于散列表实现的,时间 ...

  7. Leetcode Divide Two Integers

    Divide two integers without using multiplication, division and mod operator. 不用乘.除.求余操作,返回两整数相除的结果,结 ...

  8. 使用 yum 安装 virtualbox 虚拟机

    我的环境是centos7,所以也可以说是在centos7下使用yum安装virtualbox,不过对于其他的LINUX发行版方法都一样. 下面的操作都是在命令行中进行的. 1.首先需要配置yum的源. ...

  9. python中文注释报错问题

    错误信息: SyntaxError: Non-ASCII character '\xe4' in file... 解决办法: 在文件第一行或第二行添加:# -*- coding: utf-8 -*- ...

  10. 初学者对于MVC架构模式学习与理解

    理解MVC的工作原理,明白一个网页是如何显示出来的 之前一直盲目的在慕课上看视频,脑袋里想着要理解mvc,看了mvc相关的视频,看完之后就觉得空白白的,M,V,C各代表什么我知道,但是这个究竟有啥意思 ...