自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 03 Kafka 原理介绍

flume:海量日志采集工具。缺点:1.数据主要保存在内存,容易丢失,2.不容易添加消费者,3.使用sink推送模式改善:1.把数据保存成文件,但性能可能会低,并设置数据的生命周期;2.当数据量过大时,需要添加服务器,就需要使用负载均衡器或者注册中心(协调调度中心);kafka通过hashmap计算hash值,然后做15位的位运算来确定索引,做完位运算的值范围是0~15,所以,hashmap数组的默认长度是16,减一得到15,hashmap在扩容的时候一定要是2的n次方,因.

2020-12-24 12:08:35 67

原创 02 Kafka 分布式原理 系统

负载均衡器不需要写业务逻辑,所以运行很快,但是访问量大时仍可能崩溃,因为压力都在负载均衡器上。负载均衡器分配的请求还需要等待请求相应之后,再通过负载均衡器返回给调用方。(服务器端的负载均衡)使用注册中心时,请求先访问注册中心(zookeeper),拿到所需要的服务器的地址,然后自己通过轮询分配请求,然后去直接访问所需要的服务器并得到结果(客户端的负载均衡)。分两步走,压力会显著下降。OCP开发原则:“开放-封闭”(Open-Close Principle,OCP)原则。...

2020-12-23 16:45:33 92

原创 01 Kafka 分布式原理 集群

jvm内存分为三个区域,方法区 存类的信息,堆 用来做存储,栈 用来做运行,所以main方法从栈开始执行,创建一个栈帧,new 一个类的时候栈会参考方法区中类的属性在堆里面创建类,方法区的东西也称为类模板jvm里面,每个线程都会有一个栈空间,所以当请求(线程)过多时,内存就会不足,没有多余的内存分配栈空间,就会出现栈内存溢出。当添加机器做相同的服务时,需要添加负载均衡器,来调度请求。创建连接资源消耗会很大,所以创建数据库链接的消耗很大,使用完要释放,同时最好使用..

2020-12-23 16:36:40 93

转载 Kafka与Logstash的数据采集对接 —— 看图说话,从运行机制到部署

转自:https://blog.csdn.net/jiankunking/article/details/67636487基于Logstash跑通Kafka还是需要注意很多东西,最重要的就是理解Kafka的原理。Logstash工作原理由于Kafka采用解耦的设计思想,并非原始的发布订阅,生产者负责产生消息,直接推送给消费者。而是在中间加入持久化层——broker,生产者把数据存放在broker中...

2018-03-27 09:19:34 910

转载 SSM(SPRING+SPRINGMVC+MYBATIS)框架搭建详细教程【附源代码DEMO】

http://www.cnblogs.com/qixiaoyizhan/p/7751732.html【前言】  应某网络友人邀约,需要一个SSM框架的Demo作为基础学习资料,于是乎,就有了本文。一个从零开始的SSM框架Demo对一个新手来说,是非常重要的,可大大减少在学习过程中遇到的各种各样的坑,说到最后,也算是助人为乐吧!下面我们从零开始进行SSM框架的搭建,在介绍最后,我会把项目部署在Git...

2018-03-21 09:57:39 530

转载 ELK 日志分析系统

大纲:一、简介二、Logstash三、Redis四、Elasticsearch五、Kinaba一、简介1、核心组成ELK由Elasticsearch、Logstash和Kibana三部分组件组成;Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,...

2018-03-20 15:43:03 204

转载 HBase 深入浅出

HBase 在大数据生态圈中的位置提到大数据的存储,大多数人首先联想到的是 Hadoop 和 Hadoop 中的 HDFS 模块。大家熟知的 Spark、以及 Hadoop 的 MapReduce,可以理解为一种计算框架。而 HDFS,我们可以认为是为计算框架服务的存储层。因此不管是 Spark 还是 MapReduce,都需要使用 HDFS 作为默认的持久化存储层。那么 HBase 又是什么,可...

2018-03-19 17:25:17 219

转载 JavaBean的用法

