摘要: 后续个人的一些技术总结文章会写在自己的个人博客上:欢迎关注:xxx Ps:技术探讨欢迎提 issue 或者 email。 QQ:1170382650 邮箱:1170382650@qq.com Java Java基础 深入理解Java:String CoreJava:异常 CoreJava:泛型 深入 阅读全文
posted @ 2017-09-24 00:58 ^_TONY_^ 阅读(1460) 评论(1) 推荐(3) 编辑
摘要: 本文转载自https://tech.meituan.com/cache_about.html,感谢原作者的贡献 阅读全文
posted @ 2017-12-30 12:27 ^_TONY_^ 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.sysdb.cn/index.php/2016/01/10/hbase_principle/ ,感谢原作者。 简介 HBase —— Hadoop Database的简称,Google BigTable的另一种开源实现方式,从问世之初,就为了解决用大量廉价的机器高速存取 阅读全文
posted @ 2017-12-28 17:54 ^_TONY_^ 阅读(600) 评论(0) 推荐(1) 编辑
摘要: 转自https://tech.meituan.com/spark-tuning-pro.html,感谢原作者的贡献 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性 阅读全文
posted @ 2017-12-28 12:46 ^_TONY_^ 阅读(744) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/zhangerqing/article/details/43057799 https://www.cnblogs.com/dengzz/p/5688021.html 阅读全文
posted @ 2017-12-21 23:36 ^_TONY_^ 阅读(1174) 评论(0) 推荐(0) 编辑
摘要: 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op 阅读全文
posted @ 2017-12-21 23:27 ^_TONY_^ 阅读(1640) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.importnew.com/14604.html Java虚拟机规范规定JVM的内存分为了好几块,比如堆,栈,程序计数器,方法区等,而Hotspot jvm的实现中,将堆内存分为了三部分,新生代,老年代,持久带,其中持久带实现了规范中规定的方法区,而内存模型中不同的部分 阅读全文
posted @ 2017-12-21 23:06 ^_TONY_^ 阅读(952) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/leesf456/p/6022357.html http://www.cnblogs.com/leesf456/p/6028416.html 阅读全文
posted @ 2017-12-12 17:38 ^_TONY_^ 阅读(413) 评论(0) 推荐(0) 编辑
摘要: Kafka是什么 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项 阅读全文
posted @ 2017-12-12 12:47 ^_TONY_^ 阅读(16796) 评论(0) 推荐(0) 编辑
摘要: 本文转载自http://www.cnblogs.com/cyfonly/p/5954614.html 一、为什么需要消息系统 二、kafka 架构 2.1 拓扑结构 如下图: 图.1 2.2 相关概念 如图.1中,kafka 相关名词解释如下: 2.3 zookeeper 节点 kafka 在 zo 阅读全文
posted @ 2017-12-12 10:59 ^_TONY_^ 阅读(5622) 评论(0) 推荐(1) 编辑
摘要: 本文转自:http://tech.meituan.com/spark-tuning-basic.html 感谢原作者 前言 在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种 阅读全文
posted @ 2017-12-11 14:31 ^_TONY_^ 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 当使用sparkstreaming处理流式数据的时候,它的数据源搭档大部分都是Kafka,尤其是在互联网公司颇为常见。 当他们集成的时候我们需要重点考虑就是如果程序发生故障,或者升级重启,或者集群宕机,它究竟能否做到数据不丢不重呢? 也就是通常我们所说的高可靠和稳定性,通常框架里面都带有不同层次的消 阅读全文
posted @ 2017-12-11 13:58 ^_TONY_^ 阅读(2133) 评论(1) 推荐(0) 编辑
摘要: 1、简介 Spark Streaming处理的数据流图: Spark Streaming在内部的处理机制是,接收实时流的数据,并根据一定的时间间隔拆分成一批批的数据,然后通过Spark Engine处理这些批数据,最终得到处理后的一批批结果数据。 对应的批数据,在Spark内核对应一个RDD实例,因 阅读全文
posted @ 2017-12-08 17:44 ^_TONY_^ 阅读(3522) 评论(0) 推荐(1) 编辑
摘要: RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。 RDD内部可以有许多分区(partitions),每个分区又拥有大量的记录(records)。 五个特征: dep 阅读全文
posted @ 2017-12-04 15:35 ^_TONY_^ 阅读(19432) 评论(0) 推荐(2) 编辑
摘要: 一、 广播变量 广播变量允许程序员将一个只读的变量缓存在每台机器上,而不用在任务之间传递变量。广播变量可被用于有效地给每个节点一个大输入数据集的副本。Spark还尝试使用高效地广播算法来分发变量,进而减少通信的开销。 Spark的动作通过一系列的步骤执行,这些步骤由分布式的洗牌操作分开。Spark自 阅读全文
posted @ 2017-12-03 23:15 ^_TONY_^ 阅读(3695) 评论(0) 推荐(0) 编辑
摘要: Hadoop 和 Spark 的关系 Spark 运算比 Hadoop 的 MapReduce 框架快的原因是因为 Hadoop 在一次 MapReduce 运算之后,会将数据的运算结果从内存写入到磁盘中,第二次 Mapredue 运算时在从磁盘中读取数据,所以其瓶颈在2次运算间的多余 IO 消耗. 阅读全文
posted @ 2017-12-03 23:13 ^_TONY_^ 阅读(2863) 评论(0) 推荐(0) 编辑
摘要: Spark On Yarn的优势 每个Spark executor作为一个YARN容器(container)运行。Spark可以使得多个Tasks在同一个容器(container)里面运行 1. Spark支持资源动态共享,运行于Yarn的框架都共享一个集中配置好的资源池 2. 可以很方便的利用Ya 阅读全文
posted @ 2017-12-03 21:21 ^_TONY_^ 阅读(18617) 评论(2) 推荐(9) 编辑
摘要: yum install -y ntp gcc make lrzsz wget vim sysstat.x86_64 xinetd screen expect rsync bind-utils iotop dstat nethogs openssl-devel openssh-clients 1) 配 阅读全文
posted @ 2017-11-18 16:02 ^_TONY_^ 阅读(1848) 评论(0) 推荐(0) 编辑
摘要: 观察报错的主要信息: 用户yarn在改文件上执行写操作时被权限系统拒绝, parquet文件的权限为755 Hadoop分布式文件系统实现了一个和POSIX系统类似的文件和目录的权限模型。每个文件和目录有一个所有者(owner)和一个组(group)。文件或目录对其所有者、同组的其他用户以及所有其他 阅读全文
posted @ 2017-11-01 17:04 ^_TONY_^ 阅读(14652) 评论(0) 推荐(0) 编辑
摘要: 1、limit限制调整 一般情况下,Limit语句还是需要执行整个查询语句,然后再返回部分结果。 有一个配置属性可以开启,避免这种情况 对数据源进行抽样 hive.limit.optimize.enable=true 开启对数据源进行采样的功能 hive.limit.row.max.size 设置最 阅读全文
posted @ 2017-10-17 17:45 ^_TONY_^ 阅读(14107) 评论(1) 推荐(2) 编辑
摘要: 一、Parquet的组成 Parquet仅仅是一种存储格式,它是语言、平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式。 查询引擎: 阅读全文
posted @ 2017-10-17 12:30 ^_TONY_^ 阅读(44067) 评论(1) 推荐(1) 编辑
摘要: 一、ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度。和Parquet类似,它并不是一个 阅读全文
posted @ 2017-10-16 17:25 ^_TONY_^ 阅读(57562) 评论(0) 推荐(11) 编辑
摘要: 背景 写这篇文章主要是介绍一下我做数据仓库ETL同步的过程中遇到的一些有意思的内容和提升程序运行效率的过程。 关系型数据库: 项目初期:游戏的运营数据比较轻量,相关的运营数据是通过Java后台程序聚合查询关系型数据库MySQL完全可以应付,系统通过定时任务每日统计相关数据,等待运营人员查询即可。 项 阅读全文
posted @ 2017-09-29 18:14 ^_TONY_^ 阅读(10966) 评论(1) 推荐(1) 编辑
摘要: 周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下 阅读全文
posted @ 2017-09-28 23:14 ^_TONY_^ 阅读(1493) 评论(0) 推荐(0) 编辑
摘要: 一、 背景 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池可以对线程进行统一的分配、调优和监控,并有以下好处: 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立 阅读全文
posted @ 2017-09-28 21:50 ^_TONY_^ 阅读(1197) 评论(0) 推荐(1) 编辑
摘要: 一、什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对Copy 阅读全文
posted @ 2017-09-28 16:55 ^_TONY_^ 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是阻塞队列 阻塞队列(BlockingQueue)是 Java 5 并发新特性中的内容,阻塞队列的接口是 java.util.concurrent.BlockingQueue,它提供了两个附加操作:当队列中为空时,从队列中获取元素的操作将被阻塞;当队列满时,向队列中添加元素的操作将被阻塞。 阅读全文
posted @ 2017-09-28 16:27 ^_TONY_^ 阅读(2508) 评论(0) 推荐(1) 编辑
摘要: 场景描述: 多线程设计过程中,经常会遇到需要等待其它线程结束以后再做其他事情的情况。 有几种方案: 1.在主线程中设置一自定义全局计数标志,在工作线程完成时,计数减1。主线程侦测该标志是否为0,一旦为0,表示所有工作线程已经完成。 2.使用Java标准的类CountDownLatch来完成这项工作, 阅读全文
posted @ 2017-09-27 18:17 ^_TONY_^ 阅读(2959) 评论(0) 推荐(0) 编辑
摘要: 参考资料: 程晓明:Java内存模型 《Java并发编程的艺术》 《深入理解Java虚拟机:JVM高级特性与最佳实践》 阅读全文
posted @ 2017-09-27 17:21 ^_TONY_^ 阅读(960) 评论(0) 推荐(1) 编辑
摘要: 一、线程安全性 定义:多个线程之间的操作无论采用何种执行时序或交替方式,都要保证不变性条件不被破坏 “共享”:变量可以由多个线程同时访问; “可变”:变量的值在其生命周期内可以发生改变 如果当多个线程访问同一个可变的状态变量时,没有使用合适的同步,那么程序将会出现错误。有三种方式可以修复该问题: 不 阅读全文
posted @ 2017-09-27 16:17 ^_TONY_^ 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起 阅读全文
posted @ 2017-09-24 01:55 ^_TONY_^ 阅读(936) 评论(0) 推荐(0) 编辑