【大数据】- Hadoop 基本概念
前言
Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情況下开发分布式程序,充分利用集群的威力进行高速运算和存储。
从其定义就可以发现,它解決了两大问题:大数据存储、大数据分析。也就是 Hadoop 的两大核心:HDFS 和 MapReduce。
HDFS(Hadoop Distributed File System)是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。
MapReduce 为分布式计算框架,包含 map(映射)和 reduce(归约)过程,负责在 HDFS 上进行计算。
但是由于目前我没有用到 MapReduce,并且 MapReduce 能效过于地下并且很占系统资料,所以一般数据分析都会用其他的来代替。
所以这里介绍的 Hadoop,会重点讲解 HDFS 和其工作原理。
【kubernetes】nginx-ingress
前言
Ingress 是一个负载均衡的东西,其主要用来解决使用 NodePort 暴露 Service 的端口时 Node IP 会漂移的问题。同时,若大量使用 NodePort 暴露主机端口,管理会非常混乱。
好的解决方案就是让外界通过域名去访问 Service,而无需关心其 Node IP 及 Port。那为什么不直接使用 Nginx?这是因为在 K8S 集群中,如果每加入一个服务,我们都在 Nginx 中添加一个配置,其实是一个重复性的体力活,只要是重复性的体力活,我们都应该通过技术将它干掉。
Ingress 就可以解决上面的问题,其包含两个组件 Ingress Controller 和 Ingress:
- Ingress (将 Nginx 的配置抽象成一个 Ingress 对象,每添加一个新的服务只需写一个新的 Ingress 的 yaml 文件即可)
- Ingress Controller (将新加入的 Ingress 转化成 Nginx 的配置文件并使之生效)
【Docker】搭建docker私有仓库
【kubernetes】测试集群部署
PHP-CS-Fixer 配置详细对比
前言
由于我们项目比较多,而且每个人的编写代码的风格也不太一致,我们希望尽可能在格式上得到统一,这样子的好处有如下几点:
- 遵循 PSR2
- codereview 的时候可以免除格式差异所带来的干扰
- 统一格式有利于大家在这个基础上写出更为优雅的代码格式
因此,我们实现了用于的统一格式化配套的工具链:
husky-php
:用于实现客户端githook 钩子
,用于执行触发我们的 husky 项目(默认支持自动格式化,冲突校验)composer-husky-plugin
:专门由husky-php
定制的 composer 插件,用于自动部署husky-php
php-cs-fixer-config
:专门定义php-cs-fixer
格式配置的组件
k8s の 基础知识
k8s 知识点一
k8s 总架构由于 2 个概念构成
- Master
- Node
Master
和 Node
都是服务器物理机或者虚拟机, 都可以由于一台或者多台组成,如果 Master 不考虑HA(高可用)
的情况下。一般都是 1 台 Master + N 台 Node。
Master 上所需要的服务
- etcd
- Api Server
- Controller Manager
- Scheduler
后三个组件构成了 Kubernetes 的总控中心,这些进程实现了整个集群的资源管理、Pod 调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且全都是自动完成。
Node 上所需要的服务
- kubelet
- proxy
rust-for-docker
说明
今天,我们开始学习一下 Rust,希望将来在公司可以推广 Rust 语言,并且用 Rust 语言做更多的事情。
在此, 进入我们的入学篇。
Rust for Docker
拉取最新版本的 Rust
1 | docker pull rust:latest |
由于官方上的命令有点问题,并且我希望我有一个交互的终端环境,所以,经过修改后,进入 Rust 容器的命令如下:
1 | docker run -it --rm -e "USER=$(whoami)" -e "RUST_BACKTRACE=1" -v "$PWD":/usr/src/myapp -w /usr/src/myapp rust:latest bash |
- USER: cargo 打包的时候会用这个命名
- RUST_BACKTRACE:终端调试的时候,会打印出错误栈
进入到容器后,我们创建属于我们的第一个项目:Hello,World
利用 Rust 的包管理工具:Cargo 进行开发和编译
1 | cargo new hello_world |