自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Kafka Schema Registry简介

Schema RegistrySchema Registry为你的元数据信息提供服务层。它提供了RESTFUL接口用于存储Avro schemas,它存有版本化的历史记录,提供多个兼容性设置,并根据兼容性设置对schema进行调整。APISchemasGET /schemas/ids/{int:id}通过input id获取schema string,id是schema的...

2019-07-05 17:01:22 6232

原创 Git常用命令

Git是一个强大的代码版本管理工具记录一下常用的Git命令:git clone <url>                            clone远程版本库git status                           查看当前状态git add .                           跟踪所有改动过的文件git commit -...

2018-07-22 15:50:22 275

原创 RDD 作业的DAG是如何切分的?

 我们都知道,RDD存在着依赖关系,这些依赖关系形成了有向无环图DAG,DAG通过DAGScheduler进行Stage的划分,并基于每个Stage生成了TaskSet,提交给TaskScheduler。那么这整个过程在源码中是如何体现的呢?  1.作业的提交1// SparkContext.scala2  dagScheduler.runJob(rdd, cleanedFunc, partiti...

2018-06-25 14:23:24 1062

原创 RDD dependency源码详解

一、RDD的依赖关系    RDD的依赖关系分为两类:宽依赖和窄依赖。我们可以这样认为:    (1)窄依赖:每个parent RDD 的 partition 最多被 child RDD 的一个partition 使用。    (2)宽依赖:每个parent RDD partition 被多个 child RDD 的partition 使用。    窄依赖每个 child RDD 的 partit...

2018-06-05 22:17:41 405

原创 Spark动态内存源码总结

一、Spark内存管理模式    Spark有两种内存管理模式,静态内存管理(Static MemoryManager)和动态(统一)内存管理(Unified MemoryManager)。动态内存管理从Spark1.6开始引入,在SparkEnv.scala中的源码可以看到,Spark目前默认采用动态内存管理模式,若将spark.memory.useLegacyMode设置为true,则会改为采...

2018-06-04 13:23:11 640

原创 为什么要重写equals()和hashcode()方法?

equals()和hashcode()方法都是Object对象中的方法。equals和hashcode间有如下规则:(1)如果两对像相同(即用equals比较返回true),那么它们的hashcode值一定相同(2)如果两个对象的hashcode相同,它们不一定相同(即equals比较返回不一定为true)为什么要重写equals方法?    如果不重写equals,那么比较的是对象的引用是否指向...

2018-05-28 10:17:08 448

原创 原生态hadoop下启动hive-1.1.0-cdh5.7.0报错

