离线数据分析平台实战——160Sqoop介绍 Sqoop介绍 Apache Sqoop(SQL-to-Hadoop) 是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 一般情况下,是将数据分析的结果导出到关系型数据库中,供其他部门使用。 Sqoop成立于2009年,刚开始是作为hadoop的一个模块而存在的,不过后来为了更好的进行
离线数据分析平台实战——130Hive Shell命令介绍 02(熟悉Hive略过) 导入数据 Hive的导入数据基本上可以分为三类, 第一种是从linux系统上导入数据到hive表中, 第二种是从hdfs上导入数据到hive表中, 第三种是从已有的hive表中导入数据到新的hive表中。 其中第一种和第二种语法基本类似; 在前面介绍的使用create table ... as... 命令创建表并导入数据,也属于第三种导入数据方法。 使用前两种方式导入数据,只是复制或者移动数据文件,并不会对数据的
在做数据导出之前,我们看一下已经完成的操作:数据分析阶段将指标统计完成,也将统计完成的指标放到Hive数据表中,并且指标数据存储到HDFS分布式文件存储系统。
sqoop是apache旗下,用于关系型数据库和hadoop之间传输数据的工具,sqoop可以用在离线分析中,将保存在mysql的业务数据传输到hive数仓,数仓分析完得到结果,再通过sqoop传输到mysql,最后通过web+echart来进行图表展示,更加直观的展示数据指标。
sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
考虑到多数场景是迁移整个Hive数据库,该篇文章只介绍迁移的第二种,即元数据及Hive数据全量迁移。
在环境变量中增加如下命令,可以使用 bd 快速切换到 /data/tools/bigdata
政采云自助取数平台历时一年左右的时间开发,从 0 到 1,基于取数流程长、取数成本高、取数效率低、数据安全不可控等痛点,经历数次大的版本迭代,目前平台功能已能覆盖内部员工日常取数的大部分场景。本文将对自助取数平台的功能模块和系统设计做简略的介绍。
交互方式-用户接口:CLI(linux命令行)、WUI(hive web页面)、Client(连接远程服务HiveServer2,eg:JDBC、ODBC)
Sqoop 数据迁移 Sqoop 底层还是运行在MapReduce上,通过Yarn进行调度的,只是Sqoop在做数据迁移过程中,只用到了MapTask,没有用到ReduceTask。 Sqoop 是一个数据迁移工具,可以理解为客户端程序,提供HDFS/Hive/HBase 到 RDS(Oracle,Postgrel,MySql等) 数据的导入导出 Sqoop 需要配置到HDFS端,Sqoop从HDFS/Hive/HBase 导出到 RDB时,需要预先 对RDB进行表结构定义,从RDB导出到Hive/HDFS/HBase时不需要对HBase进行表结构定义,对Hive的定义需要指定分隔符等参数. Sqoop需要指定 Hadopp-Home.xml ,MapReduce-HOME.xml,JAVA-HOME 等系统环境变量 类型类型包含 Export,Import Sqoop 在做数据迁移之前,最好测试下 数据连接是否正常,如果运行不正常,方便进行问题定位。 Sqoop 需要参数配置文件 ***.xml, 如果从 RDB 导出数据到 HDFS 指定 RDB驱动,路径,用户名,密码,库及表等信息 如果为 HDFS 需要执行 HDFS 路径,与Hive数据类似 如果为HBase,则需要指定库信息,路径等 如果从 HDFS/Hive/HBase 到RDB时, 指定HDFS,需要指定路径,分割幅等信息,Hive类似 RDB需要指定 驱动名,URL,User,Pwd,库及表
用户可以在MRS Manager界面上配置监控指标数据对接参数,使集群内各监控指标数据通过FTP或SFTP协议保存到指定的FTP服务器,与第三方系统进行对接。FTP协议未加密数据可能存在安全风险,建议使用SFTP。MRS Manager支持采集当前管理的集群内所有监控指标数据,采集的周期有30秒、60秒和300秒三种。监控指标数据在FTP
1.hive模糊搜索表 show tables like '*name*'; 2.查看表结构信息 desc formatted table_name; desc table_name; 3.查看分区信息 show partitions table_name; 4.根据分区查询数据 select table_coulm from table_name where partition_name = '2014-02-25'; 5.查看hdfs文件信息 dfs -ls /user/hive/warehou
1.hive模糊搜索表 show tables like '*name*'; 2.查看表结构信息 desc formatted table_name; desc table_name; 3.查看分区信息 show partitions table_name; 4.根据分区查询数据 select table_coulm from table_name where partition_name = '2014-02-25'; 5.查看hdfs文件信息 dfs -ls /user/hive/warehouse/table02; 6.从文件加载数据进表(OVERWRITE覆盖,追加不需要OVERWRITE关键字) LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config; --从查询语句给table插入数据 INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select * from stage.s_h02_click_log where dt='2014-01-22' limit 100; 7.导出数据到文件 insert overwrite directory '/tmp/csl_rule_cfg' select a.* from dim.dim_csl_rule_config a; hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"> /home/jrjt/testan/baitiao.dat; 8.自定义udf函数 1.继承UDF类 2.重写evaluate方法 3.把项目打成jar包 4.hive中执行命令add jar /home/jrjt/dwetl/PUB/UDF/udf/GetProperty.jar; 5.创建函数create temporary function get_pro as 'jd.Get_Property'//jd.jd.Get_Property为类路径; 9.查询显示列名 及 行转列显示 set hive.cli.print.header=true; // 打印列名 set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能 set hive.cli.print.row.to.vertical.num=1; // 设置每行显示的列数 10.查看表文件大小,下载文件到某个目录,显示多少行到某个文件 dfs -du hdfs://BJYZH3-HD-JRJT-4137.jd.com:54310/user/jrjt/warehouse/stage.db/s_h02_click_log; dfs -get /user/jrjt/warehouse/ods.db/o_h02_click_log_i_new/dt=2014-01-21/000212_0 /home/jrjt/testan/; head -n 1000 文件名 > 文件名 11.杀死某个任务 不在hive shell中执行 hadoop job -kill job_201403041453_58315 12.hive-wui路径 http://172.17.41.38/jobtracker.jsp 13.删除分区 alter table tmp_h02_click_log_baitiao drop partition(dt='2014-03-01'); alter table d_h02_click_log_basic_d_fact drop partition(dt='2014-01-17'); 14.hive命令行操作 执行一个查询,在终端上显示mapreduce的进度,执行完毕后,最后把查询结果输出到终端上,接着hive进程退出,不会进入交互模式。 hive -e 'select table_cloum from table' -S,终端上的输出不会有mapreduce的进度,执行完毕,只会把查询结果输出到终端上。这个静音模式很实用,,通过第三方程序调用,第三方程序通过hive的标准输出获取结果集。 hive -S -e 'select table_cloum
show tables like '*name*'; 2.查看表结构信息 desc formatted table_name; desc table_name; 3.查看分区信息 show partitions table_name; 4.根据分区查询数据 select table_coulm from table_name where partition_name = '2014-02-25'; 5.查看hdfs文件信息 dfs -ls /user/hive/warehouse/table02; 6.从文件加载数据进表(OVERWRITE覆盖,追加不需要OVERWRITE关键字) LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config; --从查询语句给table插入数据 INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select * from stage.s_h02_click_log where dt='2014-01-22' limit 100; 7.导出数据到文件 insert overwrite directory '/tmp/csl_rule_cfg' select a.* from dim.dim_csl_rule_config a; hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"> /home/jrjt/testan/baitiao.dat; 8.自定义udf函数 1.继承UDF类 2.重写evaluate方法 3.把项目打成jar包 4.hive中执行命令add jar /home/jrjt/dwetl/PUB/UDF/udf/GetProperty.jar; 5.创建函数create temporary function get_pro as 'jd.Get_Property'//jd.jd.Get_Property为类路径; 9.查询显示列名 及 行转列显示 set hive.cli.print.header=true; // 打印列名 set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能 set hive.cli.print.row.to.vertical.num=1; // 设置每行显示的列数 10.查看表文件大小,下载文件到某个目录,显示多少行到某个文件 dfs -du hdfs://BJYZH3-HD-JRJT-4137.jd.com:54310/user/jrjt/warehouse/stage.db/s_h02_click_log; dfs -get /user/jrjt/warehouse/ods.db/o_h02_click_log_i_new/dt=2014-01-21/000212_0 /home/jrjt/testan/; head -n 1000 文件名 > 文件名 11.杀死某个任务 不在hive shell中执行 Hadoop job -kill job_201403041453_58315 12.hive-wui路径 http://172.17.41.38/jobtracker.jsp 13.删除分区 alter table tmp_h02_click_log_baitiao drop partition(dt='2014-03-01'); alter table d_h02_click_log_basic_d_fact drop partition(dt='2014-01-17'); 14.hive命令行操作 执行一个查询,在终端上显示mapreduce的进度,执行完毕后,最后把查询结果输出到终端上,接着hive进程退出,不会进入交互模式。 hive -e 'select table_cloum from table' -S,终端上的输出不会有mapreduce的进度,执行完毕,只会把查询结果输出到终端上。这个静音模式很实用,,通过第三方程序调用,第三方程序通过hive的标准输出获取结果集。 hive -S -e 'select table_cloum from table'
.hive模糊搜索表 show tables like '*name*'; 2.查看表结构信息 desc formatted table_name; desc table_name; 3.查看分区信息 show partitions table_name; 4.根据分区查询数据 select table_coulm from table_name where partition_name = '2014-02-25'; 5.查看hdfs文件信息 dfs -ls /user/hive/warehous
这篇博客文章概述了OpDB的NoSQL、组件集成和对象存储支持功能。这些详细信息将帮助应用程序架构师了解Cloudera的运营数据库的灵活NoSQL(No Schema)功能,以及它们是否满足正在构建的应用程序的要求。
Hive作为大数据环境下的数据仓库工具,支持基于hadoop以sql的方式执行mapreduce的任务,非常适合对大量的数据进行全量的查询分析。 本文主要讲述下hive载cli中如何导入导出数据:
分区表可以跟 partition (key1 = v1, key2 = v2, …)
今天,朋友圈和公众号被鸿蒙刷屏,作为开发者,由衷感叹人类科技已经发展得这么先进了,基于微内核的全场景分布式OS,虽然不太懂是什么意思,但仍然觉得高大上。
简介:Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
sqoop是Apache旗下一款Hadoop和关系型数据服务器之间传送数据的的工具,其核心功能主要是两点:
Apache Sqoop是在Hadoop生态体系和*RDBMS体系之间传送数据的一种工具。来自于Apache软件基金会提供。,主要用于在Hadoop(Hive)与传统的数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
rcfile格式表需要从原始的textfile 文件格式表导出数据并导入到新建好的rcfile格式表里
点击下载 链接:https://pan.baidu.com/s/1Z4VG7mPBpmW6mWpR_WcyPQ 提取码:7afc
sqoop导出数据的时候遇到问题,ERROR tool.ExportTool: Error during export: Export job failed
当我们做Load操作是,hive不会做任何数据转换,只是纯复制/移动操作,将数据文件移动到与Hive表对应的位置。
Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用–input-null-string和–input-null-non-string两个参数。导入数据时采用–null-string和–null-non-string。
根据公司MySQL数据库中存储的业务数据,针对用户相关一些维度,提取用户相关的属性字段,其中包括属性字段直接提取,金额字段的计算提起,日期字段的格式转换等,最终将一个用户的各个属性在页面进行展示。
在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字。
Sqoop (SQL to Hadoop) 是Apache顶级项⽬,官⽹地址:http://sqoop.apache.org.
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Hive存储的是逻辑上的数据仓库信息,包括表的定义、数据的存储位置(HDFS路径)、分区和表的元数据等。实际的数据文件存储在HDFS上,Hive通过HQL(Hive Query Language)实现对这些数据的SQL-like查询,本质上是将SQL查询转换为MapReduce任务在Hadoop上执行。
Sqoop的输入输出/导入导出是相对于文件系统HDFS的, 因此HDFS的导入导出如图1,图2
一直想抽个时间整理下最近的所学,断断续续接触hive也有半个多月了,大体上了解了很多Hive相关的知识。那么,一般对陌生事物的认知都会经历下面几个阶段: 为什么会出现?解决了什么问题? 如何搭建?如何使用? 如何精通? 我会在本篇粗略的介绍下前两个问题,然后给一些相关的资料。第三个问题,就得慢慢靠实践和时间积累了。 如果有什么问题,可以直接留言! 为什么出现?解决了什么问题? 背景 说到这个问题,还得先说个小故事,在很久很久以前.... 有一个叫facebook的贼有名的公司,他们内部搭建了数据仓库(
注意: 在sqoop-1.4.6以前,从MySQL中导出数据到hive表中,不能指定文件格式为parquet,只能先导入到HDFS,在从HDFS上load parquet file
Hive是一个构建在Hadoop上的数据仓库框架。最初,Hive是由Facebook开发,后来移交由Apache软件基金会开发,并作为一个Apache开源项目。
Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了import和export这两个工具。这两个工具非常强大,提供了很多选项帮助我们完成数据的迁移和同步。比如,下面两个潜在的需求:
序:map客户端使用jdbc向数据库发送查询语句,将会拿到所有数据到map的客户端,安装jdbc的原理,数据全部缓存在内存中,但是内存没有出现爆掉情况,这是因为1.3以后,对jdbc进行了优化,改进jdbc内部原理,将数据写入磁盘存储了。
3.全量导入(将数据从mysql导入到hive,hive表不存在,导入时自动创建hive表)
Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易。Apache Sqoop正在加紧帮助客户将重要数据从数据库移到Hadoop。随着Hadoop和关系型数据库之间的数据移动渐渐变成一个标准的流程,云管理员们能够利用Sqoop的并行批量数据加载能力来简化这一流程,降低编写自定义数据加载脚本的需求。
一.安装SQOOP后可使用如下命令列出mysql数据库中的所有数据库,与检验是否安装成功。 # sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456
细细品味这首诗,忽然发觉以前学这首诗的意义在于背诵和考试,如今细细品味这首诗,不禁感叹意境真好。天色微凉,牵着手,一起爬山那高高的山头看那天边的牵牛织女星,多么美好的夜晚。古人的生活比现在的生活惬意多了。
什么是HIVE?HIVE是建立在Hadoop HDFS上的数据仓库基础架构,它可以用来进行数据的提取转换加载。HIVE定义了简单的类似SQL的查询语言HQL,HIVE会将解析后的语句转移成MapReduce Job在Hadoop执行,一张Hive的表其实就是HDFS的文件
1Q: 是否有像类似于phpmyadmin一样的hive查询客户端,能以界面的方式查询hive语句和导出数据 A: 有的,客户端的话可以使用squirrel来连接hive,squirrel是一个通用的数据库查询客户端,还有有一个开源项目phphiveadmin也不错, web方式访问hive,这里也有一个hive web client(https://github.com/lalaguozhe/hiveweb-1) 2Q: 执行语句时候,能否控制reducer的个数 A: 可以在执行hiv
伴随着技术的不断发展与进步,我们会接触和使用越来越多的数据源。从经久不衰的MySQL、Oracle、SQLserver、DB2等关系数据库,到方兴未艾的MongoDB、Redis、Cassandra等NoSQL产品,再到屡见不鲜的各种大数据组件,如Hive、Impala、HBase、Phoenix、Spark,以及林林总总的时序数据库、全文检索系统、图数据库等等。如果有一个Client,能够连接所有这些数据源,并将常规开发环境(如SQL脚本)都集中在一个GUI中,则必将为技术人员节省大量寻找并熟悉相应工具的时间,从而提高工作效率。正所谓工欲善其事,必先利其器,本篇介绍的DBeaver正是这样一款工具软件。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/51804557
我们在日常开发中需要经常接触到关系型数据库,如MySQL,Oracle等等,用它们来将处理后的数据进行存储。为了能够在Hadoop上分析这些数据,我们需要一些“工具”,将关系型数据库中的结构化数据存储到HDFS上。本篇文章,菌哥将介绍的一个操作最简单,同时也是在工作中使用频率极高的开源组件——Sqoop,希望您能在耐心看完之后,有所收获!
对于数据仓库,大数据集成类应用,通常会采用ETL工具辅助完成。ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。当前的很多应用也存在大量的ELT应用模式。常见的ETL工具或类ETL的数据集成同步工具很多,以下对开源的Sqoop、dataX、Kettle、Canal、StreamSetst进行简单梳理比较。
领取专属 10元无门槛券
手把手带您无忧上云