JavaBean是一个可重复使用的软件组件,是用Java语言编写的、遵循一定标准的类。JavaBean是Java Web的重要组件,它封装了数据和操作的功能类,供JSP和Servlet调用,完成数据封装和数据处理等功能。 既然JavaBean是一个遵循标准的类,那么标准是什么?JavaBean的设计规则:JavaBean是一个公共类。JavaBean类具有一个公共无参的构造方法。JavaBean所...

2018-03-19 09:52:41 320

转载 Apache与Nginx,tomcat的优缺点比较

Apache与Nginx的优缺点比较 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: rewrite ,...

2018-03-16 17:42:03 555

转载 化繁为简,快速完成 Spark 大数据平台机群配置

Ambari 是 Apache Software Foundation 中的一个基于 web 的顶级开源项目,其自身也是一个分布式架构的软件,主要由两部分组成: Ambari Server 和 Ambari Agent 。 它是集创建、管理、监视 Hadoop 生态圈中众多软件为一体的一个工具。 它为大数据平台的搭建 ,可视化分析及运维提供了巨大的便利。 目前, Ambari 的最新发布版本为 2...

2018-03-16 16:14:14 415

转载 操作技巧:将 Spark 中的文本转换为 Parquet 以提升性能

列式存储布局(比如 Parquet)可以加速查询,因为它只检查所有需要的列并对它们的值执行计算,因此只读取一个数据文件或表的小部分数据。Parquet 还支持灵活的压缩选项,因此可以显著减少磁盘上的存储。如果您在 HDFS 上拥有基于文本的数据文件或表,而且正在使用 Spark SQL 对它们执行查询,那么强烈推荐将文本数据文件转换为 Parquet 数据文件,以实现性能和存储收益。当然,转换需要...

2018-03-16 15:55:55 1191

转载 使用 ML Pipeline 构建机器学习工作流

转载自:https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice5/引言使用机器学习 (Machine Learning) 技术和方法来解决实际问题,已经被成功应用到多个领域,我们经常能够看到的实例有个性推荐系统,金融反欺诈,自然语言处理和机器翻译,模式识别,智能控制等。一个典型的机器学习机器学习过程通常会包含:源数...

2018-03-16 15:48:39 301

转载 Apache Spark 内存管理详解

Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuff...

2018-03-16 15:21:55 464

转载 Java 9 新特性概述

Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。 本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9。Java 平台 模块系统Java 平台模块系统,也就是 Project Jigsaw,把...

2018-03-16 15:12:58 166

转载 TiDB 的正确使用姿势

最近这几个月,特别是 TiDB RC1 发布后,越来越多的用户已经开始测试起来,也有很多朋友已经在生产环境中使用,我们这边也陆续的收到了很多用户的测试和使用反馈。非常感谢各位小伙伴和早期用户的厚爱,而且看了这么多场景后,也总结出了一些 TiDB 的使用实践 (其实 Spanner 的最佳实践大部分在 TiDB 中也是适用的,MySQL 最佳实践也是),也是借着 Google Cloud Spann...

2018-03-16 13:09:40 1513

转载 对jsonarray中某个对象的某一个字段进行排序

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fast...

2018-03-16 11:27:36 1376

转载 java根据经纬度坐标计算两点的距离算法

