Kategorien: Alle - 数据 - 软件

von Wen Xie Vor 10 Jahren

639

ALLINONE

本文涵盖了多个技术主题,重点介绍了软件开发和架构设计模式,特别是分布式系统和相关协议的使用。文章中提到Redis Sentinel如何利用gossip协议进行系统管理,同时深入探讨了SaltStack在配置管理中的应用,包括模块推送、事件处理和系统信息收集等方面的功能。另外,文章详细介绍了Hadoop生态系统及其在大数据处理中的重要角色,讨论了不同Hadoop发行版的选择及其最新进展。

ALLINONE

ROOT

架构
develop
分布式

gossip 协议

Redis Sentinel 使用此协议 http://redis.readthedocs.org/en/latest/topic/sentinel.html

Software Engineering

Design Pattern

这个系列文章可以看看 http://www.dotblogs.com.tw/pin0513/archive/2010/01/04/12779.aspx

Linux
Subtopic
存储

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/

Python
学习资料

Learn Python The Hard Way, 3rd Edition http://learnpythonthehardway.org/book/

Flask

轻量级的Web应用框架

WebSocket

WebSocket API是下一代客户端-服务器的异步通信方法。该通信取代了单个的TCP套接字,使用ws或wss协议,可用于任意的客户端和服务器程序

ConfigurationManagement
SaltStack

event

returner

module

直接推送模块

pillar

grains

master对grains有缓存

grains信息是每次客户端启动后 就确定了的 除非你每次采集钱都 重启 minion 或者 重新同步下 grains

系统和硬件的信息 适合很久很久才变化的

minion

mine

适合变化比较大的

定义了收集模块,他自己会把数据收集的,存到了哪里,不知道,但是肯定是客户端minino本地

All About Hadoop
Knowledge

并行程序编程范式(paradigm)

BSP范式

实现 Google Pregel

Apache Hadoop

Message Passing

框架(framework) MPI

实现(implementation)MPICH2

Referrences

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/

Vendors

Databricks

UC Berkeley AMP lab 成立的公司

MapR

HDP

Cloudera

CDH5

CDH4

CDH3

Apache

Hadoop Ecosystem

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

LinkedIn

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开源实现

计算模型

Google

2.0

PowerDrill

Dremel

Google 1.0

BigTable

Chubby

Google File System

MapReduce

Movie

V for Vendetta
I know there's no way I can convince you this is not on of their tricks, but I don't care. I am me. My name is Valerie. I don't think I'll live much longer and I wanna tell someone about my life. This is the only autobiography that I will ever write and, God, I'm writing it on toilet paper. I was born in Nottingham in 1985. I don't remember much of those early years but I do remember the rain. My grandmother owned a farm in Tottle Brook, and she used to tell me that God was in the rain. I passed my 11 Plus and went to girl's grammar. It was school that I met my first girlfriend. Her name was Sarah. It was her wrists. They were beautiful. I thought we would love each other forever. I remember our teacher telling us that it was an adolescent phase that people outgrew. Sarah did. I didn't. In 202 I fell in love with a girl named Christina. That year I came out to my parents. I couldn't have done it without Chris holding my hand. My father wouldn't look at me. He told me to go and never come back. My mother said nothing. But I'd told them the truth. Was that so selfish? Our integrity sells for so little but it is all we really have. It is the very last inch of us. But within that inch we are free. I'd always known what I wanted to do with my life, and in 2015 I starred in my first film The Salt Flats. It was the most important role of my life. Not because of my career, but because that was how I met Ruth. The first time we kissed I knew I never wanted to kiss any other lips but hers again. We moved to a small flat in London together. She grew Scarlet Carsons for me in our window box, and our place always smelt of roses. Those were the best years of my life. But America's war grew worse and worse and eventually came to London. After that there were no roses anymore. Not for anyone. I remember how the meaning of words began to change. How unfamiliar words like collateral and rendition became frightening, while things like Norsefire and the Articles of Allegiance became powerful. I remember how different became dangerous. I still don't understand it why they hate us so much. They took Ruth while she was out buying food. I've never cried so hard in my life. It wasn't long till they came for me. It seems strange that my life should end in such a terrible place. But for three years I had roses and apologized to no one. I shall die here. Every inch of me shall perish. Every inch but one. An inch. It is small and it is fragile, but it is the only thing in the world worth having. We must never lose it or give it away. We must never let them take it from us. I hope that whoever you are you escape this place. I hope that the world turns and that things get better. But what I hope most of all is that you understand what I mean when I tell you that even though I do not know you, and ever though I may never meet you, laugh with you, cry with you or kiss you, I love you, with all my heart. I love you. Valerie.

Life

Reading
NoTech

怎么办 尼古拉-车尔尼雪夫斯基

人物

卡杰琳娜

吉尔沙诺夫

梅察洛夫 进步神父

拉赫美托夫 革命领袖

罗普霍夫

毕蒙特

斯托列希尼科夫 旧贵族

玛莉亚 阿列克塞芙娜

薇拉 巴夫洛芙娜 女主角

生平

1828-07-24 出生1846~1850 彼德堡大学哲学系1853 结婚1854~1862 《现代人》上发表著作1862-07-07 被逮捕,囚禁在彼得保罗要塞1862-12-14~1863-04-04 《怎么办》1864~1883 西伯利亚服苦役和流放1889-10-29 脑溢血

Tech

七周七数据库

七周七语言

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