von Wen Xie Vor 10 Jahren
639
gossip 协议
Redis Sentinel 使用此协议 http://redis.readthedocs.org/en/latest/topic/sentinel.html
Design Pattern
这个系列文章可以看看 http://www.dotblogs.com.tw/pin0513/archive/2010/01/04/12779.aspx
LVM
逻辑卷管理。讲了lvm做数据库备份的操作 http://www.ibm.com/developerworks/cn/linux/l-lvm2/
DeviceMapper
设备映射器(也称为 dm_mod)是一个 Linux 内核模块(也可以是内置的),最早出现在 2.6.9 内核中。它的作用是对设备进行映射 —— LVM2 必须使用这个模块
mdadmin是什么?
用户空间工具: dm库和dmsetup
mapped device --> target driver --> mapping table ---> target devices 一对多的关系
当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基于该机制实现的
Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制
Linux2.6 内核中支持逻辑卷管理的通用设备映射机制
参考
dm做快照 http://blog.sina.com.cn/s/blog_4d3833cf0100n68c.html
dm原理 http://www.ibm.com/developerworks/cn/linux/l-devmapper/
Learn Python The Hard Way, 3rd Edition http://learnpythonthehardway.org/book/
轻量级的Web应用框架
WebSocket API是下一代客户端-服务器的异步通信方法。该通信取代了单个的TCP套接字,使用ws或wss协议,可用于任意的客户端和服务器程序
event
returner
module
直接推送模块
pillar
grains
master对grains有缓存
grains信息是每次客户端启动后 就确定了的 除非你每次采集钱都 重启 minion 或者 重新同步下 grains
系统和硬件的信息 适合很久很久才变化的
minion
mine
适合变化比较大的
定义了收集模块,他自己会把数据收集的,存到了哪里,不知道,但是肯定是客户端minino本地
并行程序编程范式(paradigm)
BSP范式
实现 Google Pregel
Apache Hadoop
Message Passing
框架(framework) MPI
实现(implementation)MPICH2
SQL on Hadoop系统的最新进展(2) http://yanbohappy.sinaapp.com/?p=407
SQL on Hadoop系统的最新进展(1) http://yanbohappy.sinaapp.com/?p=381
BDTC2013观后感 http://yanbohappy.sinaapp.com/?p=441
Hadoop发行版选择 http://dongxicheng.org/mapreduce-nextgen/hadoop-distribution-selection/
8个值得关注的SQL-on-Hadoop框架 http://www.infoq.com/cn/news/2014/06/sql-on-hadoop
Hadoop家族学习路线图 http://blog.fens.me/hadoop-family-roadmap/
Databricks
UC Berkeley AMP lab 成立的公司
MapR
HDP
Cloudera
CDH5
CDH4
CDH3
Apache
Kafka
分布式发布-订阅消息系统。最初由LinkedIn公司开发
Hue
个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。
HCatalog
基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
Bigtop
对Hadoop及其周边生态进行打包,分发和测试的工具
Whirr
运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务
Crunsh
基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
日志收集
Chukwa
监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中
Scribe
Flume
分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输
工作流引擎
Azkaban
Apache Oozie
工作流引擎服务器
Giraph
可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel
Hama
基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架,
Mahout
Mahout是MR上的machine learning库
机器学习和数据挖掘的一个分布式框架
Cassandra
开源分布式NoSQL数据库系统。它最初由Facebook开发。Google BigTable+Amazon Dynamo
Ambari
Hadoop管理工具,可以快捷的监控、部署、管理集群
Avro
数据序列化格式与传输工具
Sqoop
在Hadoop和关系数据库间进行数据的传递
PIG
Yahoo开发。类SQL脚本语言PIG-Latin
SQL on Hadoop
Citusdata
Hadapt/HadoopDB
Tez/Stinger
Hortonworks
Apache Tajo
在HDFS之上构建一个先进的数据仓库系统
Apache Phoenix
Salesforce开源的基于HBase的SQL查询系统
BigSQL
BigSQL用于使用MapReduce和其他能够提供低延迟结果的方法(不详)查询存储在HDFS中的数据
HAWQ/Greenplum
EMC Pivotal 公司的一个非开源产品
Apache Drill
针对Hadoop的、开源的“交互式”SQL查询引擎。Drill现在由MapR推动,尽管他们现在也支持Impala。
Shark/Spark
由UC Berkeley大学使用Scala语言开发的一个开源SQL查询引擎。构建在已有的 Apache Spark数据处理引擎之上
Presto
用Java语言开发的、开源的“交互式”SQL查询引擎。Facebook开发
Cloudera Impala
针对Hadoop的开源的“交互式”SQL查询引擎。它由Cloudera构建
Hive
原始的SQL-on-Hadoop解决方案
Facebook开发。数据仓库应用。类似 SQL的HQL语言
Hadoop 2.0
Spark
MLbase
BlinkDB
Shark
YARN
HBase
类似Google BigTable。面向列的分布式NoSQL数据库
Zookeeper
分布式协作。Facebook贡献。类似GoogleChubby。
Hadoop 1.0
HDFS
存储系统。Google File System开源实现
计算模型
2.0
PowerDrill
Dremel
Google 1.0
BigTable
Chubby
Google File System
MapReduce
怎么办 尼古拉-车尔尼雪夫斯基
人物
卡杰琳娜
吉尔沙诺夫
梅察洛夫 进步神父
拉赫美托夫 革命领袖
罗普霍夫
毕蒙特
斯托列希尼科夫 旧贵族
玛莉亚 阿列克塞芙娜
薇拉 巴夫洛芙娜 女主角
生平
1828-07-24 出生1846~1850 彼德堡大学哲学系1853 结婚1854~1862 《现代人》上发表著作1862-07-07 被逮捕,囚禁在彼得保罗要塞1862-12-14~1863-04-04 《怎么办》1864~1883 西伯利亚服苦役和流放1889-10-29 脑溢血
七周七数据库
七周七语言
The End
发现自己的旋律
编程结构
合一
Prolog用到了合一。三大功效:测试真值、匹配左端、匹配右端。
匹配
Prolog、Scala、Erlang、Clojure和Haskell中出现过。模式匹配可解决的问题包括语法分析、分布式消息传递、解构、合一、XML 处理,等等。
monad
Haskell中。monad有助于对问题进行结构化,让我们写函数时感觉可变状态可用
列表解析
在Erlang、Clojure和Haskell、Scala,在结构中融合了筛选器、映射、笛卡儿积等几种概念
并发
事务型内存
在 Clojure 中 ,软 件 事 务 型 内 存 ( SoftwareTransactional Memory,STM)包装了事务中某个共享资源的每一个分布式访问
future
Io还添加了两种并发结构
future无法立即获得结果,但程序控制权却能马上回到我们手中。只有试图访问future时, 程序才会阻塞
协程可让两个对象合作处理多任 务,而它们又能各自选择适当时机放弃控制权
Io、Erlang 和 Scala 中的 actor
获取从对象内部发出的非结构化的进程间通 信,将其转化为头等结构之间的消息传递,且每个actor都拥有一个消息队列
控制可变状态
函数式编程语言,多次触发同一函数将产生相同结果。变量是单赋值的。
面向对象编程会导致副作用和可变状态
编程模型
范型演进之路
Haskell和Erlang差不多算是独立语言。
Clojure搭建在JVM之上,它的应用程序能直接使用Java对象。利用Java虚拟机上的现有框架,而不是去扩展Java语言本身。
Scala程序员可以用浓重的函数式风格写出面向对象程序。Scala这门语言最根本的性质,就是两种编程范型平起平坐
函数式编程(Scala、Erlang、Clojure、Haskell)
可变状态的阴霾烟消云散,许多传统的并发问题也就迎刃 而解
由数学函数构成,调用同一个函数,都会返回同样的结果,尽可能地避免副作用,甚至严格禁止
约束—逻辑编程(Prolog)
还是Erlang的灵感之源
比如航空交通管制、土木工程等
某个已知问题域定义一些逻辑约束
原型编程(Io)
通常是动态类型语言
原型语言包括JavaScript和Io
所有原型都是对象实例
面向对象(Ruby、Scala)
函数式思想更胜Ruby一筹
类型推断。可根据其语法和用法 中的蛛丝马迹,自动推导出变量类型
静态类型
能实现一些函数式编程思想
鸭子类型。根据对象支持的方法确定类型
三大主要思想:封装、继承和多态
并发编程和可靠性编程都 在一点点地改变着高级编程语言的发展方向
Haskell
Clojure
Scala
关于 Scala
第一天:山丘上的城堡
Scala 类型
除了少数例外,Scala中一切都是对象
函数式编程与并发
Scala不强迫你完全去除可变状 态,不过它确实给你提供了一种使用纯函数风格编程的方法。
没有盲目崇拜
高级程序构造
不变量
函数式编程概念
类型推断
与Java的密切关系
既支持面向对象范型也支持函数式编程范型
语法与Java比较接近
和Java一样都是静态类型语言
可以直接使用Java类库
运行在Java虚拟机上
Prolog
Io
Ruby
http://zh.wikipedia.org/wiki/Ruby http://zh.wikipedia.org/wiki/強型別
鸭子类型 http://zh.wikipedia.org/wiki/Duck_typing 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。 鸭子类型通常得益于不测试方法和函数中参数的类型,而是依赖文档、清晰的代码和测试来确保正确使用。从静态类型语言转向动态类型语言的用户通常试图添加一些静态的(在运行之前的)类型检查,从而影响了鸭子类型的益处和可伸缩性,并约束了语言的动态特性。 鸭子类型和结构类型相似但与之不同。结构类型由类型的结构决定类型的兼容性和等价性,而鸭子类型只由结构中在运行时所访问的部分决定类型的兼容性。Objective Caml语言使用结构类型系统。 接口可以提供鸭子类型的一些益处,但鸭子类型与之不同的是没有显式定义任何接口。例如,如果一个第三方Java库实现了一个用户不允许修改的类,用户就无法把这个类的实例用作一个自己定义的接口的实现,而鸭子类型允许这样做。 模板函数或方法在一个静态类型上下文中应用鸭子测试;这同时带来了静态和动态类型检查的一般优点和缺点。同时,由于在鸭子类型中,只有在运行时被实际调用的方法需要被实现,而模板要求实现在编译时不能证明不可到达的所有方法,因此鸭子类型更具有可伸缩性。
Ruby几乎总是解释执行的,但也有开发者正着手开发虚拟机,想把Ruby代码编译成字节码再执行 不用声明任何变量 每条Ruby代码都会返回某个值 Ruby是一门纯面向对象语言 Ruby是强类型语言?? Ruby是在运行时而非编译时进行类型检查的
http://www.ruby-lang.org/en/about/ Seeing Everything as an Object: In Ruby, everything is an object. Every bit of information and code can be given their own properties and actions. Ruby’s Flexibility: Ruby is seen as a flexible language, since it allows its users to freely alter its parts. Blocks, a Truly Expressive Feature: Ruby’s block are also seen as a source of great flexibility. A programmer can attach a closure to any method, describing how that method should act. Ruby and the Mixin: Unlike many object-oriented languages, Ruby features single inheritance only, on purpose. But Ruby knows the concept of modules (called Categories in Objective-C). Modules are collections of methods. Ruby’s Visual Appearance: Ruby needs no variable declarations. It uses simple naming conventions to denote the scope of variables.
http://www.ruby-lang.org A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
有糖相伴好下药。——Mary Poppins