1 使用sqoop进行数据导入导出

将B线数据中心所有的数据表放到xxxxx数据库下。

1.1 导入区域编码表

bin/sqoop import –connect jdbc:mysql://xxx.xxx.xxx.142:3306/db1?useSSL=false –username root –password 123456 –target-dir /xxxx/xxxx/sys_area –table tb_sys_area –m 1;

成功之后导入的文件目录为:

/bplan/data-center/sys_area/part-m-00000

如下图:

1.2 导入行业基础数据

bin/sqoop import –connect jdbc:mysql://xxx.xxx.xxx.142:3306/db1?useSSL=false –username root –password 123456 –target-dir /bplan/data-center/sys_industry –table tb_sys_industry –m 1;

1.3 特别注意

如果按照上面的方式导入数据,那么数据间的间隔符号默认为”,”,若需自定义分割符则加入—fields-terminated-by ‘\t’;如:

bin/sqoop import --connect jdbc:mysql://xxx.xxx.xxx.142:3306/db1?useSSL=false --username root --password 123456 --target-dir /xxxx/xxxx/sys_industry_1  --table tb_sys_industry --m 1 --fields-terminated-by '\t';

成功后导入的文件目录为:

/bplan/data-center/sys_industry/part-m-00000

如下图:

1.4 将区域数据和行业数据导入到hive中

root@bigdata2 hive-2.3.2]# cd $HIVE_HOME
root@bigdata2 hive-2.3.2]# bin/hive
创建新数据库data_center;
# create database data_center;

切换数据库 data_center;
# user data_center;

创建hive 区域信息表
#CREATE TABLE IF NOT EXISTS tb_sys_area (
id int comment '主键id',
code string comment '编码',
name string comment "地区名称",
parent_code int comment "父级地区编码",
short_name string comment "地区简称",
level_type smallint comment '地区层级',
city_code string comment '城市编码',
zip_code string comment '邮政编码',
merger_name string comment '地区全称',
pinyin string comment '地区拼音',
pingan_area_name string comment '平安银行地区名称'
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

将在hdfs中的数据导入到hive中

load data inpath '/bplan/data-center/sys_area/part-m-00000' into table data_center.tb_sys_area ;

1.5 Sqoop直接将数据导入到hive中

在hive中创建tb_sys_industry

# CREATE TABLE IF NOT EXISTS tb_sys_industry (
id int comment '主键id',
category_id string comment '类目id ',
parent_category_id string comment "上级类目id ",
root_category_id int comment "根类目id ",
category_name string comment "类目名称",
weixin_category_id smallint comment '微信类目id ',
merger_name string comment '地区全称',
mybank_category_id string comment '网商银行类目id '
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ', ';
//如果是通过mysql直接导入到hive中,此步骤可以不做

使执行sqoop导入

#cd $SQOOP_HOME
#bin/sqoop import --connect jdbc:mysql://xxx.xxx.xxx.142:3306/db1 --username root --password 123456 --table tb_sys_industry --fields-terminated-by ',' --delete-target-dir --num-mappers 1 --hive-import --hive-database data_center --hive-table tb_sys_industry;

注意:在此过程中可能会出现如下:
执行异常:ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
解决:sqoop需要一个hive的包,将hive/lib中的hive-common-2.3.3.jar拷贝到sqoop的lib目录中。

1.6 Hive中的数据导入到mysql中

在MySQL中新建hive导入的表

CREATE TABLE `tb_sys_industry_1` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`category_id` VARCHAR(50) NOT NULL COMMENT '类目id',`parent_category_id` VARCHAR(50) DEFAULT NULL COMMENT '上级类目id',`root_category_id` VARCHAR(50) NOT NULL COMMENT '根类目id',`category_name` VARCHAR(100) NOT NULL COMMENT '类目名称',`weixin_category_id` VARCHAR(50) DEFAULT NULL COMMENT '微信类目id',`merger_name` VARCHAR(100) DEFAULT NULL,`mybank_category_id` VARCHAR(50) DEFAULT NULL COMMENT '网商银行类目id',PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8mb4 COMMENT='行业信息’

在sqoop中执行:

# bin/sqoop export --connect jdbc:mysql://xxx.xxx.xxx.142:3306/db1 --username root --password 123456 --table tb_sys_industry_1 --export-dir /user/hive/warehouse/data_center.db/tb_sys_industry/part-m-00000
 如果分割符不一样的话 则命令后+ --input-fields-terminated-by '\t';

注意:
hive默认的字段分隔符为’\001’,sqoop默认的分隔符是’,’。
–input-fields-terminated-by:表示用于hive或hdfs数据导出到外部存储分隔参数;
–fields-terminated-by:表示用于外面存储导入到hive或hdfs中需要实现字段分隔的参数;

1.7 HIVE数据备份

进入hive;

use nginx_log;

仿照MySQL方式进行表数据备份

create table nginx_log_info_20180724 as select * from nginx_log_info;

把Hive中的表数据备份到磁盘中。
备份示例:

insert overwrite local directory '/home/bigdata_bak/nginx_log /nginx_log_info_20180724' ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE select * from nginx_log_info;

1.8 把磁盘数据导入到hive中

创建表:

