Bugs

微笑的周末


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • github

使用 Google Guava 快乐编程

发表于 2018-10-25 | 分类于 guava
字数统计: 2.2k 字 | 阅读时长 ≈ 8 分钟
本文由 简悦 SimpRead 转码, 原文地址 https://juejin.im/post/5bbdb2cff265da0afb3364d6?utm_source=gold_browser_extension 目前 Google Guava 在实际应用中非常广泛,本篇博客将以博主对 Guava 使用的认识以及在项目中的经验来给大家分享!正如标题所言,学习使用 Google Guava 可以让你快乐编程,写出优雅的 JAVA 代码! 以面向对象思想处理字符串: Joiner/Splitter/CharMatcher JDK 提供的 String 还不够好么? 也许还不够友好,至少让我们用起来还不够爽,还得操心! 举个栗子,比如 String 提供的 split 方法,我们得关心空字符串吧,还得考虑返回的结果中存在 null 元素吧,只提供了前后 trim 的方法(如果我想对中间元素进行 trim 呢)。 那么,看下面的代码示例,guava 让你不必在操心这些: Joiner/S ...
阅读全文 »

Spark 的运行原理

发表于 2018-10-25 | 分类于 大数据
字数统计: 5.1k 字 | 阅读时长 ≈ 18 分钟
本文由 简悦 SimpRead 转码, 原文地址 https://juejin.im/post/5bb023bbe51d450ea52fdb3e?utm_source=gold_browser_extension 博客地址:joey771.cn/2018/10/25/… spark 的运行原理在大数据开发岗面试过程中是经常被问到的一个问题,我第一次被问到这个问题的时候有点摸不着头脑,这么大的一个问题我究竟应该怎样回答呢?是去描述一下 spark 的架构组成还是说一下底层的调用细节?后来查找了一些资料,看了一些书之后对这个问题有了一些理解,其实提这个问题的人可能最希望我们回答的是 Spark 运行的过程细节,简单来说就是把某个 Spark 程序从提交到执行完成中间经历了哪些步骤描述出来。如果在描述的过程中能够加入一些对 Spark 底层源码细节的解释会给提问者留下比较好的印象,认为你不仅仅是停留在使用 Spark 上,还对底层源码的原理有所了解。 简单描述 Spark 的运行原理 用户 ...
阅读全文 »

数据库 SQL 优化大总结之:百万级数据库优化方案

发表于 2018-10-25 | 分类于 数据库
字数统计: 2.7k 字 | 阅读时长 ≈ 9 分钟
本文由 简悦 SimpRead 转码, 原文地址 https://juejin.im/entry/5bd1091d6fb9a05d3b33afb9?utm_source=gold_browser_extension 网上关于 SQL 优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。 1. 对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 1select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注、描述、评论之类的可以设置为 NULL, ...
阅读全文 »

漫谈数据仓库之拉链表(原理、设计以及在 Hive 中的实现)

发表于 2018-10-25 | 分类于 大数据
字数统计: 3.3k 字 | 阅读时长 ≈ 12 分钟
本文由 简悦 SimpRead 转码, 原文地址 https://juejin.im/entry/5bd118415188252734475184?utm_source=gold_browser_extension 0x00 前言 本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。 全文由下面几个部分组成: 先分享一下拉链表的用途、什么是拉链表。 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。 举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在 Hive 的大规模使用,我们会以 Hive 场景下的设计为例)。 分析一下拉链表的优缺点,并对前面的提到的一些内容进行补充说明,比如说拉链表和流水表的区别。 0x01 什么是拉链表拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变 ...
阅读全文 »

未命名

发表于 2018-10-23
字数统计: 45 字 | 阅读时长 ≈ 1 分钟
将所有的责任连中的处理的名称放入list中,然后设置为配置文件,在程序中读取后,通过反射来一一循环调用
阅读全文 »

Java - 线程池 ThreadPool 专题详解

发表于 2018-10-18 | 分类于 java
字数统计: 5.9k 字 | 阅读时长 ≈ 22 分钟
去美团面试,问到了什么是线程池,如何使用,为什么要用, 以下做个总结。关于线程之前也写过一篇文章《高级面试题总结—线程池还能这么玩?》 1、什么是线程池:java.util.concurrent.Executors 提供了一个 java.util.concurrent.Executor 接口的实现用于创建线程池 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程池包括以下四个基本组成部分: 1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务; 2、工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环的执行任务; 3、任务接口(Task): ...
阅读全文 »

JVM 优化之调整大内存分页

