我太菜了

喜欢写Hello World的未来程序员.

使用和配置hive碰到的坑

Hadoop/Hive

只愁歌舞散 化作彩云飞 贝老师的课《大数据存储与处理》的大作业是使用Hadoop和Hive进行数据分析,这里来记录下碰到的坑。 安装Hadoop 关于安装Hadoop,这里强烈建议参考厦门大学数据库实验室的博客Hadoop安装配置简略教程,我感觉是问题不大的。 配置Hive 参考实验手册——搜狗搜索日志分析系统 连接不上hadoop mkdir: Call...

矩阵中的路径

你快乐吗?

月色与雪色之间 你是第三种绝色 C++,dfs深搜,路径查找。 虽然这是一维的字符数组,但也是可以当做矩阵来操作的。 同样可以借助一个数组int dxy[] = {1, -1, -cols, cols}; 来进行路径遍历,注意因为是一维数组,要遍历到下方字符得“跨行”,其他就是dfs常规操作了。 题目不是很难,直接看代码好了。 class Solution { pu...

滑动窗口的最大值

你快乐吗?

最怕是春归了秣陵树 人老了偏在建康城 C++,双端队列。 其实看到这道题,一开始想到的就是用最大堆和哈希,窗口每次移动的时候,堆顶元素都是最大值。然后通过哈希判断堆顶元素是否还在窗口内,不在窗口内则弹出堆顶。这样做的复杂度是O(nlogn)。 过了后觉得不踏实,还是去搜了别人的解法,最终看到了一个词,双端队列。 双端队列就是可以从队尾队首弹出和压入元素,区别于普通队列,...

数据流中的中位数

你快乐吗?

深知身在情长在 怅望江头江水声 C++,最大堆,最小堆。 一开始想到的是直接用一个数组或者vector存储,插入的时候顺序查找并计数,然后Insert是O(n),GetMedian是O(1),但是觉得太简单了,肯定不是这样的,慢慢就想到能不能一半大,一半小,于是就想到了堆。 在插入的时候,把大的一半放到最小堆,把大的一半放到最大堆,而插入堆的复杂度是O(logn),应该就...

序列化二叉树

你快乐吗?

荷叶生时春恨生 荷叶枯时秋恨成 C++,二叉搜索树,递归。 这道题最简单的思路就是直接中序遍历,然后得到一个中序序列数组,直接从中序数组中得到第k小。题目当然可以做出来,但是面试的时候这么做恐怕不行,隐含条件应该就是不能额外申请空间。 不用数组记录怎么做呢? 答案:利用中序遍历的特性。 利用一个变量记录当前已经遍历的结点数目,如果已经遍历的结点数目已经等于k时,就说...

使用MQTT实现简单命令控制

MQTT

塞上长城空自许 镜中衰鬓已先斑 前面的博文中已经讲了如何安装MQTT的环境,以及如何进行测试,并给出了一个C语言的小例子。今天再讲讲paho.mqtt.c中一些常用接口的使用以及实现一个命令控制及回显功能。 接口介绍 这里讲的不详细,如果有读者读到了感觉不太懂的话,需要先了解一下MQTT的的工作机制。 MQTTClient_create() int MQTTClien...

Linux下MQTT安装及测试

MQTT

雨打梨花深闭门 忘了青春 误了青春 物联网老师上课的时候突然让用MQTT写一个通信程序,实现命令控制,他说的是客户端输入ls,那边就得返回目录信息,不是很懂,查了一大堆也不会,今天有点时间把第一步走了。 MQTT程序安装 千里之行,始于足下 这东西安装也是费了大劲,百度一查全是介绍协议的,CSDN博客上也是互相抄的飞起,没一个是真正能用的,要么抄别人没抄完...

apt install 出现 Encountered a section with no Package header

section with no Package

流水下滩非有意 白云出岫本无心 安装uuid的时候报错了,其实很多次安装的时候都报过这种错: sudo apt install libuuid-devel 然后就出现: 正在读取软件包列表... 有错误! E: Encountered a section with no Package: header E: Problem with MergeList /var/li...

Raft中的一致性保障

分布式一致性问题

有水的地方就有人想家 有岸的地方楚歌就四起 领导人崩溃 在集群系统中,领导人崩溃可能会造成不一致的情况出现,比如群众可能会丢失一些在新的领导人中有的日志条目,他也可能拥有一些领导人没有的日志条目,或者两者都发生。丢失的情况也是在一般情况下已经可以处理,也就是前面日志复制中说到的直接覆盖,但是第二种情况可能会无法处理。例如,一名群众可能会进入不可用状态同时领导人已经提交了若干...

Raft中的日志复制

分布式一致性问题

夜来幽梦忽还乡 小轩窗 正梳妆 日志简介 关于日志状态机 Raft 的目标是将日志完整地复制到集群内的所有服务器,这些复制的日志会被状态机所使用。假设我们希望程序或应用能可靠地执行,能够实现的一种方式是保证集群中所有服务器内的状态机都能按照相同的方式执行命令,这就是状态机复制同步的目的,这里的状态机通常指的是一个输入输出程序或应用。 如果系统的客户端将要执行的命令...