原生态hadoop下启动hive-1.1.0-cdh5.7.0,hdfs,yarn正常启动,hive报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/MRVersion at org.apache.hadoop.hive.shims.Hadoop23Shims.isMR2(H...

2018-05-10 20:12:27 2432 3

原创 Sqoop将输出文件设置为avro报错

Sqoop将输出文件设置为avro报错Error: org.apache.avro.reflect.ReflectData.addLogicalTypeConversion(Lorg/apache/avro/Conversion;)Vsqoop使用avro1.8.0,hadoop使用avro1.7.4或1.7.5,版本不一致解决办法:在import后面接参数:-Dmapreduce.j

2018-05-10 15:15:14 1835

原创 sqoop从mysql导入数据到hdfs报错:Connection refused 无法连接10020端口

sqoop从mysql导入数据到hdfs,报错java.net.ConnectException: Call From bigdata001/192.168.254.128 to bigdata001:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more det

2018-05-05 11:08:19 2887

原创 zookeeper多节点部署

1.首先去官网zookeeper.apache.org下载zookeeper压缩包。2.解压:tar -zxvf zookeeper3.软连接:ln -s zookeeper-3.4.5 zookeeper4.配置环境变量:~/.bash_profile export ZK_HOME=xxxexport PATH=$ZK_HOME/bin:$PATH5.配置zookeepe

2018-04-21 11:41:21 1573

原创 ssh免密码登录方法

假设有两台服务器master,slave需要ssh免密码登录。首先在master上:ssh-keygen -t rsa 一路回车此时会在~/.ssh/ 下生成,密匙对id_rsa和id_rsa.pubcp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys拷贝成authorized_keys之后ssh-copy-id master@$slave i

2018-04-21 09:36:12 252

翻译 ResourceManager High Availability

1.概述ResourceManager(RM)负责跟踪集群和应用中的资源调度,在Hadoop2.4版本以前,RM会在YARN集群中发生单点故障,High Availability(HA)特性增加了 Active/Standby RM对来避免单点故障。2.架构(1)RM Failover(RM失效备援)RM HA通过Active/Standby架构实现,在任何时刻,一个RM处于A

2018-03-14 11:33:29 226

原创 java线程的同步

当多个线程共享数据、操作共享数据的线程代码、执行操作共享代码的多条代码过程中,其他线程也会参与运算,这就会导致线程的安全问题的产生。这就需要“加锁”,加锁有两种方式(1)同步方法(2)同步代码块,关键字synchronized。Java中的每个对象都有一个Lock/Monitor,当访问某个对象的synchronized方法时,表示将该对象上锁,此时其他线程都无法再去访问该对象的syn

2018-03-13 10:33:45 180

原创 Java线程的实现方式及区别

java多线程的实现有两种方式:第一种通过继承Thread类,第二种通过Runnable接口。第一种:通过继承Thread类。该方法在新定义的子类中重写run方法,当调用start()方法时,直接执行run()通过构造函数可以重新定义线程的名字。class Thread1 extends Thread{ public Thread1(String name){

2018-03-11 19:38:55 339

原创 RDD与DataFrame的互操作

1.DataFrame与RDD互操作方式一:反射方式(1)使用反射来推断包含了特定数据类型的RDD的元数据(2)使用DataFrame API或者sql方式编程//添加隐式转换import spark.implicits._val spark = SparkSession.builder().appName("xxx").master("local[2]").getOr

2018-03-08 20:12:21 901

原创 JDBC

1.JDBC简介JDBC的全称是Java Database Connectivity,叫作java数据库连接。它包括了一组与数据库交互的api,还有与数据库进行通信的驱动程序。2.JDBC连接数据库涉及到建立一个JDBC连接的编程主要有四个步骤:(1)导入JDBC驱动:只有拥有了驱动程序我们才可以注册驱动程序完成连接的其他步骤;(2)注册JDBC驱动程序:这一步会导致JVM加载

2018-03-08 14:45:31 210

原创 Spark SQL概述

1.Spark SQL概述Spark SQL是Spark的核心组件,发布于Spark1.0.它可以运行SQL/Hive QL语句,包括UDFs,UDAFs和SerDes。它能够通过JDBC连接已经存在的BI工具。能够支持Python,Scala,Java和R语言。Spark SQL它不仅仅有访问或操作SQL的功能,还提供了其他的非常丰富的操作:外部数据源、优化。小结:(1)Spar

2018-01-24 11:33:50 305

原创 Spark及其生态圈概述

1.Spark的概述及特点    执行速度快、易用、通用2.Spark的产生背景(1)MapReduce的局限性:代码繁琐、只能支持map和reduce方法、执行效率低下、不适合迭代多次、交互式、流式的处理(2)框架多样化:1)批处理:MapReduce、Hive、Pig;2)流式处理:Storm、Jstorm;3)交互式计算:Impala这些需求都可以用Spark解决3.

2018-01-23 21:11:46 861

原创 大数据数据仓库Hive概述