根据经纬度计算距离,这个方法很精确,与百度地图的测距相差不到1米。我是利用百度地图拾取坐标系统(http://api.map.baidu.com/lbsapi/getpoint/index.html)和百度地图测距的工具测试的。[html] view plain copy/**    * Created by yuliang on 2015/3/20.    */    public class ...

2018-03-16 11:20:58 300

转载 Spring+SpringMVc+Mybatis实现数据库查询

大家好,本篇博客小Y将会给大家带来一篇SSM框架实现数据查询的Demo,使用的数据库是Mysql,Server是TomCat.现在的SSM整合非常流行,因为springmvc的高效和mybatis的灵活、高效,给企业开发带来了很大的好处,大大节省了开发成本。好了,啰嗦了这么多,其实就想告诉大家ssm框架的优秀之处,那么开门见山,让我们开始本次的博客吧。本篇博客的目录:1:SSM框架搭建环境2:编写...

2018-03-15 17:53:58 1783

转载 微信小程序与Java后台的通信

一、写在前面最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很明白小程序如何与后台进行通信的,然后查找资料发现结合了官方提供的api后好像和我们普通的web前后端通信也没有多大的区别,有想法后就写了这个测试程序。二、API文档wx.request(OBJECT)发起网络请求。使用前请先阅读说明。...

2018-03-15 16:42:06 4827 1

转载 IntelliJ IDEA上创建Maven Spring MVC项目

各软件版本利用maven骨架建立一个webapp建立相应的目录配置Maven和SpringMVC配置Maven的pom.xml配置web.xml配置contextConfigLocation文件配置log4j.propertiescontroller和view的编写servlet容器的配置和运行配置本地的tomcat服务器配置maven插件运行第一个Spring MVC应用目前java开发主流的I...

2018-03-15 14:50:00 127

转载 Intellij IDEA 生成Get/Set方法快捷键

从Eclipse到IDEA,已是第三天,好不容易适应了视觉上的改变,但快捷键的改变依然困扰着我。尽管有方法使IDEA的快捷键改为何Eclipse一样,但既然换了作战工具,还是熟悉自带的比较好。Alt + Insert 组合,可唤出选择面板:选择自己需要的选项即可!...

2018-03-15 14:43:39 4139

转载 Scala简明教程

Scala是一门多范式(multi-paradigm)的编程语言。Scala源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。洛桑联邦理工学院的Martin Odersky于2001年基于Funnel的工作开始设计Scala。Funnel是把函数式编程思想和佩特里网相结合的一种编程语言。Odersky先前的工作是Generic Java和javac。Java平...

2018-03-15 14:42:33 312

转载 解决IDEA maven变更后自动重置LanguageLevel和JavaCompiler版本的问题

使用IDEA时,导入的Maven项目默认的LanguageLevel和JavaCompiler都是1.5,1.5的情况下连最简单的@Override注解都不支持。虽然可以通过setting中可以修改JavaCompiler版本和在Project Structure可以修改LanguageLevel,但是一旦Maven项目有变化,甚至刷新一下pom.xml,IDEA会重置这些配置。相当的苦逼。苦逼如...

2018-03-15 14:41:02 5012 1

转载 机器学习相关——协同过滤

在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。下面直接进入正题1 什么是协同过滤协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电...

2018-03-14 11:27:56 184

转载 linux多线程编程书籍推荐:linux大牛之路从这几本书开始

linux多线程编程是指基于Linux操作系统下的多线程编程,包括多任务程序的设计,并发程序设计,网络程序设计,数据共享等。Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。小编今天就来把几本linux多线程编程书籍推荐给大家,希望能够帮助到想要了解和学习linux多线程编程...

2018-03-14 11:10:30 5377

转载 Linux下多线程编程互斥锁和条件变量的简单使用

Linux下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,链接时需要使用库libpthread.a。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但是它可与同属一个进程的其它的线程共享进程所...

2018-03-14 10:54:46 317

转载 Linux 多线程编程

##概念原来指向main()的线程叫做主线程(main thread)使用pthread_create()创建出来的线程,叫做子线程(child thread)主/子线程只有在创建时才有区别, 创建完了就一视同仁, 都是一样的独立个体, 可以有交流、共享和私有, 但没有上下级, 这一点和多进程一样, 只有在创建的瞬间才有parent process 和child process 的区别, 创建完了...

2018-03-14 10:48:03 86

转载 论fork()函数与Linux中的多线程编程

一、fork()函数    在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位)。在Linux系统中创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程)。系统调用函数fork()是创建一个新进程的唯一方式,当然vfork()也可以创建进程,但是实际上其还是调用了fork()函数。fork()函数是Lin...

2018-03-14 10:42:52 151

