有时启动hadoop会出现各种问题,现给出完整的启动hadoop步骤,搭建hadoop,请参考:http://blog.csdn.net/zhaoyl03/article/details/8657104。
阅读全文 >>1 | git clone https://github.com/damotiansheng/damotiansheng.github.io.source.git |
访问http://localhost:4000/查看效果即可
解决:把node升级到6.0版本及以上,此为还要将.travis.yml中的nodejs版本改为6;
参考文章:http://www.cnblogs.com/arvin0/p/6664239.html
本篇文章简单介绍下storage server(client端)向tracker server(server端)发送一个命令,然后server端处理命令,client端得到结果的流程。
阅读全文 >>相关文章
1)思想:与tracker主流程一样,采用主线程监听得到fd,dispatch子线程(默认4个工作线程)进行处理;
2)创建的线程数:会创建与tracker server数量相等的report thread,用于向tracker server发送相关信息,会创建4个工作线程用于处理任务,会创建一个调度线程,用于执行一些定期任务,如:log_sync_func,fdfs_binlog_sync_func等,还会创建一些IO读写线程,用于读写目录,默认一个目录有一个读线程和一个写线程,线程函数都为dio_thread_entrance函数;
3)主要处理过程:主线程往管道写入得到的连接的相关信息(其实是写入一个fast_task_info地址),工作线程会调用storage_recv_notify_read函数得到该地址,然后依据不同的状态进行不同的处理,具体见storage_recv_notify_read函数;
fastdfs有这样的一个需求,设置一个超时时间,时间到了,自动调用某个函数,其实现的思想有点像Timing wheel的思想,构造一个60(默认)个格子的循环队列,插入超时事件时,插入到(该事件超时时间-循环队列基准时间)%60的对应格子上去,每个格子是一个双向链表,接着采用epoll IO复用函数,1秒后,epoll超时返回,然后依据循环队列中的当前时间,遍历该循环队列,直到循环队列中的当前时间等于当前系统时间,遍历时,判断事件是否超时,将所有已经超时的事件提取出来(从循环队列中删除),构造成链表,接着遍历该链表,依次调用超时事件的回调函数,达到超时事件的处理;
Timing wheel1
Timing wheel2
tag:
缺失模块。
1、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
2、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: true raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true