猴子笔记

Monkey's Blog


  • 首页

  • 标签

  • 归档

  • 关于

  • 搜索

Python-Tornado框架总结

发表于 2019-09-19 | 更新于: 2019-09-19 | 分类于 Web后端 | 阅读次数:

Tornado框架

常用的包和模块

# 异步HTTP服务器
from tornado.ioloop import IOLoop
from tornado import gen,web

# 多进程服务器
from tornado.httpserver import HTTPServer

# 访问数据库
from tornado_mysql import pools

# 访问网路
from tornado.httpclient import AsyncHTTPClient

# 单元测试
from tornado.testing import gen_test, AsyncTestCase
import unittest

# TCPServer
from tornado import ioloop,gen,iostream
from tornado.tcpserver import TCPServer

# TCPClient
from tornado import ioloop,gen,iostream
from tornado.tcpclient import TCPClient

# socket模块(套接字)
import socket
阅读全文 »

Tornado框架学习

发表于 2019-09-09 | 更新于: 2019-09-09 | 分类于 Web后端 | 阅读次数:

为什么用Tornado?

异步编程原理

服务器同时要对许多客户端提供服务,他的性能至关重要。而服务器端的处理流程,只要遇到了I/O操作,往往需要长时间的等待。

当然,我们可以用多线程/多进程达到类似的目的,但线程和进程都是系统控制的,消耗资源较多,而且何时运行,何时挂起不由程序本身做主,调度开销较大。我们希望将多任务流程的调度工作方法放到自己的代码里,精确的控制他的行踪,与线程相似,我们称这种任务流程为协程。
协程实在一个线程之内,无需操作系统参与,由程序自身调度的执行单位。
按照上述模式,在一个进程之内同时处理多个协程,充分利用CPU时间,就是我们需要的异步编程。

阅读全文 »

常用算法总结

发表于 2019-06-14 | 更新于: 2019-06-14 | 分类于 算法 | 阅读次数:

二分查找

给定一个数组(有序列表)和一个数字,要求查出该数字所在的索引位置。

def binary_search(list, item):
# lowh和high用于跟踪要在其中查找的列表部分
low = 0
high = len(list) - 1

# 只要范围没有缩小到只包含一个元素,就检查中间的元素
while low <= high:
mid = (low + high) // 2
guess = list[mid]
# 找到了元素
if guess == item:
return mid
# 猜的数字大了
if guess > item:
high = mid - 1
# 猜的数字小了
else:
low = mid + 1
# 没有指定的元素
return None

# 测试
my_list = [1, 3, 5, 7, 9]
print(binary_search(my_list, 3)) # => 1
print(binary_search(my_list, -1)) # => None
阅读全文 »

Hadoop知识点总结

发表于 2019-04-30 | 更新于: 2019-06-14 | 分类于 Hadoop | 阅读次数:

HDFS 和YARN 的基本概念

HDFS

分布式文件系统,主/从架构

  • NameNode:负责管理元数据(文件名称,副本数量,文件位置,块大小)。HDFS 存储是以块存储 默认块大小 128MB,hadoop1 中默认的块大小是64MB。一个节点。
  • DataNode:主要存储真正的数据,多节点。
  • secondaryNamenode:辅助节点,用于合并两类文件。
  • Fsimage, edits:作为元数据的镜像和操作的日志记录。
阅读全文 »

HBase知识点总结

发表于 2019-04-30 | 更新于: 2019-06-19 | 分类于 HBase | 阅读次数:

HBase的架构

阅读全文 »

Hive知识点总结

发表于 2019-04-30 | 更新于: 2019-04-30 | 分类于 Hive | 阅读次数:

hive与mysql的区别

回答思路:hive背景(原理、本质)–>两者操作、本质的差别–>读写差别–>其它差别。

Hive的诞生背景:学mysql的也想入门大数据,但又不会java,于是hive就诞生了。Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表。本质是将HQL语句转化为MR程序。

阅读全文 »

数据库知识点总结

发表于 2019-04-30 | 更新于: 2019-06-14 | 分类于 数据库 | 阅读次数:

1. 事务四大特性(ACID)原子性、一致性、隔离性、持久性?

  • 原子性(Atomicity)

    原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

  • 一致性(Consistency)

    事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。

  • 隔离性(Isolation)

    隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

    同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。

  • 持久性(Durability)

    持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

阅读全文 »

Hive数据倾斜优化总结

发表于 2019-04-25 | 更新于: 2019-04-25 | 分类于 Hive | 阅读次数:

1. 数据倾斜的原因

1.1 操作

关键词 情形 后果
Join 其中一个表较小,但是key集中 分发到某一个或几个reduce上的数据远高于平均值
Join 大表与大表,但是分桶的判断字段0值或空值过多 这些空值都由一个reduce处理,非常慢
group by group by 维度过小,某值的数量过多 处理某值的reduce耗时
Count Distinct 某特殊值过多 处理此特殊值的reduce耗时
阅读全文 »

sqlload用法总结

发表于 2019-04-25 | 更新于: 2019-04-25 | 分类于 Oracle | 阅读次数:

总体流程

  • 创建bad、log、ctl、discard目录
  • 在数据库中创建需要导入的表
  • 编写控制文件,例如test.ctl ,放到ctl目录下(数据文件也在ctl目录下)
  • 执行命令 sqlldr username/password@10.119.169.126:1521/dtlkdvapdb control=’ctl\test.ctl’ log=’log\test.log’ bad=’bad\test.log’ discard=’discard\test.log’ direct=true;
  • 导入完成后需要检查log和bad日志,看是否存在问题导致数据并未入库
阅读全文 »

数据架构随记

发表于 2019-04-22 | 更新于: 2019-04-23 | 分类于 数据 | 阅读次数:
更多详情请点击
阅读全文 »
123
猴子哥

猴子哥

接受变化,拥抱新世界

26 日志
14 分类
27 标签
GitHub 知乎
友情链接
  • IIssNan
  • 美团技术团队
  • 有赞技术团队
  • IT草根推荐博客
© 2018 — 2020 猴子哥
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4