08 2020 档案
摘要:1 问题描述 系统Manjaro,使用Deepin-wine微信,目前最新的版本为2.9.5.56-1,发送图片时,会发送不成功,经常在转圈,对于发送其他文件会出现红色感叹号发送失败。 2 解决方法 如果已经安装了Deepin-wine微信,安装deepin-wine5即可: yay -S deep
阅读全文
摘要:1 概述 Hadoop在大数据技术体系中极为重要,被誉为是改变世界的7个Java项目之一(剩下6个是Junit、Eclipse、Spring、Solr、HudsonAndJenkins、Android),本篇文章以Hadoop 3.3.0官方文档为基础,首先会介绍Hadoop相关术语,包括HDFS,
阅读全文
摘要:1 概述 上一篇文章介绍了如何使用虚拟机搭建集群,到了这篇文章就是实战了,使用真实的三台不同服务器进行Hadoop集群的搭建。具体步骤其实与虚拟机的差不多,但是由于安全组以及端口等等一些列的问题,会与虚拟机有所不同,废话不多说,下面正式开始。 2 约定 Master节点的ip用MasterIP表示,
阅读全文
摘要:1 完全分布模式 完全分布模式是比本地模式与伪分布模式更加复杂的模式,真正利用多台Linux主机来进行部署Hadoop,对集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上,这篇文章介绍的是通过三台虚拟机进行集群配置的方式,主要步骤为: 准备虚拟机:准备虚拟机基本环境 ip+Host配
阅读全文
摘要:1 伪分布模式 伪分布模式是运行在单个节点以及多个Java进程上的模式。相比起本地模式,需要进行更多配置文件的设置以及ssh、YARN相关设置。 2 Hadoop配置文件 修改Hadoop安装目录下的三个配置文件: etc/hadoop/core-site.xml etc/hadoop/hdfs-s
阅读全文
摘要:1 本地模式 本地模式是最简单的模式,所有模块都运行在一个JVM进程中,使用本地文件系统而不是HDFS。 本地模式主要是用于本地开发过程中的运行调试用,下载后的Hadoop不需要设置默认就是本地模式。 2 准备工作 笔者喜欢把JDK放在/usr/local下,运行前请确保设置了JAVA_HOME,注
阅读全文
摘要:1 概述 使用SSH连接服务器是一件很平常的事,但是,连接是否足够安全是一个令人担忧的问题。本文从如下几个方面介绍了如何建立一个足够安全的SSH连接: 端口 协议 用户 密码 密钥对 ssh-agent 2 端口 第一步就是修改默认端口22,修改/etc/ssh/sshd_config中的Port即
阅读全文
摘要:1 概述 VirtualBox安装完CentOS8后无法调节分辨率,需要安装额外的工具。 2 安装依赖包 首先确保虚拟机能正常连接网络,然后安装:kernel、kernel-core、kernel-modules、kernel-devel、gcc、make、perl、elfutils-libelf-
阅读全文
摘要:1 概述 这里的终端是指通过F1-F6/F2-F7进入的纯命令终端。 修改字体可以通过setfont命令。 2 查看字体 可以通过查找目录consolefonts来确定本地机器上的字体位于哪里: find / -name consolefonts -type d updatedb locate co
阅读全文
摘要:1 概述 本篇文章以Spring Boot为基础,从以下三个方向讲述了如何设计一个优秀的后端接口体系: 参数校验:涉及Hibernate Validator的各种注解,快速失败模式,分组,组序列以及自定义注解/Validator 异常处理:涉及ControllerAdvice/@RestContro
阅读全文
摘要:1 Jupyter简介 Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言,本质是一个Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和Markdown。 2 安装 使用pip或pip3安装: # sudo pip install jupyter
阅读全文
摘要:1 概述 这篇文章是对GoF23种设计模式+1种非GoF模式的合集,由笔者自己的笔记整理而来,每个模式都详细描述了步骤,角色等,以及使用Java实现的具体的例子,下面是目录: 基础 设计模式概述 UML基础 创建型模式 单例模式 简单工厂模式(非GoF模式) 工厂方法模式 抽象工厂模式 原型模式 建
阅读全文
摘要:1 概述 1.1 引言 患者就医时,医生开具处方后通常由药房工作人员准备药品,由划价人员根据药品数量计算总价,这里,可以将处方看作是一个药品信息的集合,里面包含了一种或多种不同类型的药品信息,不同类型的工作人员在操作同一个药品信息集合时将提供不同的处理方式,而且可能还会增加新类型的工作人员来操作处方
阅读全文
摘要:1 概述 1.1 引言 模板方法模式是结构最简单的行为型设计模型,在其结构中只存在父类与之类之间的继承关系,通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架
阅读全文
摘要:1 概述 1.1 引言 在外出旅游时,很多时候的出行方式都不止一条,通常根据实际情况,比如目的地,预算,旅游时间等确定最适合的出行方式。在软件开发中,也常常会遇到类似的情况,实现某一个功能有多种途径,每一条途径对应一个算法,这时可以使用一种叫做策略模式的设计模式来进行设计。在策略模式中,可以定义一些
阅读全文
摘要:1 概述 1.1 引言 状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中的某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。 状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于
阅读全文
摘要:1 概述 1.1 引言 观察者模式使用频率很高,用于建立一种对象之间的依赖关系,当一个对象发生改变时自动通知其他对象,其他对象将做出相应反应。在观察者模式中,发生改变的对象叫做观察目标,也叫被观察者,而被通知的对象叫做观察者。 一个观察目标可以对应多个观察者,而且这些观察者之间没有任何相互关联,可以
阅读全文
摘要:1 概述 1.1 引言 在手机上玩象棋时,往往会提供一个悔棋的功能,实际上,悔棋就是恢复到某个历史状态,很多软件中称之为撤销,实现撤销时,需要先保存历史状态,这样撤销时,取出某个历史状态并覆盖当前状态。备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或
阅读全文
摘要:1 概述 1.1 引言 如果一个系统中对象之间的联系呈现为网状结构,存在大量的多对多联系,将导致系统非常复杂,比如,一个GUI窗口中,通过一个按钮更新了文本框,也更新了组合框,更新组合框的同时反过来需要更新文本框以及按钮。 这些对象既会影响别的对象,也会被别的对象所影响,这些对象称为同事对象,它们之
阅读全文
摘要:1 概述 1.1 引言 在软件开发中,有一些类可以存储多个成员对象(元素),这些类通常称为聚合类,对应的对象称为聚合对象。聚合对象拥有两个职责,一个是存储数据,一个是遍历数据,前者是聚合对象的基本职责,后者是可以变化以及分离的,因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被称之为“迭代
阅读全文
摘要:1 概述 1.1 引言 解释器模式是一种使用频率较低但是学习难度较大的设计模式,用于描述如何使用面向对象语言构成一个简单的语言解释器。某些情况下可能需要自定义一个新语言,这种语言具有自己的文法规则,这时可以使用解释器模式进行设计,比如模拟机器人的控制程序,每一条指令对应一个动作,通过解释输入的指令来
阅读全文
摘要:1 概述 1.1 引言 日常生活中,可以通过开关控制一些电器的开启和关闭,比如电灯和排气扇。可以将开关理解成一个请求发送者,电灯是请求的最红接收者以及处理者,开关与电灯之间不存在直接的耦合关系,两者通过电线连接在一起,使不同的电线可以连接不同的请求接收者,只需要更换一根电线,相同的发送者(开关)既可
阅读全文