2022年1月12日
摘要: juc,即java.util.concurrent包的缩写,掌握了juc,就是拿到了Java并发编程的钥匙。 在《Java并发编程实战》等书中,已经详细介绍juc用法,如果你懒得看书,或者是忘了juc的用法,想快速回忆一下,可以看我这篇教程。 本教程很长,有很多的代码示例供食用~ 基础 volati 阅读全文
posted @ 2022-01-12 21:39 lazycat7706 阅读(69) 评论(0) 推荐(0)
摘要: Go 1.14更新: Module support in the go command is now ready for production use. We encourage all users to migrate to go modules for dependency management 阅读全文
posted @ 2022-01-12 21:38 lazycat7706 阅读(269) 评论(0) 推荐(0)
摘要: GO是支持函数式编程的,在GO中,函数是一等公民,它可以作为变量被赋值,作为参数被传递到其它函数中。 那么既然能够将函数作为变量,GO就一定是支持闭包的。 闭包概念 什么是闭包呢?其实很简单,我们都知道,变量是有其作用域的。例如,在函数中声明定义的变量就只能够在当前函数中使用,当函数结束时,该变量空 阅读全文
posted @ 2022-01-12 21:37 lazycat7706 阅读(226) 评论(0) 推荐(0)
摘要: defer是Golang一大语言特色,它扮演的是类似Java中finally的角色。用于执行释放资源的一些操作。 defer语句定义在函数内,后面跟一个函数,被defer的函数会在defer所在的函数结果前被执行。defer能够保证函数不管以何种方式结束(return或panic),被defer的函 阅读全文
posted @ 2022-01-12 21:36 lazycat7706 阅读(373) 评论(0) 推荐(0)
摘要: Scala是多范式的编程语言,本教程着重介绍函数式编程. 本教程适用于已经掌握了Java编程语言的人. 常量和变量 var可以用来声明一个变量: var var_name[:type] = xxx 其中,属性的类型声明可以省略.那么scala会自动推测属性的类型.即使类型可以省略,scala和pyt 阅读全文
posted @ 2022-01-12 21:35 lazycat7706 阅读(113) 评论(0) 推荐(0)
摘要: Hive是基于Hadoop的一个数据仓库工具。可以将结构化数据映射为一张数据库表。并提供类似SQL的HiveSQL(HQL)进行数据查询等功能。Hive底层将HQL转换为MapReduce任务来操作HDFS中的数据。 利用Hive,可以快速实现MapReduce功能。而不必编写MapReduce程序 阅读全文
posted @ 2022-01-12 21:34 lazycat7706 阅读(84) 评论(0) 推荐(0)
摘要: Apache Storm是一个开源的分布式实时计算系统,可以简单的,可靠地处理大量的数据流。Storm可用于实时分析、在线机器学习、持续计算、分布式RPC等。 Storm部署和运维很便捷,并且支持多种编程语言的开发。 结构 Storm的结构称为topology。由stream、spout、bolt组 阅读全文
posted @ 2022-01-12 21:33 lazycat7706 阅读(103) 评论(0) 推荐(0)
摘要: HBase是基于Hadoop的一款数据库工具。它来源于Google的一篇论文BigTable。后来由Apache做了开源实现,就是HBase。 HBase是一种NoSQL(非关系型数据库)。适合储存非结构化和半结构化的数据,适合储存稀疏的数据(空的数据不占据空间),HBase是面向列(族)储存的。在 阅读全文
posted @ 2022-01-12 21:32 lazycat7706 阅读(178) 评论(0) 推荐(0)
摘要: Hadoop使用了master/slave的集群架构。master包括了NameNode和ResourseManager两个重要的Hadoop节点。所以master是一种非常重要的节点。一定要保证master的硬件资源是最好的。 但是,即使是最好硬件,最稳定的机器也可能出现问题,而master又是如 阅读全文
posted @ 2022-01-12 21:31 lazycat7706 阅读(194) 评论(0) 推荐(0)
摘要: MapReduce是一个分布式的计算框架。最初由谷歌的工程师开发,基于GFS的分布式计算框架,主要用于搜索领域解决海量数据的计算问题。 Cutting根据这个框架,设计了基于HDFS的MapReduce框架 MapReduce可以让程序员远离分布式计算编程,不需要考虑任务调度、逻辑切块、位置追溯等问 阅读全文
posted @ 2022-01-12 21:30 lazycat7706 阅读(153) 评论(0) 推荐(0)
摘要: HDFS是Hadoop为了储存海量数据而使用的一种分布式文件系统。这种文件系统是运作于多个机器之上的。 HDFS为了保证数据储存的可靠和读取性能,会把保存的数据进行切块后进行复制并且储存在集群的多个节点中。 HDFS存在名字节点NameNode和数据节点DataNode: NameNode:储存元数 阅读全文
posted @ 2022-01-12 21:29 lazycat7706 阅读(137) 评论(0) 推荐(0)
摘要: Hadoop安装分为单机、伪分布式和完全分布式。 单机模式是Hadoop的默认模式。在初次安装Hadoop后,将使用这个模式。此时Hadoop的三个配置文件为空。单机模式不使用HDFS,也不加载任何Hadoop守护进程,仅用来调试MapReduce程序。 伪分布式,Hadoop的守护进程在一台机器上 阅读全文
posted @ 2022-01-12 21:28 lazycat7706 阅读(132) 评论(0) 推荐(0)
摘要: Zookeeper(以下简称ZK), 动物管理员。是一个分布式应用程序的协调服务框架,是Hadoop的一个重要组成组件。 分布式应用需要解决的问题: 数据一致性 统一的命名服务 配置管理 分布式锁 集群管理 ZK安装 参见官网教程...(需要安装在Linux系统下) ZK指令和数据结构 ZK有一个最 阅读全文
posted @ 2022-01-12 21:27 lazycat7706 阅读(134) 评论(0) 推荐(0)
摘要: java并发工具包来自jdk 1.5,它使得Java的并发编程变得更加容易。 下面介绍一些常见的API,更多请查阅官方文档。 数据结构和辅助类: BlockingQueue 阻塞队列是一种特殊的队列。这种队列是有限的。 阻塞队列适用于消费者生产者模型: 生产线程可以向阻塞队列插入数据,如果队列已满, 阅读全文
posted @ 2022-01-12 21:26 lazycat7706 阅读(147) 评论(0) 推荐(0)
摘要: NIO, No blocking IO, 非阻塞式IO。指的是在发生IO操作时不会产生阻塞,利用NIO可以处理高并发和高访问的场景。和之相对的是BIO, Blocking IO,这是标准的阻塞IO。 BIO 一个经典的BIO的例子是一个最简单的C/S模型程序。以下为代码: public class 阅读全文
posted @ 2022-01-12 21:25 lazycat7706 阅读(122) 评论(0) 推荐(0)
摘要: 1、概述 截图是一个非常常见的功能。但是Windows自带的截图功能我们发现并不好用。所以很多时候我们打开QQ就是为了做一个截图。QQ的截图功能还是非常强大的,今天,我将用Qt4手工做一个简单的截图。这个截图比不上QQ的截图,只实现了基本功能。没有复杂的操作,供大家学习、参考。 2、 需求描述 最终 阅读全文
posted @ 2022-01-12 21:23 lazycat7706 阅读(422) 评论(0) 推荐(0)