转载 linux多线程在/proc目录的结构

linux的多线程,其实就是clone系统调用的实现的(共享文件等)首先看个具体的例子:[cpp] view plain copy#include <stdio.h>    #include <stdlib.h>    #include <pthread.h>    #include <unistd.h>  #include <string.h...

2018-03-14 10:31:36 714

转载 在Linux中使用线程

我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级。首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代码:[cpp] view plain copy#include <pthread.h>  当然,进包含一个头文件是...

2018-03-14 10:19:35 101

转载 Linux--多线程之线程的创建和退出

#include "apue.h"  /**  1.main函数的线程称为初始线程或主线程,主线程在main函数返回的时候,会导致  整个进程结束。可以在主线程中使用pthread_exit函数 退出主线程 如此,  进程会等待所有的线程结束时候才终止  */  struct person{      int age;      char name[10];  };    void *thread...

2018-03-14 10:02:10 132

转载 Linux下线程的概念和使用

一. 概念   首先Linux并不存在真正的线程,Linux的线程是使用进程模拟的。当我们需要在一个进程中同时运行多个执行流时,我们并不可以开辟多个进程执行我们的操作(32位机器里每个进程认为它 独享 4G的内存资源),此时便引入了线程,例如当我们既需要下载内容,又需要浏览网页时,此时多线程便起了作用。线程是承担调度的基本单位,一个进程可拥有多个线程,它的执行力度比进程更加细致,线程资源共享。 二...

2018-03-14 10:00:56 130

转载 Hadoop回收站机制

1、简介在HDFS里,删除文件时,不会真正的删除,其实是放入回收站/trash,回收站里的文件可以快速恢复。可以设置一个时间阀值,当回收站里文件的存放时间超过这个阀值或是回收站被清空时,文件才会被彻底删除,并且释放占用的数据块。2、回收站功能启用Hadoop的回收站trash功能默认是关闭的,所以需要在core-site.xml中手动开启。修改core-site.xml,增加[在每个节点(不仅仅是...

2018-03-14 09:49:20 370

转载 专注年轻一代,基于E-MapReduce梨视频推荐系统

梨视频简介梨视频是中国领先的资讯类短视频生产者,由资深媒体背景的专业团队和遍布全球的拍客网络共同创造,专注为年青一代提供适合移动端观看和分享的短视频产品。梨视频是跨平台的、开放的新媒体公司,其视频业务覆盖多个领域,经过深度编辑的聚合内容和独家的原创报道,与创新技术和工具结合后,为移动互联网时代的视频生产和消费提供了新标准。基于阿里云的数据处理系统下面来介绍一下梨视频采用阿里云搭建的数据处理系统。对...

2018-03-09 09:12:03 809

转载 开发 | 提升 1 倍运行效率!有了这些技巧,你的小程序也能快如闪电

微信小程序的一大优势体现在「小」上面,小而轻的微信小程序,能给用户带来非常良好的体验。但是要想将小程序轻快的特点发挥到极致,开发者还是要多下一点功夫。本期,知晓程序(微信号 zxcx0101)就来为你介绍一些,能够增强小程序用户体验的手段和方法。关注「知晓程序」微信公众号,回复「开发」,获取让小程序更高级的视觉效果代码。1. 压缩小程序包体积从点击打开一个微信小程序,到第一个页面加载完,通常情况下...

2018-03-08 16:29:50 195

转载 微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍

微信小程序可以理解为云OS的概念,微信生态本身就是一个OS。加上微信公众平台和微信开发平台本身已经是非常成熟的架构,能够完美媲美App的功能,同时在交互体验方面也能够做到极致,大有取代App之势。苹果App Store模式的意义在于为第三方软件的提供者提供了方便而又高效的一个软件销售平台。用户购买应用所支付的费用由苹果与应用开发商3:7分成。如果微信小程序商城也采用类似的分佣模式,那8亿多的用户将...

2018-03-08 10:56:13 4292

空空如也

空空如也

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

TA关注的人

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