
LINUX系统开发
文章平均质量分 88
逆风飞扬
思考着,奋斗着,冷眼观事,热心待人~
展开
-
Hadoop学习总结之二:HDFS读写过程解析
一、文件的打开1.1、客户端HDFS打开一个文件,需要在客户端调用DistributedFileSystem.open(Path f, int bufferSize),其实现为:public FSDataInputStream open(Path f, int bufferSize) throws IOException { return new DF转载 2011-10-25 12:44:14 · 979 阅读 · 0 评论 -
tar命令的妙用
一、用tar命令只打包目录下的文件夹,不打包文件:ls -l | grep "^d" | awk '{print $9}' | xargs tar zcvf backup.tar.gz二、使用tar对一个目录下的某些文件做排除打包(将site目录打包,但是排除其中attach和images目录,–exclude采用patten方式做匹配排除。):tar cvfz backup.tar.原创 2011-12-09 16:18:08 · 1554 阅读 · 0 评论 -
Posix线程编程指南
线程创建1.1 线程与进程相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。原创 2011-12-16 16:25:18 · 753 阅读 · 0 评论 -
vim 编码方式(encoding、fileencoding、fileencodings、termencoding) 详解
vim 编码方式的设置和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可原创 2011-12-27 20:16:27 · 2862 阅读 · 0 评论 -
Vim 实用技术,第 1 部分: 实用技巧
0. Vim 简介作为开源世界最重要的编辑器之一(另一个是 Emacs),Vim 以其强大的功能和可定制能力被众多开发者所喜爱。不过,也许就是因为 Vim 的功能太强大了,要真正用好 Vim 并不容易。本文作者在多年的实际使用中逐渐掌握了一些实用技术,在此介绍给大家。——本文并不企图对 Vim 作全面而系统的介绍,但也绝非零星地点到即止;而是希望通过介绍一些重要特性和提供相关参考信息,引起原创 2012-01-10 12:03:36 · 807 阅读 · 0 评论 -
Vim 实用技术,第 2 部分: 常用插件
2.1. gzip(压缩文件支持)作者:Bram Moolenar网站脚本编号:无(包含在 Vim 的标准发布之中)安装说明:无功能说明:该脚本使得 Vim 可以直接打开使用 gzip [1]、bzip2 [2] 和 compress [3] 压缩的文件(要求存在相应的命令行工具)。后缀为“.gz”、“.bz2”和“.Z”的文件会在打开时被动态解压缩,并在写原创 2012-01-10 12:04:58 · 786 阅读 · 0 评论 -
python 获得命令行参数的方法
本篇将介绍python中sys, getopt模块处理命令行参数如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1]参数2: sys.argv[2]test.py原创 2011-12-29 14:33:09 · 5081 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.youkuaiyun.com/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有原创 2012-02-07 14:54:31 · 1054 阅读 · 0 评论 -
Hadoop集群配置详解
通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html)1 先决条件确保在你集原创 2012-02-09 10:26:27 · 13142 阅读 · 3 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总转载 2012-03-26 17:38:19 · 3099 阅读 · 0 评论 -
Google三大技术的论文之 BigTable 中译版
Bigtable:一个分布式的结构化数据存储系统译者:alex 摘要Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很 多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量翻译 2012-03-09 15:40:18 · 2034 阅读 · 0 评论 -
perl 引用 详解
为推广perl尽一点力,特将perl引用的一篇文章翻译了一下,没有仔细查错,有问题请和我联系。本文可以从下面地址获得英文版本: http://search.cpan.org/~nwclark/perl-5.8.6/pod/perlreftut.pod perlreftut - Mark 的一个简单的'引用'教程 *名称 *描述 *谁需要复杂的数据原创 2011-11-09 17:15:51 · 1543 阅读 · 0 评论 -
linux awk与shell 参数互传
awk与shell间参数(或说变量传递)是shell编程中常有的话题了,因为其中实际涉及到不少的知识点,比如包括a:进程进通信b:awk参数形式c:shell命令解析,命令替换等等,在此列举二三点例子,做为小结。以下主要分为二部分1:shell给awk传参2:awk往shell传参参考文档:gnu 的awk documentationhttp://www.gnu.o原创 2011-11-08 13:35:48 · 7180 阅读 · 0 评论 -
Hadoop学习总结之三:Map-Reduce入门
1、Map-Reduce的逻辑过程假设我们需要处理一批有关天气的数据,其格式如下:按照ASCII码存储,每行一条记录每一行字符从0开始计数,第15个到第18个字符为年第25个到第29个字符为温度,其中第25位是符号+/-0067011990999991950051507+0000+0043011990999991950051512+0022+转载 2011-10-25 12:45:08 · 724 阅读 · 0 评论 -
Hadoop学习总结之四:Map-Reduce的过程解析
一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClie转载 2011-10-25 12:50:01 · 842 阅读 · 0 评论 -
Hadoop学习总结之五:Hadoop的运行痕迹
在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题。本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题。一、环境的搭建为了能够跟踪这些运行的痕迹,我们需要搭建一个特殊的环境,从而可以一步步的查看上一节提到的一些关键步骤所引起的变化。我们首先搭建一个拥有转载 2011-10-25 12:51:05 · 1018 阅读 · 0 评论 -
MapReduce源码分析总结 hadoop详解
转者注:本来想在Hadoop学习总结系列详细解析HDFS以及Map-Reduce的,然而查找资料的时候,发现了这篇文章,并且发现caibinbupt已经对Hadoop的源代码已经进行了详细的分析,推荐大家阅读。转自http://blog.youkuaiyun.com/HEYUTAO007/archive/2010/07/10/5725379.aspx参考:1 caibinbupt的源代码分转载 2011-10-24 22:57:38 · 2002 阅读 · 0 评论 -
linux sort 命令详解
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbananaapplepearoran原创 2011-10-31 19:24:20 · 4703 阅读 · 0 评论 -
linux grep命令参数及用法详解---管道命令grep
功能说明:查找文件里符合条件的字符串。语 法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][范本样式][文件或目录...]补充说明:grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予原创 2011-11-01 10:30:43 · 2347 阅读 · 0 评论 -
linux expect 详解
接触Expect是迫不得已。系统管理员在工作中经常会遇到这样的问题,需要实现一个自动交互的工具,这个工具可以自动Telnet或者Ftp到指定的服务器上,成功login之后自动执行一些命令来完成所需的工作。# ]2 Q1 K# m) w 当然,有很多编程语言可以去解决此类问题,比如用C、Perl、或者Expect。4 H& ]/ C' W1 z9 A4 i' @% Y6 s原创 2011-11-08 13:29:21 · 24513 阅读 · 1 评论 -
url编码方法比较
javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制原创 2011-11-08 13:30:08 · 1146 阅读 · 0 评论 -
linux expect 学习笔记及实例
因为最近正在学习expect脚本,但是发现网上好多文章都是转载的,觉得这篇文章还不错,所以拿过来和大家分享一下~ 1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示:1.1 首行加上/usr/bin/expect1.2 spawn: 后面加上需要执行的shell命令,比如说spawn sudo touch testfile1.3 expect:原创 2011-11-08 13:31:17 · 5225 阅读 · 2 评论 -
Linux网络编程经典书籍推荐
首先要说讲述TCP/IP的书很多,其中有3泰书很全。分别是《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》作者W.Richard Stevens个人网站 http://www.kohala.com/大师作品部部经原创 2011-11-29 12:00:12 · 861 阅读 · 0 评论 -
Google 三在技术论文 之 GFS 中译版
Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。 1、设计概览 (1)设计想定 GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想。这就翻译 2012-03-09 15:42:38 · 881 阅读 · 0 评论 -
Google三大技术的论文之 MapReduce 中译版
MapReduce:超大机群上的简单数据处理 摘要MapReduce是一个编程模型,和处理,产生大数据集的相关实现.用户指定一个map函数处理一个key/value对,从而产生中间的key/value对集.然后再指定一个reduce函数合并所有的具有相同中间key的中间value.下面将列举许翻译 2012-03-09 15:41:33 · 1080 阅读 · 0 评论 -
Linux命令行技巧
下面我将和大家分享一些学习Linux命令行的技巧,希望能对大家有所助益。如果在本文中遇到不太熟悉的命令,可以在终端中键入以下命令寻求帮助。Man Where there's a shell, there's a way. Linux入门必备了解bash:没有必要钻研长篇累牍的bash使用手册,通过man bash学习即可。了解vi:你在工作中也许会使用Emacs或原创 2012-03-28 11:33:03 · 762 阅读 · 0 评论 -
mysql update完root用户密码后,再登陆报错”Access denied for user 'root'@'localhost' (using password: YES)“的解决方法
1.mysql 更改root用户密码后,再重新登陆系统时会产生如下的错误:Access denied for user 'root'@'localhost' (using password: YES),这是由于更改用户密码后没有给予权限造成的。同时,在修改密码后用新密码登陆时,提示如下的错误:Access denied for user ''@'localhost' (usin原创 2013-05-17 11:42:07 · 2013 阅读 · 0 评论 -
How I Made Porn 20x More Efficient with Python
IntroPorn is a big industry. There aren’t many sites on the Internet that can rival the traffic of its biggest players.And juggling this immense traffic is tough. To make things even harder,原创 2013-05-10 23:37:02 · 16005 阅读 · 0 评论 -
/proc详解--linux man page
proc(5) - Linux man pageNameproc - process information pseudo-file systemDescriptionThe proc file system is a pseudo-file system which is used as an interface to kernel data structures. It is原创 2013-07-05 10:12:38 · 5272 阅读 · 0 评论 -
查看 linux 命令源代码的方法
用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:查看源代码主要有两种方式:基于debian的:以搜索ls命令源码为例,先搜索命令所在包,命令如下:lpj@lpj-linux:~$ which ls/bin/ls用命令搜索该软件所在包,代码如下:lpj@lpj-linu原创 2013-07-05 14:50:02 · 3160 阅读 · 0 评论 -
shell 中判断值是否已经在数组中
1.echo "${array[@]}" | grep -wq "$var" && echo "Yes" || echo "No"2.for i in ${array[@]}do [ "$i" == "$var" ] && echo "yes"done3.test_array (){y_n=$1arr原创 2013-07-29 21:32:29 · 19666 阅读 · 0 评论 -
SecureCRT右键粘贴的设置
1、习惯用putty的朋友,一般都习惯鼠标右键自动粘贴的功能,对于SecureCRT6.0.2 ,这个功能也已经是默认配置了。 老版本的SecureCRT其实也有这个功能,只是不是默认设置,很多人不知道罢了。 菜单: Options->Global Options ...->Terminal 里面有个Mouse的选项块。 Copy on Select原创 2014-01-07 20:10:14 · 2206 阅读 · 0 评论 -
一个“轻量级” C 语言协程库
协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法“子例程是协程的特例”,一个子例程就是一次子函数调用,那么实际上协程就是类函数一样的程序组件,你可以在一个线程里面轻松创建数十万个协程,就像原创 2014-01-28 14:47:32 · 2431 阅读 · 0 评论 -
Linux进程间通信
一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作原创 2014-04-30 19:25:26 · 846 阅读 · 0 评论 -
Hadoop Streaming 使用介绍
Hadoop StreamingHadoop streaming is a utility that comes with the Hadoop distribution. The utility allows you to create and run Map/Reduce jobs with any executable or script as the mapper and/or t原创 2014-05-09 15:29:13 · 982 阅读 · 0 评论 -
Unix考古记:一个“遗失”的shell
谨以此文纪念伟大的计算机科学巨匠Ken Thompson和Dennis Ritchie,并同时向其他所有为Unix发展做出贡献的黑客致敬。历史的尘埃Unix作为一个举世闻名的操作系统已有40余年的历史,围绕着这个古老的操作系统的发展又衍生出了一系列外围软件生态群,其中一个非常重要的组件就是shell。它是操作系统最外层的接口,负责直接面向用户交互并提供内核服务,包括命令行接口(原创 2013-04-27 11:00:02 · 974 阅读 · 0 评论 -
百度贴吧10亿量级LAMP架构分享
贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来有如下部分:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测试工具;运维阶段,包含了集群管理技术、自动化运维工具;同时,这三方面的工作需要一个整体性的解决方案衔接起来。早期的贴吧,作为一个高性能社区,功能相对单一,全部采用C语言开发,系统可重用程度低,开发、测试效率低,运维方面的积原创 2012-12-01 10:29:04 · 800 阅读 · 0 评论 -
JSON 格式详解
介绍 JSONobject {}{ members } members pairpair , members pair string : value array [][ elements ] elements value value , elements value stringnumberobjectarraytruefalse原创 2012-03-28 11:34:30 · 952 阅读 · 0 评论 -
No manual entry for pthread_cond_wait 的解决方法
在最新的ubuntu系统的终端中输入man pthread_cond_wait及pthread_rwlock_wrlock的时候,查看posix函数的帮助,但提示:No manual entry for pthread_cond_wait, 这就是说明我们的man手册默认没有安装全,我们需要手动安装posix的手册:manpages-posix-dev执行安装此包的命令,选择Y后,原创 2012-08-11 21:44:35 · 3830 阅读 · 0 评论 -
Vim配置文件--vimrc 03.01版
001" ----------------- Author: Fly002" ----------------- Email: fly@baidu.com004" ----------------- Date: 2012-03-01005 006" Ctrl + K --光标移上一行末尾007" Ct原创 2012-08-22 16:01:27 · 1150 阅读 · 0 评论