自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HBase集群环境搭建和应用案例和数据结构

一、Hbase简介1.基本描述Hadoop的原始特性是解决大规模数据的离线批处理场景。HDFS具有强大的存储容量,但它并不提供强大的数据查询机制。HBase组件基于HDFS文件系统提供类似于BigTable服务。HBase是一个分布式、可扩展的NoSQL数据库,支持海量结构化数据存储。HBase在Hadoop的基础上提供了类似于Bigtable的功能,Bigtable基于列存储模式,而不是基于行的模式。存储数据的特点:非结构化或松散半结构化数据,自然要有横向扩展的能力来存储大表,基于服务集群处理海量数

2021-01-11 12:15:09 121

原创 Databricks:分组统计和窗口

在分析数据时,通常需要对数据进行分组,并对每个组进行聚合。从某种意义上说,窗口也是一种分组统计的方法。分类资料DataFrame.groupBy()返回GroupedData类,该类可以对分组数据应用聚合函数、apply()函数和pivot()函数。常用的聚合函数有:https://www.itangyuan.com/book/chapter/15871972/64964516.htmlhttps://www.itangyuan.com/book/chapter/15871972/64964617

2021-01-11 11:56:07 271

原创 Java序列化的工作流程和原理

在本文中,我们关注对象序列化。首先我们来讨论什么是序列化,序列化的原理。然后给出一个简单的例子来演示序列化和反序列化。有时候有些信息不应该序列化,应该如何控制?我们如何定制序列化内容?最后,我们讨论了在继承结构的场景中序列化应该注意什么。序列化概述序列化,简单来说就是用“流”的方式保存对象。至于保存的目的地址,可以是文件,也可以是数据库,也可以是网络,就是通过网络把对象从一个节点转移到另一个节点。我们知道在Java的I/O结构中,有ObjectOutputStream和ObjectInputStre

2021-01-11 10:54:24 428

原创 Java集合 是编程的基础部分

在本文中,我们将重点关注Java中的集合。集合是编程语言的基础部分。从JDK早期开始,Java就引入了Java收集框架。设计JCF的人后来写了一本名为《有效的Java》的书。Java中的集合主要集中在两部分,一部分在java.util包中,一部分在java.util.concurrent中,后者是在前者的基础上,定义了一些实现同步功能的集合。本文重点介绍了java.util下的各种集合对象,java中的集合对象大致可以分为三类:List、Set和Map。对应的UML图如下(包括java.util下的大部

2021-01-11 00:50:53 122

原创 Java多线程同步 比多线程复杂

在本文中,我们将重点关注线程同步这个主题。这比多线程复杂。不重视就“掉坑”了。而且与单线程程序不同的是,每次是否出现多线程错误并不是固定的,这给调试带来了很大的挑战。在本文中,我们首先解释什么是同步,什么是不同步的问题,然后讨论可以采取什么措施来控制同步。接下来,我们将在服务器端构建一个“线程池”,就像我们在审查网络通信时所做的那样。JDK为我们提供了一个大型并发工具包,最后我们将探索其中的内容。为什么要线程同步?说到线程同步,大多数情况下我们讨论的是“单对象多线程”的情况,一般分为两部分,一部分是关

2021-01-10 23:50:58 150

原创 Java多线程 如何创建线程

在本文中,我们主要关注多线程。多线程是一个复杂的话题,包含很多内容。本文重点介绍线程的基本属性、如何创建线程、线程状态切换和线程通信。我们将线程同步的话题留给下一篇文章。线程是操作系统的基本单元,封装在一个进程中,一个进程可以包含多个线程。即使我们不手动创建线程,进程也会有一个默认线程在运行。对于JVM来说,当我们编写一个单线程程序运行时,JVM中至少有两个线程在运行,一个是我们创建的程序,一个是垃圾收集。线程基本信息我们可以通过Thread.currentThread()方法获取当前线程的一些信息

2021-01-10 20:32:30 101

原创 利用Java实现网络通信 TCP、UDP通信

本文主要讨论如何利用Java实现网络通信,包括TCP通信、UDP通信、组播和NIO。TCP连接TCP是基于套接字的。在TCP连接中,我们将使用服务器套接字和套接字。客户端和服务器建立连接后,剩下的基本就是I/O的控制了。我们先来看一个简单的TCP通信,分为客户端和服务器端。客户端代码如下:简单的TCP客户端服务器端代码如下:https://www.itangyuan.com/book/chapter/15859704/64810994.htmlhttps://www.itangyuan.co

2021-01-10 15:18:00 670

原创 Linux PCI驱动框架分析过程

描述:内核版本:4.14ARM64处理器使用工具:源洞察3.5,Visio1.概述首先,回顾一下PCIe的建筑图:本文就来说说PCIe主机的驱动,对应的是根联合体部分,相当于PCI的主桥部分;本文选取Xilinx的nwl-pcie进行分析。驱动整体编写简单,足以覆盖现有框架,不会占用太多笔墨;2.过程分析说到驾驶的分析,离不开驾驶模型的引入,而驾驶模型的实现使得具体的驾驶开发更加容易;所以我们来回顾一下上一篇文章中提到的驱动模型:Linux内核建立了统一的设备模型,由总线、设备和驱动抽

2021-01-10 01:32:13 588

原创 实用的Java并发编程——互斥锁

在这个张文中,我们主要讨论如何使用互斥来解决并发编程中的原子性问题。总结并发编程中原子性问题的根源是线程切换,那么禁止线程切换能解决原子性问题吗?这需要逐案讨论。在单核CPU的情况下,同一时间只有一个线程在执行,禁止CPU中断,也就是说操作系统不会重新调度线程,从而禁止线程切换,让获得CPU使用权的线程可以继续执行。在多核CPU的情况下,同时可能有两个线程同时执行,一个线程在CPU-1上执行,另一个线程在CPU-2上执行。此时禁止CPU中断,只能保证某个CPU线程的连续执行,但不能保证只有一个线程在

2021-01-09 21:28:57 731

空空如也

空空如也

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

TA关注的人

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