数据迁移工具sqoop
有问题。。。。。。。。
数据迁移工具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的更多相关文章
- 数据迁移工具Sqoop和DataX功能比较
本文转载自: http://www.cnblogs.com/panfeng412/archive/2013/04/29/data-migration-tool-sqoop-and-datax.html ...
- Sqoop 数据迁移工具
Sqoop 数据迁移工具 sqoop : SQL to hadOOP 两个功能: 1. RDB 向HDFS导入 2. HDFS向RDB导入 注:拷贝mysql-connector.jar 和 json ...
- Sqoop数据迁移工具的使用
文章作者:foochane 原文链接:https://foochane.cn/article/2019063001.html Sqoop数据迁移工具的使用 sqoop简单介绍 sqoop数据到HDF ...
- 大数据之sqoop
一.安装: 1 解压然后把mysql的驱动放在$SQOOP_HOME/lib 目录中2. conf/sqoop-en.sh export HADOOP_COMMON_HOME=/home/hadoop ...
- 【大数据】Sqoop学习笔记
第1章 Sqoop简介 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MyS ...
- 撸了个 django 数据迁移工具 django-supertube
撸了个 django 数据迁移工具 django-supertube 支持字段映射和动态字段转化. 欢迎 star,issue https://github.com/FingerLiu/django- ...
- Sqoop数据迁移工具
一.概述 sqoop 是 apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具. 导入数据: MySQL, Oracle 导入数据到 Hadoop 的 HDFS. HIVE. ...
- [大数据之Sqoop] —— Sqoop初探
Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中. Sqoop也是基于Mapreduce来做的数据导入. 关于 ...
- [大数据之Sqoop] —— 什么是Sqoop?
介绍 sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具.你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中:也可以把数据从hdfs中导出到关系型数据 ...
随机推荐
- 几种服务器端IO模型的简单介绍及实现
一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而 ...
- 大部分人都会做错的经典JS闭包面试题
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧. 先看题目代码: function fun(n,o) ...
- 如何使用PL/SQL Developer查看和杀掉session
http://jingyan.baidu.com/article/3ea51489eb65b152e61bba8b.html
- C# 退出程序
1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.Exit(); 强制所有消息中 ...
- 探索摸寻之XCode 快捷键
注释/反注释 Command+/ 模拟器没有Home键 在模拟器的应用界面 Command+Shift+h 返回上一级 (1920,24寸显示器,因此不是分辨率问题)
- bzoj2141排队(辣鸡但是好写的方法)
题意很明确,也非常经典: 一个支持查询 区间中比k大的数的个数 并且支持单点修改的序列 ——因为题意可以转化为:查询这两个数中比后者大的个数.比后者小的个数.比前者大的个数.比前者小的个数(根据这4个 ...
- UVA567
var i,n,j,k,t:longint;a:array[1..20,1..20]of longint; function min(a,b:longint):longint;begin if a&l ...
- jQuery 使得文本框获得焦点
今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用jQuery的话 是不是对象.focus()就可以了, 可是 ...
- CSV格式数据如何导入MySQL?
经常有客户咨询如何将CSV文件导入到MySQL数据库中,特写此文介绍一种方便.快捷的方法. 我们要使用的辅助工具是著名的MySQL管理软件:Navicat for MySQL 1)我准备了一个字符编码 ...
- CSipSimple 简单分析
简介 CSipSimple是一款可以在android手机上使用的支持sip的网络电话软件,可以在上面设置使用callda网络电话.连接使用方式最好是使用wifi,或者3g这样上网速度快,打起电话来效果 ...