类也是对象 在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立: >>> class ObjectCreator(object): … pass … >>> my_object = ObjectCreator() >>> print my_object <__main__.ObjectCreator object at 0x8974f2c> 但是,Python中的类还远不止如此。类同样也是一种对象。是的,没错,就是对象。只要你使用关键字class,Python解释器在执行的时候就会创建一个对象。下面的代码段: >>> class ObjectCreator(object): … pass … 将在内存中创建一个对象,名字就是Obj 继续阅读 >>


周攀 18/02/23 20:53:34
Zookeeper简介 zookeeper是一个为分布式应用所设计的开源协调服务,提供同步,配置管理,分组和命名服务。 设计目标: 简单化 zookeeper允许分布式的进程通过共享体系内的命名空间来进行协调,其组织与标准的文件系统非常相似,是由一些数据寄存器组成,在zookeeper中,这些寄存器称之为znode。zookeeper的数据存放在内存当中,因此其具有高吞吐量和低延迟。 健壮性 zookeeper维护着一个处于内存中的状态镜像,一个位于存储器中的交换日志和快照。只要大部分服务器可用,那么zookeeper服务就是可用的。服务器与客户端之间通过TCP连接,并通过TCP连接来发送请求,获得相应,获取检测事件及发送心跳。 有序性 zookeeper可以为每一次更新操作赋予一个版本号,且此版本号全局有效,不存在重复情况。 速度优势 zookeeper在读取主要负载的时候,特别快,当读工作比写工作多的时候,执行性能更好。 zookeeper的命名空间 zookeeper的命名空 继续阅读 >>


周攀 17/08/21 09:47:47
[unix_http_server]             file=/tmp/supervisor.sock   ; socket文件的路径,supervisorctl用XML_RPC和supervisord通信就是通过它进行                               的。如果不设置的话,supervisorctl也就不能用了         &nbs 继续阅读 >>


周攀 17/08/08 16:45:28
最近舍友推荐了一个免费的VPN,感觉用起来挺好的,速度很快,youtube视频可以直接看,于是向大家分享一下: 如果可以进入Google应用商店,那么直接搜: tunnello 然后安装即可。 要是无法进入Google应用商店或是无法正常下载安装 请点击:https://pan.baidu.com/s/1eScl5J0 密码:2aiw 如链接不可用,请邮件联系:zhoupans_mail@163.com 下载到插件,正常安装即可,如果不知怎么安装,请点击:Chrome安装插件 安装完成,打开就如下图: 点击Go,然后会跳转页面至如下页面: 此页面需要FQ,嗯,你懂得,点击这里: https://laod.cn/hosts/2017-google-hosts.html 比较慢,请耐心等待。 然后就是需要注册: 注册成功之后,正常登陆: 登陆成功: 以后点击go,就可以连接上了: 于是就可以浏览被墙的网页了,同时提供好多不同的节点, 继续阅读 >>


周攀 17/08/08 16:42:34
HBase是一个开源的,分布式的,多版本的,面向列的存储模型。 面向列:简单来说,就是指在存储数据库中的数据时,以列为单位来存储,把一列的数据串在一起存储起来,而非把一行的数据作为一个单元存储起来。 HBase的特点: HBase是构建在HDFS上的列式存储系统 基于Google的BigTable模型开发,典型的key/value系统 逻辑上,HBase将数据按照表,行和列进行存储 HBase主要靠横向的扩展,通过不断地增加廉价的商用服务器来增加计算和存储能力。 HBase表的特点 大:一个表可以有十几亿行,上百万列 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,而同一张表中不同的行可以有截然不同的列 面向列:面向列的存储和权限控制,列独立的检索 稀疏:空(null)列不占用存储空间,可以设计的非常稀疏 数据多版本:每个单元的数据有多个版本,自动的分配版本号 类型单一:一切都是字符串,无其他类型 HBase的体系结构 HBase服务器体系结 继续阅读 >>


