关闭
当前搜索:

[python]书籍信息爬虫示例

[python]书籍信息爬虫示例 背景说明 需要收集一些书籍信息,以豆瓣书籍条目作为源,得到一些有效书籍信息,并保存到本地数据库。 获取书籍分类标签 具体可参考这个链接: https://book.douban.com/tag/?view=type 然后将这些分类标签链接存到本地某个文件,存储内容如下 https://book.douban.com/tag/小说 https://bo...
阅读(187) 评论(0)

golang并发下载多个文件

背景说明假设有一个分布式文件系统,现需要从该系统中并发下载一部分文件到本地机器。 已知该文件系统的部分节点ip, 以及需要下载的文件fileID列表,并能通过这些信息来拼接下载地址。 其中节点ip列表保存在xx_node.txt, 要下载的fileID保存在xx_fileID.txt中。代码示例package mainimport ( "bufio" "flag" "fm...
阅读(277) 评论(0)

[Golang]通过interface实现"泛型"的用例

目前Golang最新版本为1.9, 暂时不支持泛型。 不过可以通过interface实现”泛型编程”效果, 下面以slice类型数据的添加/删除元素为例, 供大家参考一下:package mainimport ( "errors" "fmt" )var ( ERR_ELEM_EXISTS = errors.New("element exits.") ER...
阅读(299) 评论(0)

使用parallel-ssh批量执行远程shell命令

pssh使用场景假设现在需要对数百台服务器节点进行配置更新或者执行一些简短command,而目前并没有完备的部署工具软件, 那可以选择向pssh这样的并行登录远程终端并执行指定命令的shell工具。 以前机器节点少的时候,直接用shell写个for循环来执行命令,也没什么问题。当节点数量多了之后,一个shell命令可能要消耗几秒, 这时才能感受到pssh这种并行方式的好处,省时省力。pssh可选配...
阅读(232) 评论(0)

分布式转码初步方案(hadoop+ffmpeg)

分布式转码初步方案背景说明现有的转码方案是一个转码worker处理整个视频的不同清晰度的转码,如果一个视频很大,那这个视频转码将非常耗时。 因此需要改进方案,要求对大多数格式的视频可以进行切片后并行转码,以此提高一个视频的转码效率。技术预研目前搜到的参考资料,基本都是针对某几个特定格式的分布式转码方案。 当前视频转码基本都依赖于ffmpeg, 目前存在一个问题: 暂时没有找到一个合适的方法去无...
阅读(494) 评论(1)

分布式文件上传服务架构设计

背景由于某业务需要,需要对文件上传服务进行一次架构调整,初步考虑几点: 水平扩展性:上传worker节点按需弹性部署 负载均衡:根据上传worker节点的状态随时均衡调度 支持断点续传:即需要提供分片上传接口 支持秒传:对于上传过的相同文件直接响应完成 就近原则:通过离用户最近的区域节点上传文件,通过CDN节点下载文件 初步架构逻辑架构图如图所示: 重点功能模块说明: - 上传调度服务 (...
阅读(334) 评论(0)

golang内存管理

最近粗略看了下golang内存初始化相关的代码,结合大牛们的一些源码分析,自己整理了一下学习总结。几个关键数据结构 mspan 由mheap管理的页面,记录了所分配的块大小和起始地址等 mcache 与P(可看做cpu)绑定的线程级别的本地缓存 mcenter 全局空间的缓存,收集了各种大小(67种)的span列表 mheap 分配内存的堆分配器,以8kb进行页管理 fixalloc 固定...
阅读(248) 评论(0)

golang知识点整理(持续更新)

对golang的整体理解 Go是一种编译型语言,结合了解释型语言的优点(如调试效率,跨平台),动态类型语言的优点(如开发效率),以及静态类型的优点(如安全性); Go是静态类型语言,类型系统没有层级,因此无需在类型关系定义上耗费过多时间; Go是垃圾回收型的语言,并为并发执行与通信提供了基本的支持; Go目标是要成为一种现在的系统语言,不过目前更多用来构建支持高性能高并发web服务。 列出常用的一些...
阅读(287) 评论(0)

[Golang]另一角度理解goroutine

偶然看到一条关于goroutine有趣的QA: https://news.ycombinator.com/item?id=12459841 发现可以以另一种方式来理解goroutine,欢迎拍砖。关键概念说明:M: machine, M对应于内核线程; P: processor, P是一种在M上运行的context, 维护了goroutine的列表; G: goroutine核心结构, 维护了g...
阅读(335) 评论(0)

理解TCP/IP协议栈(3)

翻译自: https://www.cubrid.org/blog/understanding-tcp-ip-network-stack如何处理中断及接收包中断处理很复杂, 而你需要理解与之相关的到达包处理的性能. Figure 5展示了一个中断处理的流程. Figure 5: Processing Interrupt, softirq, and Received Packet. 假设CPU 0...
阅读(347) 评论(0)

理解TCP/IP协议栈(2)

翻译自: https://www.cubrid.org/blog/understanding-tcp-ip-network-stack数据接收现在来看看数据是如何接收的. 数据接收就是网络协议栈处理到达数据的过程. 如Figure 3所示: Figure 3: TCP/IP栈各层如何处理到达数据的过程. 首先NIC将包写入它的内存. 它会通过CRC来检查包是否有效, 然后将数据发送到主机的内存...
阅读(474) 评论(0)

操作系统知识点整理(持续更新)

基础概念 操作系统的四个特性 1. 并发: 同一时间间隔内支持执行多个任务, 对于一个核则是交替执行; 2. 共享: 硬件资源或数据资源支持多个进程共享; 3. 异步: 并发情况下, 一个程序会陆陆续续被执行,完成时间不可预知; 4. 虚拟: 物理实体转化为逻辑实体,如虚拟内存。 操作系统的基本功能 1. CPU管理, 作业调度 2. 存储管理, 数据存取 3. 设备管理, 与外围设备交互 4. 接...
阅读(429) 评论(0)

ElasticSearch数据备份与恢复

ElasticSearch数据备份与恢复最近线上业务ES日志量过于庞大, 达到500亿条(约30TB)记录,需要对旧的索引进行归档处理。用scan和scroll的方式导出备份基本是不可能的了, 本文主要是记录(Ubuntu环境)通过sshfs共享文件系统来进行快照方式备份数据。 假设ES集群有三个节点:192.168.1.10 192.168.1.11 192.168.1.121. 创建共享目录...
阅读(715) 评论(0)

理解TCP/IP协议栈(1)

翻译自: https://www.cubrid.org/blog/understanding-tcp-ip-network-stack目前我们的internet服务都是基于TCP/IP来开发的, 无法想像没有TCP/IP的Internet会是什么样子. 因此无论是在逻辑调整, 故障排除,还是发现新技术方面, 理解网络中数据的传输原理会帮助我们多方面提高服务性能表现. 本文会介绍基于Linux系统及...
阅读(508) 评论(0)

[Linux]理解用户空间与内核空间

源文: http://learnlinuxconcepts.blogspot.com/2014/02/kernel-space-and-user-space.html理解用户空间及内核空间对于增强理解Linux内核知识是非常重要的。 这里的用户空间及内核空间对应于虚拟地址空间. 每个linux中的进程占用独立的虚拟空间. 在32位架构linux系统中, 用户空间至少对应3GB虚拟空间, 而内核空间至...
阅读(351) 评论(0)

[shell]curl结果获取http header的问题

在通过curl请求http获取response header时, 发现字符串拼接一个问题。 比如以下程序:hadoop@1:~$ ct=$(curl -s -I http://www.baidu.com | grep Content-Type | awk '{print $2}') hadoop@1:~$ echo $ct text/html hadoop@1:~$ echo $ct"_postf...
阅读(903) 评论(0)

Spark Streaming从Flume读取数据流(pull模式)

1.jar包准备参考官方文档: http://spark.apache.org/docs/latest/streaming-flume-integration.html当前测试flume使用到的jar包版本如下:spark-streaming-flume-sink_2.11-2.2.0.jar scala-library-2.11.8.jar commons-lang3-3.5.jar这几个jar包...
阅读(487) 评论(0)

flume-kafka部署总结

部署准备配置日志收集系统(flume+kafka), 版本:apache-flume-1.8.0-bin.tar.gz kafka_2.11-0.10.2.0.tgz假设部署在三个工作节点的ubuntu系统环境中:192.168.0.2 192.168.0.3 192.168.0.4flume配置说明假设flume的工作目录在/usr/local/flume, 监测某日志文件(如/tmp/tes...
阅读(449) 评论(0)

hadoop-spark错误问题总结(二)

1.Caused by: java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class具体错误日志:Caused by: java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class at org.elasticsearc...
阅读(740) 评论(0)

shell批量对比不同host的目录文件

假设有一个数据集群, 每个集群的目录/data/下面有很多子目录, 子目录内包含很多文件; 每两个节点的/data/目录下所有文件理论上要保持一致(比如fastdfs的两副本模式)。现在需要快速的对每两台机器上的/data目录下的文件检测是否全部一致, 那么可以怎么做呢? 一个思路是利用shell实现, 每次将两台机器上的文件全部扫描并排序到一个文件内, 然后拉取到本地上进行对比。具体示例代码(同...
阅读(354) 评论(0)
411条 共21页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1917670次
    • 积分:19712
    • 等级:
    • 排名:第520名
    • 原创:308篇
    • 转载:83篇
    • 译文:20篇
    • 评论:282条
    学习交流
    Email: moxiaomomo@gmail.com
    QQ:    809444138
    博客专栏
    最新评论