金沙js333com > 育儿经验 > LinkedIn在2015年2月开源的、为,Hadoop的集群管理和

原标题:LinkedIn在2015年2月开源的、为,Hadoop的集群管理和

浏览次数:185 时间:2019-12-02

Hadoop实战(5)_Hadoop的运营涉世

1

Sqoop export

# mysql test
create table so1 as 
select * from so where 1=0;

源头必得是HDFS/Hive,目的关周全据库。

表so1的datelast_modify_time修改为varchar

1
2
3
4
5

案例生机勃勃:把数据导入到HDFS上

/root/project
mkdir sqoop_prj
cd sqoop_prj/
mkdir DBS
cd DBS/
touch DBS.opt

hadoop fs -mkdir /user/hive/warehouse/DBS
which sqoop

实践opt文件,无法传参,sqoop --options-file aa.opt-m,钦定map数,假设抽出的表数据量大,则调大map数。要是-m设置为5,5个线程,则在HDFS上发生5个公文。

把sqoop写到shell脚本的收益,可以传参数。

#!/bin/sh
. /etc/profile

hadoop fs -rmr /user/hive/warehouse/DBS



sqoop import  --connect "jdbc:mysql://cdhmaster:3306/hive"    
--username root                                                          
--password 123456                                                        
-m    1                                                             
--table  DBS                                                           
--columns   "DB_ID,DESC,DB_LOCATION_URI,NAME,OWNER_NAME,OWNER_TYPE"         
--target-dir  "/user/hive/warehouse/DBS"    

#--where "length(DESC)>0"                                                                              
#--null-string ''

bug,驱动难点

ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@3c1a42fa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@3c1a42fa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

增添参数,参照他事他说加以侦查

https://stackoverflow.com/questions/29162447/sqoop-import-issue-with-mysql

https://stackoverflow.com/questions/26375269/sqoop-error-manager-sqlmanager-error-reading-from-database-java-sql-sqlexcept

--driver com.mysql.jdbc.Driver

追加参数后的警报,

WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.

bug,sql语法难点,

Error: java.io.IOException: SQLException in nextKeyValue

去掉关键词列DESC,参考,

https://community.cloudera.com/t5/Data-Ingestion-Integration/sqoop-throws-SQLException-in-nextKeyValue/m-p/42653

1
2
3

Hadoop实战(3)_虚构机搭建CDH的全布满情势

图片 1