发表于 2018-10-18 | 分类于 java
字数统计: 1.2k 字 | 阅读时长 ≈ 4 分钟
转自:http://cjjwzs.iteye.com/blog/1059381 本文将从内存分页的原理,如何调整分页大小两节内容,向你阐述 LargePage 对 JVM 的性能有何提升作用,并在文末点明了大内分页的副作用。OK,让我们开始吧! 内存分页大小对性能的提升原理首先,我们需要回顾一小部分计算机组成原理,这对理解大内存分页至于 JVM 性能的提升是有好处的。 什么是内存分页? 我们知道,CPU 是通过寻址来访问内存的。32 位 CPU 的寻址宽度是 0~0xFFFFFFFF ,计算后得到的大小是 4G,也就是说可支持的物理内存最大是 4G。 但在实践过程中,碰到了这样的问题,程序需要使用 4G 内存,而可用物理内存小于 4G,导致程序不得不降低内存占用。为了解决此类问题,现代 CPU 引入了 MMU(Memory Management Unit 内存管理单元)。 MMU 的核心思想是利用虚拟地址替代物理地址,即 CPU 寻址时使用虚址,由 MMU 负责将虚址映射为物理地址。M ...
阅读全文 »

JVM——G1 收集器

发表于 2018-10-18 | 分类于 java
字数统计: 6.8k 字 | 阅读时长 ≈ 24 分钟
原文链接:http://www.dubby.cn/detail.html?id=9059 1. 概述硬件和软件要求 操作系统要求 Windows XP 或者更高,Mac OS X 和 Linux 都可以。请注意,这些测试操作是在 Windows 7 上完成的,尚未在所有平台上进行测试。 但是,一切都应该在 OS X 或 Linux 上正常工作。 当然,你的机器有一个以上的核心就更好了。 Java 7 Update 9 或者更高版本。 最新的 Java 7 Demos 和示例 Zip。 准备内容 安装好 Java 7u9 或者更高版本。 从官网下载下来示例代码,解压后,比如放在 C:\javademos 下。 2. Java 和 JVMJava 预览Java 是 Sun Microsystems 在 1995 年首次发布的编程语言和计算平台。它是支持 Java 程序(包括通用工具,游戏和商业应用程序)的基础技术。 Java 运行在全世界超过 8.5 亿台个人计算机上,并在全球数十亿台设 ...
阅读全文 »

从实际案例聊聊 Java 应用的 GC 优化

发表于 2018-10-18 | 分类于 java
字数统计: 6.6k 字 | 阅读时长 ≈ 23 分钟
从实际案例聊聊 Java 应用的 GC 优化当 Java 程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为 GC 优化。但 GC 算法复杂,影响 GC 性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了 GC 优化的难度。即便如此,GC 调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的 GC 优化策略和相关实践案例,主要包括如下内容: 优化前准备: 简单回顾 JVM 相关知识、介绍 GC 优化的一些通用策略。优化方法: 介绍调优的一般流程:明确优化目标→优化→跟踪优化结果。优化案例: 简述笔者所在团队遇到的 GC 问题以及优化方案。 一、优化前的准备GC 优化需知为了更好地理解本篇所介绍的内容,你需要了解如下内容。 GC 相关基础知识,包括但不限于:a) GC 工作原理。b) 理解新生代、老年代、晋升等术语含义。c) 可以看懂 GC 日志。 GC 优化不能解决一切性能问题,它是最后的调优手段 ...
阅读全文 »

视频项目下的Spark

发表于 2018-10-16 | 分类于 项目
字数统计: 461 字 | 阅读时长 ≈ 1 分钟
1. 使用情况项目背景项目主要是根据市场部所有数据来源作为数据源,将数据进行简单的ETL后的数据为市场部的数据参考。部分数据可以定制即市场部根据需要从其他系统或客户处获取相关数据。 数据经过业务人员的具体场景需要进行归并和聚合,并通过三方过滤系统对数据的属性进行分析和预测。 项目基于AWS的组件来完成相关数据的处理: S3: 存储csv或parquet的数据源文件 EMR: 用于集群spark的任务 Lambda: 用service less Athena: 用于查询S3中的数据 采用基于Scala的Spark程序进行计算,通过Apache-Airflow进行调度 InBound: OutBound: 数据情况总体上将数据根据其服务分为now和go两个大的分支,因为来源数据的规则不同导致2个数据的处理过程有一定的差别,但是具体的处理流程大体相同和相似。数据的格式稍有不同。 根据视频流的特点进行数据节点的划分: stream -> asset -> season -> ...
阅读全文 »
12…10

Dean Wang

92 日志
20 分类
36 标签
GitHub E-Mail
© 2018 Dean Wang | Site words total count: 292.5k
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4