Hello, MapReduce——Word Count 感谢 Docker,对各种环境的反复试验和修改从而变得可行,折磨了三四天后,我总算弄出了一个好用的 docker…集群,它足够易自定义以方便我快速搭建 hadoop 的环境,让我能专心“业务”,从这些玩意上解放出来。 总之,在之前了解了 Hadoop 的 HDFS,学习了它的原理,终端的一些操作以及 JavaAPI(每个方法都受检,不愧是你!),现在到了真正解决问题的时候了——MapReduce 2022-02-19 MapReduce
关于 Java8 的 stream 中的 reduce 操作 在之前再次学习折叠操作的时候,我曾做了一些笔记,并且使用 js 编写了一些示例。当时本打算同时也介绍一下 Java8 的 stream 中提供的 reduce 方法(以下简称 java8-reduce),但发现其行为和 js 中的相去甚远——为了高性能和并发支持,它的 reduce 方法是经过大量优化的,也引入了自己独有的所谓 Combiner,可谓是“Java 特色 reduce 操作”(哈哈! 2022-02-17 Java FP
配置 docker 集群互相之间的 ssh 新!年!快!乐!从量变到质变的过程总是发生地很短暂。 最近搭建 hadoop 环境(感觉弄出来个还算好的集群,之后再加配置就轻松了!的时候碰上这样的需求——需要让 Docker 集群的不同容器之间能通过 ssh 互相访问,研究了几个晚上后终于是搞定了,相关配置虽然很简单,但是感觉仍旧是学到了一点东西,这里进行一些记录, 2022-02-10 环境搭建
在 IDEA 中将项目部署到 Docker 中运行 此方法无法使用 debug,且启动起来可能会非常缓慢!应当在需要进行远程部署,测试等情况下进行使用。 这几天折腾 Docker 的网络问题弄得心力交瘁,最后发现好像在 Mac 上的确是找不到合适的,客户端无感知的解决方案。今天突然灵机一动,想到我干脆可以把项目作为容器部署到 Docker 里,然后把客户端(消费者)的端口映射到本机。 2022-02-02 环境搭建
一个在 OSX 环境下下通过 IP 访问 Docker 容器的解决方案 不建议使用这种方式,它实现起来不算方便,且实现后还需要配置终端的代理设置,在这里推荐我写(抄)的项目,虽然需要在本机安装额外的依赖,但是配置完后就基本无感知了! 如果是 VSCode 或 JetBrain 家的 IDE,也可以将项目部署到 container 内。 MacOS(以及 Windows)上的 Docker 由于实现方式的原因,在网络配置上有许多限制,最麻烦的地方是无法通过容器的 IP 2022-02-01 环境搭建
一种方便理解折叠(fold)操作的方法 虽然之前对折叠操作进行过一些了解,但是仍然对其不甚熟悉,没法立刻写出定义,最近突然发现一种能方便理解折叠操作的方法,这里对其进行一些记录,使用 js 来进行描述。 2022-01-30 FP
设计模式和函数式编程——策略模式 半年没有学习设计模式了,这半年以来主要做的框架开发工作,也算是有一些实践经验(虽然远远不够),同时也是了解了很多函数式编程的概念,写的代码里状态越来越少,代码风格越来越声明式(好久没写过原生的 for 和 while 了 hhh),也开始觉得一些设计模式变得臃肿起来了。现在继续回来学习设计模式,顺便看看它们结合函数式编程中的概念会对样板代码有如何的简化。 2022-01-07 设计模式 FP
乐观锁的简单实现 基于线程和共享内存的并发模型向来都是难于编写,难于调试的。但是在 Web 应用里它又是如此常见,因此仍旧有必要去做深入了解。更现代的并发模型(Actor,Channel,函数式,STM……)要学,线程和锁的并发模型也要学,这才称得上是健全! 2021-12-10 并发