案例二:数据写Hive普通表(非分区表卡塔尔(قطر‎

# mysql
create table test (id int, pdate date);
insert into test(id, pdate) values (1, '2017-11-05');
insert into test(id, pdate) values (2, '2017-11-06');
insert into test(id, pdate) values (3, '2017-11-05');
insert into test(id, pdate) values (4, '2017-11-06');

# hive
drop table if exists test;
create table test(id int, pdate string);

--hive-import,钦命要写入hive表,该参数无value。

--hive-overwrite

--hive-table,test。

(1)Source主要担任将源数据整合到一文山会海workunits中,并提议对应的extractor是哪些。那有一些近似于Hadoop的InputFormat。
(2)Extractor则通过workunit钦定数据源的新闻,比方kafka,建议topic中各类partition的初叶offset,用于此番收取使用。Gobblin使用了watermark的概念,记录每一遍收取的数据的起第几人置消息。
(3)Converter从名称想到所包含的意义是调换器的意趣,即对抽出的多寡进香港行政局部过滤、转变操作,比方将byte arrays 恐怕JSON格式的数量转换为供给输出的格式。调换操作也得以将一条数据映射成0条或多条数据(相像于flatmap操作)。
(4)Quality Checker即品质检查测量试验器,有第22中学项目标checker:record-level和task-level的政策。通过手动战略或可选的战略,将被check的数码输出到表面文件大概给出warning。
(5)Writer正是把导出的数额写出,可是此间并非直接写出到output file,而是写到三个缓冲路线( staging directory)中。当有着的多寡被写完后,才写到输出路线以便被publisher发表。Sink的路径能够回顾HDFS只怕kafka恐怕S3中,而格式能够是Avro,Parquet,大概CSV格式。相同的时候Writer也只是依据时间戳,将出口的文书输出到依据“小时”也许“天”命名的目录中。
(6)Publisher正是依据writer写出的门径,将数据输出到终极的门路。同临时候其提供2种提交机制:完全交给和风华正茂部分提交;假使是一心交由,则须要等到task成功后才pub,假设是有的提交方式,则当task失利时,有局地在staging directory的多寡已经被pub到输出路线了。
2.2 存款和储蓄状态

CDH Hadoop体系目录:

一、简介

案例三:写Hive分区表,so,salesorder

注意事项:

1、用什么字段做分区?
创办时间,并不是last_modify_time

Q: 用创造时间抽出至hive分区,订单状态变化周期是45天,订单状态变化后,hive数据怎么样一起?

hive不扶持update,天天抽出近15天的订单到Hive的分别分区里。Hive是做总计分析,平时最关注是前几天之处。

# cdhmaster
cd ~
mysql -uroot -p123456 < so.sql
ERROR 1046 (3D000) at line 3: No database selected

vi so.sql
use test;

mysql -uroot -p123456 < so.sql

# hive
CREATE TABLE so (
  order_id bigint,
  user_id bigint,
  order_amt double ,
  last_modify_time string
) partitioned by (date string);

Sqoop执行后,注意:

  • 会在该客商HDFS的home目录下,发生二个与源表同名的目录,如/user/root/so
    假定sqoop import至hive成功,该目录会自动删掉。
  • 在推行的目录下产生三个java文件,即opt转变的MXC90 Job代码。
  • sqoop import中,无论hive表是何许列分隔符,均能够自行相配。

Sqoop收取框架封装:

  • 建三个mysql配置表,配置须要收取的表及音讯;
  • Java读取mysql配置表,动态生成opt文件;
  • Java中推行Process类调本地系统命令—sqoop –options-file opt文件;

Sqoop-imp -task 1 "2015-04-21"

Sqoop-imp "2015-04-21"

Gobblin存在分支的定义,每一遍Job的执行都会将结果长久化到文件( SequenceFiles)中,以便下壹次进行时方可读到上次实施的任务音信(举例offset),此番履行能够从上次offset起来执行本次Job。状态的囤积会被限制时间清理,防止现身有储Infiniti增加的情形。
2.3 执行Job
假诺Job被创立后,runtime就依照Job的安顿情势举行实行。Runtime负担job/task的准期推行,状态管理,错误管理以致失败重试,监察和控制和报告等专门的学问。 对于倒闭处理,Gobblin提供了多种级其余重试机制。 对于job的调解,Gobblin能够整合Oozie,Azkaban只怕Chronos。Gobblin同一时候也支持使用Quartz来调治,当中standalone方式暗许的调整器就是Quartz。
2.4 衡量和监察
Gobblin的表征之生机勃勃正是四个端到端的度量音信的访谈系统,其衡量库中包含计数、仪表盘音讯、直方图等音信,搜罗用于监察和控制指标。
2.5 精简
对于Hive和Mapreduce职务,Gobblin提供了四分法。比方来讲正是每小时发生一个索引,之后将那些同一天发生的目录合并到一个新的目录中,成为三个高层的以天为单位的目录。
2.6 布署方式
Gobblin提供了3种配备格局:
1、standalone2、mapreduce3、mapreduce on yarn
1
2
3

Sqoop工具打包

Flow etl 实施全体已配备的表抽取。

Flow etl -task 1

Flow etl -task 1 2017-01-01

  • 读取mysql的extract_to_hdfsextract_db_info,依据配置新闻生成.opt文件。
  • 通过Java的Process类调Linux命令:sqoop --options-file opt文件

idea打包Flow.jar,'D:/Java/idea/IdeaProjects/Hive_Prj/src/META-INF/MANIFEST.MF' already exists in VFS,删掉文件夹META-INF

db.properties是会见mysql数据库的配置。

extract_db_info,收取的表来自的数据库的铺排。

Flow.jar上传至/root/project/lib

/root/project/bin,创建Flow命令。

配置FLOW_HOME

vi /etc/profile

export FLOW_HOME=/root/project

source /etc/profile

配置db.properties

# FLOW_HOME
mkdir conf

vi db.properties

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://cdhmaster:3306/test
db.user=root
db.password=123456

配置sqoop option目录sqoop/opts

# FLOW_HOME
mkdir -p sqoop/opts

假诺要在施行时发出生之日志,要求支出jar时配置log4j。

ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@310d117d is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@310d117d is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

HDFSExtract.java,扩展陈设--driver com.mysql.jdbc.Driver,重新打包上传。

作业可以对应做改善,如sh ./so.sh

# /root/project/sqoop_prj/DBS
vi so.sh

Flow etl -task 1 $yestoday

你可能还想看

数量分析/数据开掘/机器学习

Python数据发现与机械和工具学习_通讯信用危害评估实战(1卡塔尔(قطر‎——读数据

Python数据发掘与机械和工具学习_通讯信用风险评估实战(2)——数据预管理

Python数据开采与机械和工具学习_通讯信用风险评估实战(3卡塔尔(英语:State of Qatar)——特征工程

Python数据发现与机具学习_通讯信用风险评估实战(4卡塔尔(英语:State of Qatar)——模型锻练与调优

爬虫

Python爬虫实战之爬取链家圣菲波哥伦比亚大学房价_01简约的单页爬虫

Python爬虫实战之爬取链家新德里房价_02把小爬虫变大

Python爬虫实战之爬取链家华盛顿房价_03存储

Python爬虫实战之爬取链家桃园房价_04链家的依葫芦画瓢登入(记录卡塔尔(قطر‎

搜狗词库爬虫(1):基本功爬虫架商谈爬取词库分类

搜狗词库爬虫(2):幼功爬虫框架的运作流程


Wechat民众号「数据深入分析」,分享数据化学家的自个儿修养,既然遇见,不比一齐中年人。

图片 2

数码深入解析

转发请注脚:转发自Wechat大伙儿号「数据解析」


1

Hadoop实战(8)_CDH添加Hive服务及Hive基础

Converter:
LinkedIn内部的卡夫卡集群首要囤积Avro格式的数目,并对此开展一些过滤和转移。
1

Hadoop实战(9)_Hive进阶及UDF开发

1

Sqoop语法表达

Sqoop官方学习文书档案:

http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.9.0/

Sqoop import是争执于HDFS来说,即从关周详据库import到HDFS上。

mysql的驱动包放到sqoop/lib下。

Gobblin

Hadoop实战(4)_Hadoop的集群管理和财富分配

其间,Sqoop用于在关系型数据库(逍客DBMS)和HDFS之间相互传输数据,Flume重要用于对日记文件的搜罗,Aegisthus重要用来从Cassandra抽出数据,而Morphlines则贴近于Gobblin中的转变器,作为插件同盟Sqoop和Flume使用。
而是,相对于其余相似框架,Gobblin的安顿有3个第豆蔻梢头的靶子:
1、遍布性2、可扩张性3、可操作性
1
2
3

Quality Checker:
LinkedIn中数量都会满含贰个日子戳,以便调整松开哪个“时辰”目录和“天”目录。对于尚猴时间戳的多少,则会依据record-level的国策将那几个多少写到外界文件中。
1

2.1 Job组件
Gobblin提供了6个例外的零件接口,因而轻松扩大并进行定制化开采。 这么些组件包涵:
1、source2、extractor3、convertor4、quality checker5、writer6、publisher
1
2
3
4
5
6

Writer and Publisher:
个中使用基于时间的writer和依靠时间的publisher去写并pub数据。
1

Job安排在yarn上会极其的灵活而急速,能够运维long-running的Job。跑在Yarn上的额Job,设计上由Apache Helix和和Apache ZooKeeper扶植。Helix首要管理Container上workunits,zookeeper首要担负元数据消息的保卫安全。
三、卡夫卡到HDFS整合(流式抽出)在LinkedIn的落实
Gobblin从卡夫卡收取数据,代替了原先的 Camus项目。从卡夫卡定期收取数据,通过Job运转在Yarn上,Gobblin能够高达运营二个long-running,流管理的方式。
Source:
各个partition中初叶offset都通过Source生成到workunit中;同不常候,从state中拿走上一遍抽取结尾的offset音信,以便推断这次Job奉行的初阶offset。
1

Architecture

Flow

Extractor:
Extractor会相继抽出partition的多寡,抽出完结一个后,会将末尾offset消息存到状态存款和储蓄中。
1

图片 3

1

1

Gobblin--二个用以Hadoop的合併"数据收取框架" - lmalds的特辑 - 博客频道 - CSDN.NET http://blog.csdn.net/lmalds/article/details/53940549

图片 4

四、总结
Gobblin是叁个通用的数目整合框架,其得以收起种种分歧的数据源(Kafka,Mysql,罗克sDB等),并将这一个多少准时写入HDFS中。易于操作和监察,提供流式抽出补助。
本文主要依靠LinkedIn在二〇一六年3月刊登的Gobblin的舆论中的内容作了一些翻译和本人的敞亮,之后的小说会陆陆续续介绍怎么样在standalone和yarn上布署Gobblin的Job。
Gobblin: Unifying Data Ingestion for Hadoop

Gobblin是 LinkedIn在2014年3月开源的、为Hadoop提供的二个数据整合框架。 谈到将数据导入到HDFS,此类的框架富含:
1、Apache Sqoop2、Apache Flume3、Aegisthus4、Morphlines。。。
1
2
3
4
5

1
2
3
4
5
6

Gobblin支持琳琅满指标数据源,譬如大切诺基DBMS(Oralce、MySQL、SqlServer), Espresso,卡夫卡,罗克sDB,S3,Salesforce和GoogleAnalytics等。通过动用相近的Gobblin框架,能够非常轻便的扩大这几个数据源何况让多少搜集工作变得更其简便易行和易用。
二、Gobblin架构

1
2
3

本文由金沙js333com发布于育儿经验,转载请注明出处:LinkedIn在2015年2月开源的、为,Hadoop的集群管理和

关键词: 金沙js333com 大数据 Hadoop 玩转大数据

上一篇:手哆嗦时摇摇它,就会有一批的朋友任你挑选

下一篇:没有了