好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python第三十二课(hadoop数据库)

一、数据类型

1.结构化数据:有规则的数据,关系数据中的数据,有字段进行约束,数据表是固定的。例如:关系型数据库。 2.半结构化数据:使用key-value方式存储,数据虽然有结构,但约束不是很严格;例如:NoSQL数据库。

3.非结构化数据:没有规则可言,例如:图像,视频内容的数据。包含的信息很多,没有固定的结构,更没有什么字段约束;

二、大数据如何存储

问题:怎么样把大量的非结构化/半结构化/结构化的数据储存起来,进行高效 检索、修改、增加和分析。 针对这样的问题,Google发表很多论文,而且都是10几年前,很有超前性。某个大神依据Google的论文思想,开发了Hadoop。成就了国内很多人。 Hadoop系统类似Oracle,可以看作一套数据库软件。主要有三块 1、Hbase:key-value方式存储数据,属于NoSql数据库,最大化利用内存空间,方便科学计算。 2、HDFS:hadoop distribute file system分布式文件系统,主要是有效利用磁盘空间存储数据。 3、MapReduce: 有了数据计算节点()的概念,最大化利用CPU进行数据分析。 Hadoop可以可靠的存储PB级别的数据,使用普通的机器组成服务器集群,可达到几千个节点,成本比较低。使用datanode方式并行计算数据,有效利用了cpu,计算速度也快。 三、Hadoop架构 使用主从结构: 1、namenode:主节点, 接收用户操作请求,维护整个文件系统的目录结构,管理文件、block、datanode之间的关系。 2、datanode:从节点,文件被分成block存储再磁盘上,为了保证数据安全,文件分成多个副本。同一存储再磁盘上。

四、Hadoop读写

1、读数据

 文件数据用RPC调用datanode,得到文件matedata,返回数据块的节点地址。客户端调用stream的read来开始读取数据块,当这个数据块读完比,有DFSInputStream连接下一个数据库,直到文件读取完毕。关闭stream,而后端口连接。 

2、写数据

 matedata创建一个新文件,有DSFOutputStream开始写入数据。为了把文件分块,加入了data queue技术。 

3、checkpoint

这个概念和人工智能训练中的保存数据模型的一样,都是写文件的限制。 fs.checkpoint.period记录两次checkpoint之间的最大时间间隔。默认是3600秒。 fs.checkpoint.size指文件的最大值,超过了就强制checkpoint,默认为64M。

五、pyhdfs

Python如何操作Hadoop数据库?这就是Python的优点,胶水语言,通过pyhdfs模块,操作Hadoop。 Hadoop的安装,这里不做介绍。pyhdfs模块的基本操作如下:

 pip install pyhdfs
import pyhdfs
fs = pyhdfs.HdfsClient(ip:port,user_name="",)
fs.list_status('/')
fs.listdir('/')
fs.create('/fruit/apple', 'delicious')
fs.get_file_status('/fruit/apple') 

看上面的操作,像 Linux 文件系统。

查看更多关于Python第三十二课(hadoop数据库)的详细内容...

  阅读:47次