1.Hive产生背景(1)MapReduce的不便性(2)HDFS上的文件缺少Schema2.Hive是什么?(1)由Facebook开源的,最初用于解决海量结构化的日志数据统计问题(2)构建在hadoop之上的数据仓库(3)Hive定义了一种类SQL查询语言:HQL(4)通常用于进行离线数据处理(采用MapReduce)(5)底层支持多种不同的执行引擎(MapRe

2018-01-21 14:51:14 584

原创 资源调度框架Yarn

1.Yarn产生背景(1)MapReduce1.X存在的问题,主节点承担风险。(2)资源利用率和运维成本,多种集群无法整合,导致资源利用率和运维成本高。集群内的所有资源管理,全部又YARN完成。2.YARN的架构

2018-01-21 11:40:09 488

原创 MapReduce概述

1.MapReduce的起源它源自谷歌的MapReduce论文,发表于2004年12月,Hadoop的MapReduce是Google MapReduce的克隆版。2.MapReduce的特点(1)易于编程。(2)良好的扩展性(3)高容错性(4)海量数据的离线处理3.MapReduce不擅长的场景(1)实时计算(2)流式处理(3)DAG计算4.MapRe

2018-01-20 16:17:33 501

原创 分布式文件系统HDFS

1.什么是HDFS?hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。源自于谷歌的GFS论文。发表于2003年,HDFS是GFS的克隆版。2.HDFS的设计目标  (1)非常巨大的分布式文件系统(2)运行在普通的廉价的硬件上(3)易拓展,为用户提供性能不错的文件存储服务3.HDFS架构HDFS是Mas

2018-01-18 17:32:45 5417

原创 Hadoop概述

1.什么是hadoop?hadoop是一个分布式系统基础架构,由apache基金会开发,用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。它包括三部分:HDFS,YARN,和MapReduce。HDFS:Hadoop分布式文件系统YARN:任务调度和集群资源管理框架。MapReduce:能够基于YARN并行的处理大规模的数据集。2.狭

2018-01-18 15:58:22 2218

原创 Spark streaming整合Kafka之Direct方式

1.spark streaming应用程序编写import org.apache.spark.SparkConfimport org.apache.spark.streaming.kafka.KafkaUtilsimport org.apache.spark.streaming.{Seconds, StreamingContext}import kafka.serializer.St

2017-12-21 10:37:26 352

原创 Spark streaming整合Kafka之Receiver方式

1.Kafka的测试确保Kafka的正常工作,为后续工作打好基础(1)启动zookeeper(2)启动kafka(3)创建topic(4)分别启动生产者和消费者,测试本topic能否正常生产和消费消息2.spark streaming应用程序开发import org.apache.spark.SparkConfimport org.apache.spark.str

2017-12-15 10:27:55 488

原创 Spark streaming整合Flume之pull方式

1.flume agent的配置simple-agent.sources = netcat-sourcesimple-agent.sinks = spark-sinksimple-agent.channels = memory-channelsimple-agent.sources.netcat-source.type = netcatsimple-agent.sour

2017-12-14 20:06:07 318

原创 Spark streaming整合flume之Push方式

1.Flume agent的配置simple-agent.sources = netcat-sourcesimple-agent.sinks = avro-sinksimple-agent.channels = memory-channelsimple-agent.sources.netcat-source.type = netcatsimple-agent.sources

2017-12-13 15:33:17 280

原创 报错 Error:scalac: missing or invalid dependency detected while loading class file ***

在开发spark应用程序时报错如图所示,这个错误困扰我整整两天,但大致知道是dependency的问题。首先我reimport了pom.xml,仍然报错,将dependency删除后添加再reimport,也是报错,这一步基本排除了pom.xml的问题。之后,我怀疑是下载到本地的包损坏,我去本地的maven仓库中查看,删除了maven仓库中的所有文件,让maven重新下载,仍然报错

2017-12-06 20:31:12 5982

原创 Flume和Kafka的整合完成实时数据采集

1.Flume和Kafka整合框架2.写FLUME的agent配置文件exec-memory-avro.confexec-memory-avro.sources = exec-sourceexec-memory-avro.sinks = avro-sinkexec-memory-avro.channels = memory-channelexec-memor

2017-12-02 10:25:26 2280

原创 Kafka Consumer Java API实现

在之前生产者的基础上1.Kafka配置类public class KafkaProperties { public static final String ZK = "192.168.254.128:2181"; public static final String TOPIC = "hello_topic"; public static final Strin

2017-12-01 20:30:13 1365 1

原创 kafka踩到的坑:kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.

kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.遇到该错误主要有以下几种原因1.服务器的zookeeper和kafka未开启2.配置文件中,没有配置advertised.host.name和advertised.port3.服务器防火墙未关闭,或者无法连接9092端口

2017-11-30 21:21:56 6513

原创 kafka producer java API的实现

1.开发环境的构建使用IDEA+MAVEN构建开发环境,可以采用Maven中scala-archetype-simple模板。2.pom.xml的配置这里scala版本为2.11.8,kafka版本为0.9.0.0 2.11.8 0.9.0.0 org.scala-lang scala-library ${

2017-11-30 20:20:59 1176

原创 kafka的基本使用

1.Kafka的架构图片来自官网,架构如图所示,第一层为消息生产者,第二层为kafka集群,第三层为消息的消费者。kafka的集群又由broker和topic组成,一个broker就相当于一个kafka,topic是相当于消息的标签,对应标签给对应的消费者消费。2.kafka的启动配置文件很重要,kafka的启动需要配置$KAFKA_HOME/config/server.p

2017-11-30 10:15:07 268

原创 Kafka的部署

1.安装Zookeeper百度cdh5,获取下载链接地址,wget命令下载Zookeeper;解压安装,tar -zxvf 2.配置Zookeeper到系统的环境变量vi ~/.bash_profileexport ZK_HOME=/home/bigdata/app/zookeeper-3.4.5-cdh5.7.0export PATH=$ZK_HOME/bin:$

2017-11-27 21:39:46 282

原创 Flume应用之三——将一个服务器上的日志实时采集到另一个服务器上

条件有限,在一台机器上进行了测试思路是这样:将一台服务器部署的flume中的sink对接到另一台服务器flume中的source。那么,agent 1:exec source + memory channel + avro sinkagent 2 : avro source + memory channel + logger sink1.写配置文件配置文件一 example3.

2017-11-27 10:59:41 5238

原创 Flume的使用之二——实时监控文件的数据变化并发送到工作台

1.写配置文件agent:exec source + memory channel + logger sinka1.sources = r1a1.sinks = k1a1.channels = c1a1.sources.r1.type = exec #exec source 可以运行一个给定的shell命令a1.sources.r1.command = tail -

2017-11-22 11:17:16 1167

原创 Flume的使用一:从指定端口采集数据发送到工作台

1.写配置文件(1)配置Source(2)配置Channel(3)配置Sink(4)串联三个组件a1:agent的名称r1:source的名称k1:sink的名称c1:channel的名称#agent的定义a1.sources = r1a1.sinks=k1a1.channels=c1#描述、配置sourcea1.sources.r1.typ

2017-11-19 20:07:56 1208

原创 Flume环境部署

1.Flume安装前置条件(1)Java1.7或以上版本(2)足够的内存(3)足够的磁盘空间(4)目录读写权限2.Flume的下载搜索cdh5,找到flume-ng-1.6.0-cdh5.7.0.tar.gz,右键复制链接地址,wget下载flume的安装包3.Flume的安装将下载好的安装包解压到相应目录,tar -zvxf -C4.Flume环境变量配置

2017-11-18 17:35:09 367

原创 初识实时流处理

这是实时流处理的一般架构,我们在手机或者是网站上的访问或搜索操作都会有一条日志信息记录到WebServer上,之后我们借助日志收集框架Flume把实时的日志收集过来,再通过消息队列Kafka传入到Spark/Storm,这里的Kafka起到一个缓冲作用,业务逻辑完成后,将结果写入到数据库中,最后通过前端可视化把结果展示。

2017-11-17 20:10:31 322

原创 Spark源码的下载和编译

1.spark的下载打开网址spark.apache.org,点击download,选择想要下载的版本,我这里选择了最新的2.2.0版本在choose a package type 中选择source code,获取spark2.2.0的下载镜像,即可完成下载。(官网有时候版本切换会有问题,可以在download spark下方的signatures and checksums中选择想

2017-11-15 16:52:08 6640

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除