CREATE TABLE IF NOT EXISTS nginx_log_info_20180724 (
id bigint comment '主键id',
product_name string comment '所属业务',
remote_addr string comment "远程服务器ip",
access_time int comment "访问时间,格式为:yyyyMMdd",
access_timestamp double comment "时间戳",
time_zone string comment '时区',
request_type string comment '请求类型',
request_url string comment '请求url',
request_protocol string comment '请求协议',
status smallint comment '请求状态',
body_bytes_sent int comment '发送内容大小',
request_body string comment '请求体',
http_referer string comment 'http引用页',
http_user_agent string comment 'http_user_agent',
os_name string comment '操作系统名称',
os string comment '操作系统',
browser_name string comment '浏览器名称',
browser_version string comment '浏览器版本',
device_type string comment '设备类型',
browser string comment '浏览器',
access_tool string comment '类型',
http_x_forwarded_for string comment 'http_x_forwarded_for',
request_time double comment '请求响应时间'
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE;
LOAD DATA LOCAL INPATH '/home/bigdata_bak/nginx_log /nginx_log_info_20180724' OVERWRITE INTO TABLE nginx_log_info_20180724;

清空表数据:

insert overwrite table nginx_log_info_20180724 select * from nginx_log_info_20180724 where 1=0;

DBMS、hdfs、hive之间的数据转换之sqoop相关推荐

  1. 3.2.3 Sqoop 数据迁移工具, 导入数据import, MySQL到HDFS/Hive, 导出数据export,增量数据导入, Sqoop job,常用命令及参数

    目录 数据迁移工具 -- Sqoop 第一部分 Sqoop概述 第二部分 安装配置 第三部分 应用案例 第 1 节 导入数据import MySQL 到 HDFS MySQL 到 Hive 第 2 节 ...

  2. Impala和Hive之间的SQL差异

    Impala和Hive之间的SQL差异 Impala的SQL语法遵循SQL-92标准,并且在内置功能等领域包括许多行业扩展.有关将SQL代码从各种数据库系统移植到Impala的一般讨论,请参见将SQL ...

  3. Flume-NG + HDFS + HIVE 日志收集分析 | EyeLu技术Blog

    Flume-NG + HDFS + HIVE 日志收集分析 | EyeLu技术Blog: "" (Via.) 转载于:https://www.cnblogs.com/devops/ ...

  4. 以Mapgis与Arcinfo之间的数据转换

    Arcinfo作为全球GIS领域的主流软件,它的数据格式(如E00.shp等)也日渐成为行业中的通用格式,广大MAPGIS用户也经常需要在Arcinfo和MAPGIS之间进行数据转换.从MAPGIS5 ...

  5. mapgis同arcmap之间的数据转换, 投影变换,误差校正,坐标,基础资料,教程的相关信息的汇集...

    关于mapgis同arcmap之间的数据转换, 投影变换,误差校正,坐标,基础资料,教程的相关信息的汇集 "http://www.w3c.org/TR/1999/REC-html401-19 ...

  6. 几种三维平台之间的数据转换

    几种三维平台之间的数据转换 GIS的三维数据格式 BIM中的三维数据格式 生成一个适合你的列表 创建一个表格 设定内容居中.居左.居右 SmartyPants 创建一个自定义列表 如何创建一个注脚 注 ...

  7. DBMS和RDBMS之间的区别

    In this tutorial you will learn about difference between dbms and rdbms with example. 在本教程中,您将通过示例了解 ...

  8. RDBMS和HDFS, HIVE, HBASE的迁移工具Sqoop

    Sqoop 简介 Apache Sqoop 项目旨在协助 RDBMS 与 Hadoop 之间进行高效的大数据交流.用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Hadoop 与其 ...

  9. 执行sqoop 用shell_Mysql和Hive之间通过Sqoop进行数据同步

    文章回顾 理论 大数据框架原理简介 大数据发展历程及技术选型 实践 搭建大数据运行环境之一 搭建大数据运行环境之二 本地MAC环境配置 CPU数和内存大小 查看CPU数 sysctl machdep. ...

最新文章

  1. cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp
  2. mysql 渗透及漏洞利用总结
  3. python就业前景分析-最新的Python就业前景分析一览表
  4. Webservice入门教程_编写手机归属地查询的webservice
  5. 常用的方法论-PARR
  6. Apache 配置多端口网站
  7. Linux学习笔记之查看Linux版本信息
  8. 运动控制器位置锁存功能的应用
  9. 使用kali系统中legion工具包进行漏扫时闪退,原因是legion工具包版本问题,使用命令sudo apt-get install legion更新一下就解决了
  10. 汽车免费WiFi的原理是什么?
  11. html中实现图片的无限滚动,CSS3 背景图片无限滚动之波浪效果的实现
  12. html设置横线中间的字,CSS伪元素before,after制作左右横线中间文字效果
  13. 谷歌浏览器下载的内容老是自动打开
  14. 机器翻译:西班牙文「---」英文
  15. 山寨货把正品吊起来打,云霄假烟有多牛逼?
  16. 完全颠覆你世界观的10个科学实验!从此脑洞大开
  17. js 跨域问题解决方案
  18. mysql初始化加载插件_Hapi+MySql项目实战配置插件-加载文件渲染母版(三)
  19. 齐岳含有EGS交联剂|乙二醇双(琥珀酰亚胺基琥珀酸酯)|70539-42-3 蛋白交联剂
  20. 被裁了,39 岁阿里 P9,攒下 1.5 亿....

热门文章

  1. python中if语句and和or用法_python中if语句的使用(比较、逻辑、成员、运算符,语句结构)...
  2. 你可能不知道的Python面试秘籍 干货满满(附带参考答案)上篇
  3. Python自动化运维——IP地址处理模块
  4. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)
  5. leetcode 分饼干 贪心算法python
  6. MySql 统计最近 6 个月内的数据,没有数据默认为显示为 0
  7. VTK:Kochanek样条用法实战
  8. VTK:环境球AmbientSpheres用法实战
  9. boost::merge相关的测试程序
  10. boost::fusion::iterator_range用法的测试程序