今天是8月1日,下半年的计划开始的第一天。
为解决的问题:
passwd 修改用户密码出现错误,这个很奇怪,在root用户下都修改出错。需要找到passwd 修改密码出错的原因,网上的那种磁盘空间满了或则权限的问题,跟我这个问题不同,而且都检查了不是这两个问题造成的,passwd -d 把密码删除之后,还是不能修改。这个问题,明天在google一下,看看有什么奇怪的地方没有注意到
搭建 hadoop 环境。
为解决大数据量的计算问题,首先单击无法存储,单击运算很慢,使用 hadoop 能够进行分布式存储,即HDFS,HDFS 能够将数据分散存储到不同主机上,但是对于用户感知而言,就像在一个文件系统中使用一样,hadoop 能够帮助用户对数据进行管理。
hadoop 上对数据计算,最开始使用的就是 MapReduce,通俗的讲,就是 map + reduce,MapReduce 对数据处理很保守,相对现在来说,速度不是很快,每次一个简单的计算可能都要查询整个结果集,效率比较低。后来就出现了 Tez 和 Spark,这两个相对 MapReduce 来说,效率更高,速度更快一些。当然,随着技术的发展,以及数据分析人员的需求,使用 MapReduce 或者 Tez 或者 Spark 对数据分析人员来说,需要他们掌握这些语言的编程能力,能够编写逻辑进行计算,是一个比较复杂麻烦的事情,但是人们发现,对于结构化的数据,比如关系型数据库的查询而言,SQL 是一个非常简单方便的方法。于是,在 hadoop 的基础上,出现了一些通过 SQL 就能查询的工具,比如 Hive 和 Pig。这个时候,数据分析人员就不需要去编写复杂的代码逻辑,通过简单的 SQL 就能对数据查询,Hive 能够将 HQL 翻译成 MapReduce 任务,在后台进行计算。
随着技术的进一步发展,人们对数据的处理速度要求越来越高,相继出现了很多框架和工具,比如 storm,流式处理,在数据流向的时候就对已知的一些数据进行计算,这里有一个不足的地方,就是对已知的数据进行计算。但是,当数据流过了之后,就没有了,也就是说,出错了的话是不能回滚得到历史数据的。但是流式处理数据的方法效率非常非常的高。
除此之外,还有一些更特制的系统/组件,比如Mahout是分布式机器学习库,Protobuf是数据交换的编码和库,ZooKeeper是高一致性的分布存取协同系统,等等。
当然,还需要对任务进行调度的工具,YARN,调度系统。
scrapy 的框架
scrapy engine 是一个核心。
spider 通过 yield Request 的 requests 对象,将通过 spider middleware 到 engine,然后 engine 将 requests 加入到 scheduler 的队列中, scheduler 调度队列中的 requests ,将 requests 通过 engine 传给 downloader,downloader 处理结束之后,将 response 传给 engine,engine 再返回到 spider,spider 对 response 数据进行解析 parse,然后生成 item,返回到 engine,engine 如果认为是 item,就将 item 数据路由到 pipelines
两个地方用到了中间件 middleware:
- spider middleware
- downloader middleware
spider 和 pipelines 是我们可以定制的地方,当然 middleware 我们也可以进行定制。
网友评论