分类

猿来如此

猿来如此 2017-11-04

hadoop学习笔记

首先先介绍下Hadoop,来自维基百科:

Apache Hadoop是一款支持数据密集型分布式应用程序并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop是根据谷歌公司发表的MapReduce和Google文件系统的论文自行实现而成。所有的Hadoop模块都有一个基本假设,即硬件故障是常见情况,应该由框架自动处理。 Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分区成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。此外,Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据。现在普遍认为整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等。

Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总...

猿来如此 2017-09-20

关于SqlServer中的NOLOCK

在我们系统的sql查询代码中,经常可以看到select之后会加一个NOLOCK的关键字,但是至于这个关键字是什么意思,问了下大家一般也就是说“禁用读写锁,可以提升查询性能”,但是真正深层次的原因却不清楚,查询了下相关资料然后整理了下分享给大家。

nolock是什么

nolock是 SQL Server 的一个关键字,这类关键字官方将其称之为 Hints。 Hints 的设计目的是为了能够让 SQL 语句在运行时,动态修改查询优化器的行为。 在语法上,Hints 以WITH开头。除了WITH(nolock), 还有TABLOCK/INDEX/ROWLOCK等常见的 Hints。 MSDN文档上的解释是这样的:

nolock的作用等同于READUNCOMMITTED

READUNCOMMITTED这是一种 RDBMS 隔离级别。 使用nolock这个关键词,可以将当前查询语句隔离级别调整为READ UNCOMMITTED。
下面来介绍下什么是隔离级别:

隔离级别

隔离级别主要有四种,其隔离程度由高到低是:
- 可序列化(Serializable) - 可重复读(Repeatable reads) - 提交读(Read committed) - 未提交读(Read uncommitted)

隔离级别主要解决的问题是加一个针对数据资源的锁,从而保证数据操作过程中的一致性。...

Python 2017-09-03

本站支持微信公众号了

在最新释出的v4.0版本中,本站集成了微信公众号的功能,现在可以使用微信公众号来管理你的vps了。
默认情况下是图灵机器人自动回复的,输入admin之后开始验证密码,通过后进入命令模式,可以通过在后台配置一些命令来在这里执行并返回结果。

当然,也集成了一些基本的博客文章搜索等功能,后续会集成一些常用等api进来。 欢迎大家扫码关注本站。 qrcode

Mac 2017-06-23

备份和恢复raspberrypi镜像

备份raspberrypi镜像很简单,直接用命令就可以搞定,下面介绍下方法。 首先需要知道树莓派磁盘的磁盘编号,终端下输入:

diskutil list

输出类似下图:
diskutil
可以看到/dev/disk1是32G树莓派的磁盘,/dev/disk2是1T的移动硬盘,我们要备份的就是/dev/disk1。 备份命令如下:

sudo dd if=/dev/rdisk1 of=backup.img bs=4M

恢复的话使用如下命令:

sudo dd if=backup.img of=/dev/rdisk1 bs=4M

说明下:

diskutil 所列出来的 MicroSD 卡是 /dev/disk1,而这里 dd 的 if 参数所使用的是 /dev/rdisk1,两个都是同一张 MicroSD 卡,不过 /dev/rdisk1 是没有经过缓冲区、直接进行存取的 raw device,所以读取与写入速度会比较快(请参考 hdiutil 的线上手册).如果使用 /dev/rdisk1 失败的话,可以改用 /dev/disk1.

但是这样备份出来的镜像太大了,实测32G备份完成之后30G左右,我们可以使用Gzip压缩下:

sudo dd if=/dev/rdisk1 bs=4M | gzip > backup.gz

备份完成之后大概4G左右。 恢复的话使用如下命...

Python 2017-06-04

使用树莓派实现WebCamera实时监控

配件就一个可以跑起来的树莓派,然后再有一个淘宝上的那种摄像头模块就可以了。
效果如下图:
WebCamera 这样就可以开着树莓派,然后只要通过浏览器就可以实时监控到你感兴趣的地方,代码也挺简单的,如下:

基于python3,需要安装picamera

pip install picamera

下面是示例代码:

#!/usr/bin/env python
# encoding: utf-8


"""
@version: ??
@author: liangliangyy
@license: MIT Licence
@contact: [email protected]
@site: https://www.lylinux.net/
@software: PyCharm
@file: webcam.py
@time: 2017/5/22 下午10:36
"""

import io
import picamera
import logging
import socketserver
from threading import Condition
from http import server

PAGE="""\
<html>
<head>
<title>picamera MJPEG streaming demo</title>
</head>
<body>
<h1>PiC...
Python 2017-05-19

Python虚拟环境设置

virtualenv

virtualenv 是一个可以在同一计算机中隔离多个python版本的工具。有时,两个不同的项目可能需要不同版本的python,如 python2.6.6 / python3.0 ,但是如果都装到一起,经常会导致问题。所以需要一个工具能够将这两种或几种不同版本的环境隔离开来,需要哪个版本就切换到哪个版本做为默认版本。virtualenv 既是满足这个需求的工具。它能够用于创建独立的Python环境,多个Python相互独立,互不影响,能够:

  • 在没有权限的情况下安装新套件
  • 不同应用可以使用不同的套件版本
  • 套件升级不影响其他应用

安装: pip install virtualenv

使用方法

创建环境

virtualenv [新环境名] :这会再当前目录下创建一个新环境目录 可使用 virtualenv --help 来查看如何使用。可以使用参数 --python=/usr/bin/python3 来创建一个已经安装的的Python环境。

使用环境

切换到新环境目录 执行:source ./bin/activate 来激活环境,激活后在命令行的前面会出现新环境名称 接下来可使用pip命令安装新环境需要的各种包。(pip命令在创建新环境时自带)

退出虚拟环境

deactivate

如果要删除虚拟环境,只需退出虚拟环境后,删除对应的虚拟环境目录...

发现更多