千夜同学 看脚下一片黑暗 望头顶星光璀璨

开源分布式计算系统框架比较

| Storm Hadoop MapReduce Spark

分布式计算在许多领域都有广泛需求,目前流行的分布式计算框架主要有 Hadoop MapReduce, Spark Streaming, Storm。 这三个框架各有优势,现在都属于 Apache 基金会下的项目。

Hadoop MapReduce 是三者中出现最早,知名度最大的分布式计算框架,最早由 Google Lab 开发,使用者遍布全球,主要适用于大批量的集群任务,由于是批量执行,故时效性偏低,原生支持 Java 语言开发 MapReduce ,其它语言需要使用到 Hadoop Streaming 来开发。

Storm 一开始就是为实时处理设计,因此在实时分析/性能监测等需要高时效性的领域广泛采用,而且它理论上支持所有语言,只需要少量代码即可完成适配器。

Spark Streaming 保留了 Hadoop MapReduce 的优点,而且在时效性上有了很大提高,中间结果可以保存在内存中,从而对需要迭代计算和有较高时效性要求的系统提供了很好的支持,多用于能容忍小延时的推荐与计算系统。

 READ MORE 

MySQL 无法连接 [MySql Host is blocked because of many connection errors]

| MySQL

MySQL 报错 Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’

原因:同一个 ip 在短时间内产生太多中断的数据库连接而导致的阻塞。

 READ MORE 

折腾的博客

|

经过进一个月的折腾,博客终于稳定了下来。

由于这学期学习比较紧张,所以基本没有什么时间继续做论坛。

博客也准备重做了,前几天关掉了论坛,以后就以更新博客为主。

博客由 wordpress 升级到了 typecho。

 READ MORE 

Python dict 排序

| Python

对 dict 排序的方法,主要是把 dict 中的元素分离出来放到一个 list 中,对 list 排序,从而间接实现对 dict 的排序。

这个"元素"可以是 key、value 或者 item。

 READ MORE 

Python 提取文本中的中文

| Python

主要是通过中文编码范围匹配

# -*- coding: utf-8 -*-
import re
import sys

reload(sys)
sys.setdefaultencoding("utf8")

def translate(str):
    # 处理前进行相关的处理 包括转换成 Unicode 等
    line = str.strip().decode('utf-8', 'ignore')
    # 中文的编码范围是 \u4e00 到 \u9fa5
    p2 = re.compile(ur'[^\u4e00-\u9fa5]')
    zh = " ".join(p2.split(line)).strip()
    zh = ",".join(zh.split())
    # 经过相关处理后得到中文的文本
    outStr = zh
    return outStr
 READ MORE 

Python list 去重

| Python

基础方法

ids = [1,2,3,3,4,2,3,4,5,6,1]
news_ids = []
for id in ids:
    if id not in news_ids:
        news_ids.append(id)
print news_ids
 READ MORE 

让你的 Python 代码更 Pythonic

| Python

变量交换

a, b = b, a

循环遍历

for i in xrange(6):
    print i

带有索引位置的集合遍历

colors = ['red', 'green', 'blue', 'yellow']
for i, color in enumerate(colors):
    print i, color

字符串拼接

names = ['raymond', 'rachel', 'matthew', 'roger', 'betty', 'melissa', 'judith', 'charlie']
print ', '.join(names)

打开文件

with open('data.txt') as f:
    data = f.read()

列表推导式

[j for i in xrange(10)]

遍历字典

for k, v in d.iteritems():
    print k, v
for i, v in enumerate(l):
    pass

构建字典

names = ['raymond', 'rachel', 'matthew']
colors = ['red', 'green', 'blue']
d = dict(izip(names, colors))
 READ MORE 

Python 如何处理 ImmutableMultiDict 中的数据

| Python Flask

Flask 与前端数据交互的时候,经常会使用 ImmutableMultiDict、MultiDict 类型。

combined = CombinedMultiDict([self])
getData = combined['endDate']
 READ MORE 

Flask 时快时慢的问题

| Python Flask
app.run(host="0.0.0.0", port=8080)

当 app.run 设置成这样的时候,有时候页面加载会时快时慢。 原来默认 Flask 是单线程的,需要更改参数。

 READ MORE