关于 MR 为何需要排序,以及一个分布式排序的示例 之前去了解了一下关于MapReduce的几个比较疑惑的问题,认为有必要专门记录一下,同时也给定一个分布式排序的示例,这应用到了这里谈到的特性。但学习过程中我实际上没有参考多少权威资料,全凭一孔之见,所以非常大的可能有错误。 2022-03-12 MapReduce
SQL 学习笔记——GROUP BY,JOIN,窗口函数 上次去认真学习 SQL 还是 20 年的 12 月,时间才过去 15 个月,但我却觉得恍若隔世。 最近看书《深入理解 Hadoop》,它对 MapReduce 使用 SQL 语言进行描述,在学习过程中我发现我对之前还不了解的 GROUP BY,聚集函数等概念有了一些更深刻的理解,正巧 Hive,Spark SQL 等都需要一定的 SQL 技术,趁此机会进行进一步的学习,把 GROUP BY,JOI 2022-03-10 SQL
Scala 学习笔记——模式匹配 Scala 确实很有趣,虽然它并非像 Haskell 那样优雅简洁,某些抽象,如代数数据类型,仍旧需要通过一些“模式”来实现,而它在 Haskell 中是能够非常优雅清晰地表述的,或许这是使用 OOP 对 FP 进行建模的必然结果吧?但了解它的抽象方式也是非常有趣的,相较于 Haskell 更为啰嗦这一点,也让我对一些之前学习 Haskell 时未曾理解的概念,如模式匹配的视图等有了更加深刻的理解 2022-03-02 FP Scala
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 环境搭建