周攀 17/08/07 09:38:13
开发用了很久的Vertica,知道它是“列式数据库”但一直没有去研究过列式数据库的一些特性,现在来总结一下。 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于小批量的数据处理,常用于联机事务型数据处理。 数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一个表: EmpId Lastname Firstname Salary 1 Smith Joe 40000 2 Jones Mary 50000 3 Johnson Cathy 44000 这个简单的表包括员工代码(EmpId), 姓名字段(Lastname and Firstname)及工资(Salary). 这个表存储在电脑的内存(RAM)和存储(硬盘)中。虽然内存和硬盘在机制上不同,电脑的操作系统是以同样的方式存储的。数据库必须把这个二维表存储在一系列一维的“字节”中, 继续阅读 >>


周攀 17/08/02 09:16:32
Hive是什么 Hive是一个基于Hadoop文件系统的数据仓库,提供了对数据进行ETL(抽取,转换,加载)的工具、数据存储管理和大型数据集的查询分析能力。Hive提供了类SQL语言-HiveQL,可使用关系数据库提供的的SQL语句来操作Hive。 Hive擅长做什么? Hive擅长在不变的、大规模的数据集上执行的批量操作。 Hive具有良好的扩展性,因为其建立在HDFS上,可自动适应机器数目和数据量的动态变化,并具有良好的容错性。 Hive具有良好的可延展性,由于Hive基于MapReduce,可通过内置的Mapper和Reducer来执行数据分析操作,同时也允许熟悉MapReduce编程框架的用户使用Hive提供的编程接口实现自己的Mapper和Reducer来处理内置的Mapper和Reducer无法完成的复杂数据分析工作。 Hive不擅长做什么? Hive不提供排序和查询cache功能 不提供在线事物处理功能 不提供实时的查询和记录级的更新功能 Hive数据存储 继续阅读 >>


周攀 17/07/31 21:54:07
前面分享了hadoop伪分布式的搭建方法,这次来分享一下分布式方式的搭建方法。 主机安装或虚拟机安装这里就不再赘述,下面直接进入正题: 1.下面是网络配置,全部为静态: master : 192.168.80.128 slave-1 : 192.168.80.129 slave-2 : 192.168.80.130 slave-3 : 192.168.80.131 slave-4 : 192.168.80.132 2.修改hosts,加入如下内容: 192.168.80.128 master 192.168.80.129 slave1 192.168.80.130 slave2 192.168.80.131 slave3 192.168.80.132 slave4 3.修改各个主机的hostname,为对应的名字 4.配置SSH免密码登陆,保证五台主机任意之间可以免密码访问 5.关闭五台主机防火墙 $ sudo systemctl stop firewalld.servic 继续阅读 >>


周攀 17/07/14 18:50:05
HDFS为是Apache Hadoop Core项目的一部分,是Hadoop的核心项目,今天我们就来讨论以下关于HDFS架构设计问题。 分布式 既然HDFS标榜为一个分布式文件系统,那首要解决的就是分布式的问题。分布式,简单来说就是分布在各个节点,这些节点可能在不同的主机上,也可能在不同的数据中心,甚至还可能跨地区,跨国度。各节点之间通过网络来进行信息交互。DHFS通过Namenode和Datanode来实现分布式,Namenode在一个节点,Datanode在不同节点,Namenode通过网络与Datanode来进行数据交互,来管理整个HDFS文件系统。 健壮性 一个文件系统好不好,首要的就是它能否稳定可靠地将数据存储起来,以供后续利用,是评价一个文件系统首要的指标。 容错性 在分布式集群面前,硬件或网络方面的错误将是常态而非异常情况,因此要提高整个系统的健壮性,就必须充分考虑到这些故障问题。HDFS对每个数据块都采用了多副本机制,默认的副本系数为3,意思就是,同一个数据块,有 继续阅读 >>


周攀 17/07/14 14:04:55
由于没有集群环境,只能在一台电脑上进行Hadoop的搭建,因此只能以伪分布式的方式进行搭建。 准备工作 操作系统:CentOS 7 JDK版本:1.8.0_131 Hadoop版本:2.8.0 操作系统安装 系统最好为Linux,推荐CentOS,关于系统安装,这里不赘述。 JAVA环境配置 1.下载jdk $ wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz 2.解压jdk-8u131-linux-x64.tar.gz: $ tar -zvxf jdk-8u131-linux-x64.tar.gz 3.将解压的文件放到/usr/local下: $ sudo mv jdk1.8.0_131 /usr/local/ 4.打开/etc/bashrc $ s 继续阅读 >>


周攀 17/07/12 20:03:19