Thursday, November 28, 2013

[repost ]Using Distributed Cache in Hadoop (Hadoop 0.20.2)

original:http://bishalacharya.blogspot.com/2011/09/using-distributed-cache-in-hadoop.html Quite often we encounter situation when we need certain files like configuration files, jar libraries, xml files, properties files etc to be present in Hadoops processing nodes at the time of its execution. Quite understandably Hadoop has a feature called Distributed Cache which helps in sending those readonly files to the task nodes. In [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13440/repost-using-distributed-cache-in-hadoop-hadoop-0-20-2#utm_source=rss&utm_medium=rss&utm_campaign=repost-using-distributed-cache-in-hadoop-hadoop-0-20-2

Labels:

[repost ]Analyzing Big Data » Getting Started: Sentiment Analysis

original:http://docs.aws.amazon.com/gettingstarted/latest/emr/getting-started-emr-sentiment-tutorial.html Getting Started: Sentiment Analysis Topics Step 1: Create a Twitter Developer Account Step 2: Create an Amazon S3 Bucket for the Amazon EMR Files Step 3: Collect and Store the Sentiment Data Step 4: Customize the Amazon EMR Mapper Step 5: Create an Amazon EMR Cluster Step 6: Examine the Sentiment Analysis Output Step [...]



via WordPress http://blog.newitfarmer.com/anls/analytics-bi/sentiment-analysis-analytics-bi/13436/repost-analyzing-big-data-getting-started-sentiment-analysis#utm_source=rss&utm_medium=rss&utm_campaign=repost-analyzing-big-data-getting-started-sentiment-analysis

Labels:

[repost ]Analyzing Big Data » Getting Started: Web Server Log Analysis

original:http://docs.aws.amazon.com/gettingstarted/latest/emr/getting-started-emr-tutorial.html Getting Started: Web Server Log Analysis Topics Step 1: Create a Cluster Using the Console Step 2: Connect to the Master Node Step 3: Start and Configure Hive Step 4: Create the Hive Table and Load Data into HDFS Step 5: Query Hive Step 6: Clean Up Suppose you host a popular e-commerce website. [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13434/repost-analyzing-big-data-getting-started-web-server-log-analysis#utm_source=rss&utm_medium=rss&utm_campaign=repost-analyzing-big-data-getting-started-web-server-log-analysis

Labels:

[repost ]Yahoo! Hadoop Tutorial

original:http://developer.yahoo.com/hadoop/tutorial/index.html Table of Contents Welcome to the Yahoo! Hadoop Tutorial. This tutorial includes the following materials designed to teach you how to use the Hadoop distributed data processing environment: Hadoop 0.18.0 distribution (includes full source code) A virtual machine image running Ubuntu Linux and preconfigured with Hadoop VMware Player software to run the virtual machine [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13424/repost-yahoo-hadoop-tutorial-2#utm_source=rss&utm_medium=rss&utm_campaign=repost-yahoo-hadoop-tutorial-2

Labels:

Tuesday, November 26, 2013

[repost ]exploring apache log files using hive and hadoop

original:http://www.johnandcailin.com/blog/cailin/exploring-apache-log-files-using-hive-and-hadoop if you’re exploring hive as at technology, and are looking to move beyond “hello, world”, here’s a little recipe for a simple but satisfying first task using hive and hadoop. we’ll work through setting up a clustered installation of hive and hadoop, and then import an apache log file and query it using hive’s [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13409/repost-exploring-apache-log-files-using-hive-and-hadoop#utm_source=rss&utm_medium=rss&utm_campaign=repost-exploring-apache-log-files-using-hive-and-hadoop

Labels:

[repost ]Apache Hadoop on Rackspace Private Cloud

original:http://www.rackspace.com/knowledge_center/article/apache-hadoop-on-rackspace-private-cloud Overview Rackspace Private Cloud Software allows businesses to quickly and seamlessly implement a stable and reliable Apache Hadoop cluster quickly and simply in an open cloud solution. Apache Hadoop and the Cloud Two major trends in the technology zeitgeist include Cloud Computing and Big Data and it now makes sense to look at the [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13399/repost-apache-hadoop-on-rackspace-private-cloud#utm_source=rss&utm_medium=rss&utm_campaign=repost-apache-hadoop-on-rackspace-private-cloud

Labels:

[repost ]FlexPod Select with Hortonworks Data Platform (HDP)

original:http://www.cisco.com/en/US/docs/unified_computing/ucs/UCS_CVDs/flexpod_hadoop_hortonworks.html Table Of Contents About the Authors Acknowledgments About Cisco Validated Design (CVD) Program FlexPod Select with Hortonworks Data Platform (HDP) Overview Audience Big Data Challenges and Opportunities FlexPod Select for Hadoop Benefits Hortonworks Data Platform (HDP) Hortonworks – Key Features and Benefits FlexPod Select for Hadoop with Hortonworks Architecture Solution Overview Connectivity and Management [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13397/repost-flexpod-select-with-hortonworks-data-platform-hdp#utm_source=rss&utm_medium=rss&utm_campaign=repost-flexpod-select-with-hortonworks-data-platform-hdp

Labels:

[repost ]Best Practices: Linux File Systems for HDFS

original:http://hortonworks.com/kb/linux-file-systems-for-hdfs/ ISSUE: Choosing the appropriate Linux file system for HDFS deployment SOLUTION: The Hadoop Distributed File System is platform independent and can function on top of any underlying file system and Operating System. Linux offers a variety of file system choices, each with caveats that have an impact on HDFS. As a general best practice, [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13392/repost-best-practices-linux-file-systems-for-hdfs#utm_source=rss&utm_medium=rss&utm_campaign=repost-best-practices-linux-file-systems-for-hdfs

Labels:

Monday, November 25, 2013

[repost ]Core algorithms deployed

original:http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/19773 To demonstrate the importance of algorithms (e.g. to students and professors who don’t do theory or are even from entirely different fields) it is sometimes useful to have ready at hand a list of examples where core algorithms have been deployed in commercial, governmental, or widely-used software/hardware. I am looking for such examples that [...]



via WordPress http://blog.newitfarmer.com/software-develop/arithmetic/13381/repost-core-algorithms-deployed#utm_source=rss&utm_medium=rss&utm_campaign=repost-core-algorithms-deployed

Labels:

[repost ]机器学习经典论文/survey合集

original:http://suanfazu.com/discussion/68/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%BB%8F%E5%85%B8%E8%AE%BA%E6%96%87survey%E5%90%88%E9%9B%86#0-tsina-1-13801-397232819ff9a47a7b7e80a40613cfe1 Active Learning Two Faces of Active Learning, Dasgupta, 2011 Active Learning Literature Survey, Settles, 2010 Applications A Survey of Emerging Approaches to Spam Filtering, Caruana, 2012 Ambient Intelligence: A Survey, Sadri, 2011 A Survey of Online Failure Prediction Methods, Salfner, 2010 Anomaly Detection: A Survey, Chandola, 2009 Mining Data Streams: A Review, Gaber, 2005 [...]



via WordPress http://blog.newitfarmer.com/ai/machine-learning/13359/repost-%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e7%bb%8f%e5%85%b8%e8%ae%ba%e6%96%87survey%e5%90%88%e9%9b%86#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e6%259c%25ba%25e5%2599%25a8%25e5%25ad%25a6%25e4%25b9%25a0%25e7%25bb%258f%25e5%2585%25b8%25e8%25ae%25ba%25e6%2596%2587survey%25e5%2590%2588%25e9%259b%2586

Labels:

Saturday, November 23, 2013

[repost ]数据驱动智能-计算广告学

original:http://guanggaoxue.csdn.net/module/zone/baidu_data/index#reseda 什么是计算广告学? 计算广告学是一门正在兴起的分支学科,它涉及到大规模搜索和文本分析、信息获取、统计模型、机器学习、分类、优化以及微观经济学。 计算广告学所面临的最主要挑战是在特定语境下特定用户和相应的广告之间找到“最佳匹配”。语境可以是用户在搜索引擎中输入的查询词,也可以是用户正在读的网页,还可以是用户正在看的电影,等等。而用户相关的信息可能非常多也可能非常少。潜在广告的数量可能达到几十亿。 >>详细 技术沙龙 数据驱动智能——百度计算广告学 随着互联网普及、大数据冲击、用户与广告主需求变化,计算广告学技术也正在发生着深刻变革。透析趋势变化,展现技术亮点——百度计算广告学沙龙将为业界带来技术大牛们的精彩分享。在第二期沙龙中,我们邀请了百度联盟研发总监沈抖、百度商务搜索部高级产品经理戎文晋、百度深度学习研究院首席科学家张潼一起交流关于“机器学习与机制设计”。 沙龙时间:11月23日(星期六) 沙龙地点:华东师范大学·大学生活动中心一楼报告厅 报名参与 计算广告学热力图 计算广告学视频教程 内容匹配广告投放技术:网盟概述&工程架构 内容匹配广告投放技术:网盟广告匹配 内容匹配广告投放技术:网盟CTR预估 展示广告投放技术:品牌展示广告(一) 展示广告投放技术:品牌展示广告(二) 内容匹配广告投放技术:网盟概述&工程架构 内容匹配广告投放技术:网盟广告匹配 内容匹配广告投放技术:网盟CTR预估 展示广告投放技术:品牌展示广告(一) 展示广告投放技术:品牌展示广告(二) 线下沙龙 11月23日 10月26日 数据驱动智能——百度计算广告学(机器学习与机制设计) 沙龙地点:华东师范大学·大学生活动中心一楼报告厅 沙龙时间:2013年11月23日(13:30签到) 时间 主题 演讲者 13:30~14:00 签到 14:00~14:30 展示广告的发展及挑战 沈抖,百度联盟研发总监 14:30-15:00 广告、博弈和市场设计 戎文晋,百度商务搜索部高级产品经理 15:00-15:30 深度学习技术的发展与创新应用 张潼,百度深度学习研究院首席科学家 15:30-16:00 观众与嘉宾互动问答 圆桌问答张潼、沈抖、戎文晋 更多精彩博文 互联网广告的RTB革命 计算广告学 关键词拍卖中最优保留价的研究 关键词广告支付模式的研究 方兴未艾的计算广告学——微软亚洲研究院高级研究员 刘铁岩 大数据下的企业网络营销 传统企业发展新契机 [...]



via WordPress http://blog.newitfarmer.com/ai/data-mining/13352/repost-%e6%95%b0%e6%8d%ae%e9%a9%b1%e5%8a%a8%e6%99%ba%e8%83%bd-%e8%ae%a1%e7%ae%97%e5%b9%bf%e5%91%8a%e5%ad%a6#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e6%2595%25b0%25e6%258d%25ae%25e9%25a9%25b1%25e5%258a%25a8%25e6%2599%25ba%25e8%2583%25bd-%25e8%25ae%25a1%25e7%25ae%2597%25e5%25b9%25bf%25e5%2591%258a%25e5%25ad%25a6

Labels:

[repost ]阿里内部分享:大数据业务平台两年发展历程

original:http://www.36dsj.com/archives/4614#13688-tsina-1-86157-57d4d90508c08d162896a47818ce968b 这篇文章来自一个公司内部的分享,是自己所服务的业务中数据平台的发展历程,已经讲了有几个月了,最近打算挑几个点拿出来用文章的形式写出来。是自己进入公司以来参与过或者接触过的数据型项目的情况。基本包含了业务数据分析的整个流程。这篇文章纯文字描述,没有任何图呵呵。所以看我需要耐心。 1、最早的数据分析可能就报表 目前很多数据分析后的结果,展示的形式很多,有各种图形以及报表,最早的应该是简单的几条数据,然后搞个web页面,展示一下数据。早期可能数据量也不大,随便搞个数据库,然后SQL搞一下,数据报表就出来了。但是数据量大起来怎么分析呢?数据分析完了怎么做传输呢?这么大的数据量怎么做到实时呢?分析的结果数据如果不是很大还行,如果分析的结果数据还是很大改怎么办呢?这些问题在这篇文章中都能找到答案,下面各个击破。 2、要做数据分析,首先要有数据 这个标题感觉有点废话,不过要做饭需要食材一样。有些数据时业务积累的,像交易订单的数据,每一笔交易都会有一笔订单,之后再对订单数据作分析。但是有些场景下,数据没法考业务积累,需要依赖于外部,这个时候外部如果有现成的数据最好了,直接join过来,但是有时候是需要自己获取的,例如搞个爬虫爬取网页的数据,有时候单台机器搞爬虫可能还爬不完,这个时候可能就开始考虑单机多线程爬取或者分布式多线程爬取数据,中间涉及到一个步骤,就是在线的业务数据,需要每天晚上导入到离线的系统中,之后才可以进行分析。 3、有了数据,咋分析呢 先将数据量小的情况下,可能一个复杂的SQL就可以搞出来,之后搞个web服务器,页面请求的时候,执行这个SQL,然后展示数据,好了,一个最简单的数据分析,严格意义上讲是统计的分析。这种情况下,分析的数据源小,分析的脚本就是在线执行的SQL,分析的结果不用传输,结果的展示就在页面上,整个流程一条龙。 4、数据量大了,无法在线分析了,咋办呢 这个时候,数据量已经大的无法用在线执行SQL的形式进行统计分析了。这个时候顺应时代的东西产生了(当然还有其他的,我就知道这个呵呵),数据离线数据工具hadoop出来了。这个时候,你的数据以文件的形式存在,可能各个属性是逗号分隔的,数据条数有十几个亿。这时候你可能需要构建一个hadoop集群,然后把自己的文件导入到集群上面去,上了集群之后,文件就是HDFS的格式了,然后如果要做统计分析,需要写mapreduce程序,所谓的mapreduce程序,就是实现map和reduce的接口,按照自己的业务逻辑写分析流程,之后把程序打成jar包上传到集群,之后开始执行。分析后的结果还是文件的形式产生。 5、分析个数据还要写java代码是不是效率低了点 这个确实是,mapreduce的程序,本身的可测性没有执行一个简单的单元测试来的爽,所以效率确实不高。这个时候,hive出现了,hive是一个数据仓库分析的语言,语法类似于数据库的SQL,但是有几个地方是不同的。有了hive之后,数据分析就好之前写SQL一样了,按照逻辑编写hive SQL,然后控制台执行。可能最大的感觉是,数据库的sql很快就能有结果,但是hive的,即使很小的一个数据分析,也需要几分钟时间。构建hive,需要在hadoop的集群上,原理很简单,就是把文件构建成表的形式(有一个数据库或者内存数据库维护表的schema信息),之后提交写好的hive sql的时候,hadoop集群里面的程序把hive脚本转换成对应的mapreduce程序执行。这个时候,做离线的数据分析简单写脚本就行了,不用再搞java代码,然后上传执行了。 6、数据产生的结果,怎么搞到线上提供服务的数据库中呢 这个时候分析的结果有了,可能是一个很宽很长的excel表格,需要导入到线上的数据库中,可能你想到了,如果我的数据库是mysql,我直接执行load 命令就搞进去了,哪有那么麻烦。但是数据源可能有多了,mysql/oracle/hbase/hdfs 按照笛卡尔积的形式,这样搞要搞死程序员了。这个时候datax(已经开源)出现了,能够实现异构数据源的导入和导出,采用插件的形式设计,能够支持未来的数据源。如果需要导数据,配置一下datax的xml文件或者在web页面上点击下就可以实现了。 7、离线分析有时间差,实时的话怎么搞呢 要构建实时的分析系统,其实在结果数据出来之前,架构和离线是截然不同的。数据时流动的,如果在大并发海量数据流动过程中,进行自己的业务分析呢?这里其实说简单也简单,说复杂也复杂。目前我接触过的,方案是这样的,业务数据在写入数据库的时候,这里的数据库mysql,在数据库的机器上安装一个程序,类似JMS的系统,用于监听binlog的变更,收到日志信息,将日志信息转换为具体的数据,然后以消息的形式发送出来。这个时候实现了解耦,这样的处理并不影响正常的业务流程。这个时候需要有个Storm集群,storm集群干啥事情呢?就一件事情,分析数据,这个集群来接收刚才提到的JMS系统发送出来的消息,然后按照指定的规则进行逻辑合并等计算,把计算的结果保存在数据库中,这样的话,流动的数据就可以过一遍筛子了。 8、分析的结果数据特别大,在线请求这些结果数据数据扛不住了,咋搞 一般的结果数据,数据量没有那么大,也就几十万的样子,这样的数据级别,对于mysql这样的数据库没有任何压力,但是这个数据量如果增加到千万或者亿级别,同时有复杂的SQL查询,这个时候mysql肯定就扛不住了。这个时候,可能需要构建索引(例如通过lucene来对于要检索的字段添加索引),或者用分布式的内存服务器来完成查询。总之,两套思路,一个是用文件索引的形式,说白来就是空间换时间,另外一种是用内存,就是用更快的存储来抗请求。 9、在线的数据库,除了mysql、oracle之外,还有其他选择不 其实目前大家的思维定势,往往第一个选择就是oracle或者mysql,其实完全可以根据场景来进行选择,mysql和oracle是传统的关系型数据库,目前nosql类的数据库也很多,例如HBase就是其中一个重要的代表。如果数据离散分布比较强,且根据特定的key来查询,这个时候HBase其实是一个不错的选择。 10、空间的数据怎么分析 上面的分析大都是统计维度的,其实最简单的描述就是求和或者平均值等,这个时候问题来了,大数据量的空间数据如何分析呢?对于我们电子商务而言,空间数据可能就是海量的收货地址数据了。需要做分析,第一步就是先要把经纬度添加到数据中(如果添加经纬度,这个可以搞http的请求来通过地图服务提供商来或者,或者是根据测绘公司的基础数据来进行文本切割分析),之后空间数据是二维的,但是我们常见的代数是一维的,这个时候一个重要的算法出现了,geohash算法,一种将经纬度数据转换为一个可比较,可排序的字符串的算法。然后,这样就可以再空间距离方面进行分析了,例如远近,例如方圆周边等数据的分析。 11、上面这些仅仅是统计,如果想搞算法或者挖掘之类的,怎么搞呢 上述的分析,大多数是统计分析,这个时候如果想高一点高级的,例如添加一个算法,咋搞呢?其他复杂的算法我没咋接触过。将拿一个我练过手的算法来讲吧。逻辑回归,如果样本数据量不是很大,可以采用weka来做了个回归,获得一个表达式,然后在线上系统中应用这个表达式,这种类似的表达式获取对于实时性要求不是很高,所以公式每天跑一次就行了。如果数据量比较大,单机的weka无法满足需求了,可以将weka的jar包集成在系统中分析,当然也可以通过hadoop中的mahout来进行离线分析,获取这个表达式。 12、我就是想离线分析数据,但是受不了hive或者hadoop的速度,咋搞 其实搞过一段时间hadoop的人肯定有一点不爽,就是离线分析的速度太慢了,可能需要等很久,这个时候spark出现了,他和hadoop类似,不过由于是内存中计算,所以速度快了很多,底层可以介入HDFS的文件系统,具体我没有使用过,但是公司内部一个团队目前已经用spark来进行分析了。 13、这就是搞大数据了? 有了这些工具就是搞大数据了?答案肯定不是,这个仅仅是工具罢了。真正搞大数据的可能在于思维的变化,用数据来思考,用数据来做决定。目前的无线和大数据啥关系?我觉得无线的终端是数据的来源和消费端,中间需要大数据的分析,两者密不可分啊。 至此,我的疑问OK了,这些问题摸索差不多用了两年左右的时间,最终获取的,可能就是大数据分析的解决方案了。 感谢iamzhongyong的分享。 End.



via WordPress http://blog.newitfarmer.com/big_data/bigdata-common/13348/repost-%e9%98%bf%e9%87%8c%e5%86%85%e9%83%a8%e5%88%86%e4%ba%ab%ef%bc%9a%e5%a4%a7%e6%95%b0%e6%8d%ae%e4%b8%9a%e5%8a%a1%e5%b9%b3%e5%8f%b0%e4%b8%a4%e5%b9%b4%e5%8f%91%e5%b1%95%e5%8e%86%e7%a8%8b#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e9%2598%25bf%25e9%2587%258c%25e5%2586%2585%25e9%2583%25a8%25e5%2588%2586%25e4%25ba%25ab%25ef%25bc%259a%25e5%25a4%25a7%25e6%2595%25b0%25e6%258d%25ae%25e4%25b8%259a%25e5%258a%25a1%25e5%25b9%25b3%25e5%258f%25b0%25e4%25b8%25a4%25e5%25b9%25b4%25e5%258f%2591%25e5%25b1%2595%25e5%258e%2586%25e7%25a8%258b

Labels:

Friday, November 22, 2013

[repost ]我为什么转岗到运维

original:http://bluedavy.me/?p=472 我年初的时候决定从开发转岗到运维,其实当时就有一些朋友问过我为什么,最近呢,微信公众平台上也有些人表示极度的好奇,因此我决定写一篇blog来说说。 之所以有这么多人好奇,我觉得一个比较大的原因可能是很多人认为运维相对开发而言是个很没技术含量的活吧,可能认为运维就是搬搬机器、发布发布系统、传话筒(有问题了找开发处理等)等,但我真心不这么认为。 很多一起干活过的老伙伴们都会知道我是一个比较喜欢”管闲事”的人(其实吧,我认为以前非官方的消防群里的那些人都这性格),我很喜欢排查问题,排查问题给我的感觉就像是打仗,有强烈的紧迫感,而且也可以在短时间学会很多东西。 运维这个岗位,是战场上的第一线岗位,所有的系统问题都会在这里直接暴露出来,因此其实对于爱好排查问题的人,我觉得这是一个很适合的地方,可以让自己得到大量的实战机会,快速的提高技能,并且由于运维碰到的问题会非常的杂,对于扩大知识面有很大的帮助,当然,也有不少人会说只是广了,不会深,这个就看个人了,有兴趣的自然会在解决问题后深入了解背后的原因,因此我一直就觉得运维是个最好的快速提升技术能力的地方。 除了排查问题外,系统的整个运行状况也全在运维的眼下,而从运行状况可以看到很多问题,例如稳定性问题、系统性能问题、运行成本问题,由于运维面对的都是很多应用,会在这三个方面积累很多的经验,因此在这三个方面运维其实能做到比开发更好(例如运维可以知道需要做哪些能够更好的保证系统的稳定性,知道什么样的系统结构更适合提高性能),推进系统结构的改造。 作为运维也是会最早看到系统面临容量瓶颈的现象的一方,这个时候如果出现系统结构做不到水平伸缩的问题,其实第一个发现的也会是运维,另外,对于运维而言,关注的是全局,而不是单单一个系统,所以其实运维这个角色具备了真正的推进整体基础技术架构演变的机会。 当然,运维会有很多杂活要干,也很辛苦,不过这些杂活干的好其实也是会发现很多机会的,就拿扩容来说,如果要做到全自动的扩容,其实必然会要推动系统结构做一些改造,否则其实是很难做到的,再加上如果上面的几点是自己感兴趣的,不是很值得吗? 除了这些外,对于我来说,还有很重要的一点是运维是承接硬件团队和软件团队的中间者,因此其实除了对软件团队的推动外,做的好的情况下还可以对硬件团队推动,而对我而言,可以让我学习到挺多硬件方面的知识,自己挺感兴趣的,所以挺好的。 从这快一年的转岗来看,自己确实有了更多的解决问题的机会,相比以前解决问题的能力和经验明显上涨;在知识的广度上,尤其是OS、机房、网络和硬件层面也学习到了更多;而在全局层面看系统结构的瓶颈上,也比以前有了更多的机会,可以更容易的看到系统发展的瓶颈。 总的来说,我觉得运维其实是一个相对业务开发而言更纯粹的技术角色,需要解决的更多的是比较基础技术方面的问题,涉猎面极广,有很多推动技术发展的机会,同时也自然有了很多可以选择的深入学习的方向的机会,因此最后打个广告,如果你觉得对运维有兴趣,欢迎发邮件给我,哈哈。



via WordPress http://blog.newitfarmer.com/industry/career/13319/repost-%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bd%ac%e5%b2%97%e5%88%b0%e8%bf%90%e7%bb%b4#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e6%2588%2591%25e4%25b8%25ba%25e4%25bb%2580%25e4%25b9%2588%25e8%25bd%25ac%25e5%25b2%2597%25e5%2588%25b0%25e8%25bf%2590%25e7%25bb%25b4

Labels:

Wednesday, November 20, 2013

[repost ]Deep Learning 101

original:http://markus.com/deep-learning-101/ Deep learning has become something of a buzzword in recent years with the explosion of ‘big data’, ‘data science’, and their derivatives mentioned in the media. Justifiably, deep learning approaches have recently blown other state-of-the-art machine learning methods out of the water for standardized problems such as the MNIST handwritten digits dataset. My goal [...]



via WordPress http://blog.newitfarmer.com/ai/deep-learning/13305/repost-deep-learning-101#utm_source=rss&utm_medium=rss&utm_campaign=repost-deep-learning-101

Labels:

[repost ]Test-Driven Web Development with Python

original:http://chimera.labs.oreilly.com/books/1234000000754/index.html Table of Contents Preface Why I wrote a book about Test-Driven Development Aims of this book Outline Some pre-requisites Python 3 & programming How HTML works Required software installations: Required Python modules: Conventions Used in This Book Contacting O’Reilly 1. Getting Django set up using a Functional Test Obey the Testing Goat! Do nothing [...]



via WordPress http://blog.newitfarmer.com/python/advance/13303/repost-test-driven-web-development-with-python#utm_source=rss&utm_medium=rss&utm_campaign=repost-test-driven-web-development-with-python

Labels:

[repost ]INTRODUCTION TO MACHINE LEARNING

original:http://alex.smola.org/drafts/thebook.pdf



via WordPress http://blog.newitfarmer.com/ai/machine-learning/13299/repost-introduction-to-machine-learning#utm_source=rss&utm_medium=rss&utm_campaign=repost-introduction-to-machine-learning

Labels:

Friday, November 15, 2013

[repost ]Have at it, programmers: IBM makes Watson available via API

original:http://gigaom.com/2013/11/14/have-at-it-programmers-ibm-makes-watson-available-via-api/ IBM has upped the ante in the API game by making its Watson question-answering system available as a service. That’s right, Watson could soon power your smartphone app. tweet this IBM didn’t have to flaunt its debatable cloud dominance over Amazon Web Services on the sides of public buses if it wanted to upstage [...]



via WordPress http://blog.newitfarmer.com/others/13293/repost-have-at-it-programmers-ibm-makes-watson-available-via-api#utm_source=rss&utm_medium=rss&utm_campaign=repost-have-at-it-programmers-ibm-makes-watson-available-via-api

Labels:

Tuesday, November 12, 2013

[original ]Cloudera,zookeeper client ,kerberos :WARN zookeeper.ClientCnxn: SASL configuration failed: javax.security.auth.login.LoginException: java.lang.IllegalArgumentException: EncryptionKey: Key bytes cannot be null!





via WordPress http://blog.newitfarmer.com/big_data/big-data-vendor/cloudera-big_data/12367/original-clouderazookeeper-client-kerberos-%ef%bc%9awarn-zookeeper-clientcnxn-sasl-configuration-failed-javax-security-auth-login-loginexception-java-lang-illegalargumentexception-encryptionke#utm_source=rss&utm_medium=rss&utm_campaign=original-clouderazookeeper-client-kerberos-%25ef%25bc%259awarn-zookeeper-clientcnxn-sasl-configuration-failed-javax-security-auth-login-loginexception-java-lang-illegalargumentexception-encryptionke

Labels:

[repost ]Deploying CDH4 on a Cluster > Tips and Guidelines

original:http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.0/CDH4-Installation-Guide/cdh4ig_topic_11_6.html Tips and Guidelines Selecting Appropriate JAR files for your MRv1 and YARN Jobs Each implementation of the CDH4 MapReduce framework (MRv1 and YARN) consists of the artifacts (JAR files) that provide MapReduce functionality as well as auxiliary utility artifacts that are used during the course of the MapReduce job. When you submit a job [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-vendor/cloudera-big_data/13276/repost-deploying-cdh4-on-a-cluster-tips-and-guidelines#utm_source=rss&utm_medium=rss&utm_campaign=repost-deploying-cdh4-on-a-cluster-tips-and-guidelines

Labels:

[repost ]How-to: Include Third-Party Libraries in Your MapReduce Job

original;http://blog.cloudera.com/blog/2011/01/how-to-include-third-party-libraries-in-your-map-reduce-job/ “My library is in the classpath but I still get a Class Not Found exception in a MapReduce job” – If you have this problem this blog is for you. Java requires third-party and user-defined classes to be on the command line’s “-classpath” option when the JVM is launched. The `hadoop` wrapper shell script [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/hadoop/13272/repost-how-to-include-third-party-libraries-in-your-mapreduce-job#utm_source=rss&utm_medium=rss&utm_campaign=repost-how-to-include-third-party-libraries-in-your-mapreduce-job

Labels:

Monday, November 11, 2013

[repost ]SOSP 2013 Analysis

original:http://www.rational.so/blog/2013/11/09/sosp-2013-analysis/ SOSP 2013共计30篇论文, 分成9个session. 其每逢奇数年召开, 今年是第24届, 而OSDI在偶数年召开, 去年是第10届. 作为一个有将近50年历史的老牌会议, SOSP一直严格控制论文的数量. 相比于SIGGRAPH动辄上百篇, KDD同时四个分会场, 系统界还是相对保守的. 从这两年的SOSP/OSDI上看, 论文的标题趋向文艺, 内容也更加丰富有趣. 每年会议设置的session完全根据投稿内容而定, 没有事先指定的topic, 因此很能反映学术界和工业界当前的潮流. 世界范围内, 基本上只有最顶尖的20所大学和机构能够比较稳定的在SOSP/OSDI上灌水, 其他学校可能十几年才冒出来一个天纵奇才的哥们中一篇. 顺带提一句, 欧洲只有三所学校在系统方面能够在最顶级的会议上灌水, 分别是Cambridge, ETH和EPFL, 剩下所有的学校都在美国. 国内完全本土培养起的系统届大牛”陈海波”(复旦本硕博,现为上交的教授), 在2011年的时候给<中国计算机学会通讯>写了一篇论述系统届各大会议及研究方法的文章一名系统研究者的攀登之路. 就是由于他在SOSP11上发表了国内第一篇不与国外的工业界(如MSRA, Google)合作而独立完成的顶级论文(CloudVisor), 讲如何在云上使用虚拟机技术进行安全保护的. 三年前他曾来清华与我们组交流过一次, 介绍了他们组当时的四个工作, 为人非常谦恭有礼. 这篇SOSP11发表后不久, 就被上海交通大学挖了过去, 直接给了正教授. 开始正题, 后面的文章中若碰到我熟悉的学校, 实验室和教授我会一一介绍. Session 1: Juggling Chainsaws, Chair: Rebecca Isaacs 这个session的主席Rebecca Issacs是微软的一名女性研究员, 发表了一堆的顶级论文. 无独有偶, 本session下第二篇文章中的作者Barbara Liskov也是一名女性,可见系统虽然苦, 但并不是纯爷们的领域. [...]



via WordPress http://blog.newitfarmer.com/computer-science/computer-other/13262/repost-sosp-2013-analysis#utm_source=rss&utm_medium=rss&utm_campaign=repost-sosp-2013-analysis

Labels:

Sunday, November 10, 2013

[repost ]Spark Cluster Mode Overview

original:http://spark.incubator.apache.org/docs/latest/cluster-overview.html This document gives a short overview of how Spark runs on clusters, to make it easier to understand the components involved. Components Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called thedriver program). Specifically, to run on a cluster, the SparkContext can [...]



via WordPress http://blog.newitfarmer.com/big_data/big-data-production/spark/13256/repost-spark-cluster-mode-overview#utm_source=rss&utm_medium=rss&utm_campaign=repost-spark-cluster-mode-overview

Labels:

Friday, November 08, 2013

[repost ] HBase and MapReduce

original:http://hbase.apache.org/book/mapreduce.html Table of Contents 7.1. Map-Task Splitting 7.1.1. The Default HBase MapReduce Splitter 7.1.2. Custom Splitters 7.2. HBase MapReduce Examples 7.2.1. HBase MapReduce Read Example 7.2.2. HBase MapReduce Read/Write Example 7.2.3. HBase MapReduce Read/Write Example With Multi-Table Output 7.2.4. HBase MapReduce Summary to HBase Example 7.2.5. HBase MapReduce Summary to File Example 7.2.6. HBase MapReduce [...]



via WordPress http://blog.newitfarmer.com/big_data/hadoop/13231/repost-hbase-and-mapreduce#utm_source=rss&utm_medium=rss&utm_campaign=repost-hbase-and-mapreduce

Labels:

[repost ]Yahoo! Hadoop Tutorial

original:http://developer.yahoo.com/hadoop/tutorial/index.html Table of Contents Welcome to the Yahoo! Hadoop Tutorial. This tutorial includes the following materials designed to teach you how to use the Hadoop distributed data processing environment: Hadoop 0.18.0 distribution (includes full source code) A virtual machine image running Ubuntu Linux and preconfigured with Hadoop VMware Player software to run the virtual machine [...]



via WordPress http://blog.newitfarmer.com/big_data/hadoop/13229/repost-yahoo-hadoop-tutorial#utm_source=rss&utm_medium=rss&utm_campaign=repost-yahoo-hadoop-tutorial

Labels:

Thursday, November 07, 2013

[repost ]hadoop hive安装手记

original:http://www.54chen.com/architecture/hive-hadoop-how-to-install.html hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 [网络环境设置] vim /etc/hosts 192.168.100.52 hadoop1 192.168.99.34 hadoop2 192.168.103.135 hadoop3 分别到对应机器执行: hostname hadoop1 hostname hadoop2 hostname hadoop3 [打通机器] hadoop1# ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa hadoop1# scp ~/.ssh/id_dsa.pub hadoop2:/root/ hadoop1# scp ~/.ssh/id_dsa.pub hadoop3:/root/ hadoop2# cat id_dsa.pub >> ~/.ssh/authorized_keys hadoop3# cat id_dsa.pub >> ~/.ssh/authorized_keys 验证:从hadoop1登录到hadoop2和hadoop3,不再需要密码。 [安装hadoop] 确保所有机器有 ssh rsync jdk 确保设置了: export [...]



via WordPress http://blog.newitfarmer.com/anls/hive-bi/13227/repost-hadoop-hive%e5%ae%89%e8%a3%85%e6%89%8b%e8%ae%b0#utm_source=rss&utm_medium=rss&utm_campaign=repost-hadoop-hive%25e5%25ae%2589%25e8%25a3%2585%25e6%2589%258b%25e8%25ae%25b0

Labels:

Wednesday, November 06, 2013

[repost ]深度社会化网络分析对计算机 系统的挑战

original:http://www.ccf.org.cn/abcdy/cncc/2012/ppt-%E9%99%88%E6%96%87%E5%85%89.pdf 深度社会化网络分析对计算机 系统的挑战 陈文光 清华大学计算机系Google Cloud Infrastructure Scheduler Chubby GFS master Node Node User Node … Application Scheduler slave GFS chunkserver Linux Node MapReduce Job BigTable Server 从Google的系统软件说起 MapReduce: Simplified Data Processing on Large Clusters ,Jeffrey Dean and Sanjay Ghemawat, OSDI 2004 The Google file system, Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung,SOSP 2003系统软件的驱动力 • 体系结构的变化 [...]



via WordPress http://blog.newitfarmer.com/anls/social-analytics-anls/13224/repost-%e6%b7%b1%e5%ba%a6%e7%a4%be%e4%bc%9a%e5%8c%96%e7%bd%91%e7%bb%9c%e5%88%86%e6%9e%90%e5%af%b9%e8%ae%a1%e7%ae%97%e6%9c%ba-%e7%b3%bb%e7%bb%9f%e7%9a%84%e6%8c%91%e6%88%98#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e6%25b7%25b1%25e5%25ba%25a6%25e7%25a4%25be%25e4%25bc%259a%25e5%258c%2596%25e7%25bd%2591%25e7%25bb%259c%25e5%2588%2586%25e6%259e%2590%25e5%25af%25b9%25e8%25ae%25a1%25e7%25ae%2597%25e6%259c%25ba-%25e7%25b3%25bb%25e7%25bb%259f%25e7%259a%2584%25e6%258c%2591%25e6%2588%2598

Labels:

[repost ]选择R语言做统计分析的理由

original:http://www.infoq.com/cn/news/2013/11/r-language R语言是S语言的一种开源实现,一种用于数据分析和图形化的编程环境。资深分析师Catherine最近撰文结合自己的实践经验详细介绍了R语言的优点和缺点。 Catherine指出,R主要用于做统计工作。你可以把它看成是像SAS Analytics分析系统的竞争者之一,R如此强大,诸如StatSoft STATISTICA 或者 Minitab与R相比,就不值一提了。 许多专业的政府部门、商业和制药行业的统计人员和方法论者把他们的事业都倾注在了IBM 的SPSS或者是SAS上,但是他们并不用写一条R代码就能用。所以,从某种程度上来说,决定去学习R是一个事关企业文化和你如何去工作的问题。我在我的统计咨询实践中使用好几种工具,但是我所用的大部分都是R。 关于R语言的优点,Catherine列举了若干条: R是一个强大的脚本语言。我最近被邀请去分析一次概略研究的结果。这些研究者翻阅了1600篇研究论文,并把这些内容用几种标准来编码——事实上是大量的标准,并且这些标准还包括多个选项和分支。他们的数据曾经放到微软的Excel表格中,这表格中居然包括8000列,然后这些列大多是是空的。这些研究者们想要在不同的类别和标题下对总数进行压缩,R是一种强大的脚本语言,它能够像Perl的正则表达式一样来处理文本。凌乱的数据需要编程语言这样的资源,尽管SAS和SPSS有处理那些超越下拉菜单任务的脚本语言,但是R是被用作一门编程语言来写的,因此,对于这一目的,R是一种更好工具。 R领导新的方式。许多新的统计学方面的产品在成为商业平台之前,最初是作为R的包而出现的。我最近得到关于病人回访的医学研究的数据。对于每一个病人,我们有医生曾经建议的治疗条目的数量,同时也有病人实际记住的条目数量。自然模型是β-二项分布。自20世纪50年代以来,这一点已经被广泛熟知,但是把估计程序与感兴趣的协变量关联起来却是最近的事情。通常,像这样的数据都要用一般估计方程来处理,但GEE方法是渐进的,并且假设前提是样本足够大。我曾经希望R能够拥有处理广义线性模型与β-二项式的能力。恰好最近的一个包估计了这个模型: Ben Bolker所写的β-二项式。SPSS都没有完成这个功能。 与文档整合在一起发布。R能够很好的与LaTex文档发布系统整合在一起,这意味着来自于R的统计输出和图形可以嵌入到可出版级的文档中。这并不是适合每一个人,除非你想写一本关于数据分析的书,或者你是不喜欢把你的结果拷贝到一个字符处理文档中,最短和最优雅的途径是通过R和LaTex来实现。 没有花费。作为一个小企业的老板,我很喜欢R是免费的这一特点。甚至对于一个大企业,要知道你可以带一个有临时基础的人来,然后快速的让他们坐到工作站旁来使用领先的分析软件是一件很美妙的事情。没必要担心预算问题。 Catherine进一步指出,R是在S-Plus开发的附加模型的基础上对S的一种实现。有时候,同样的人也参与进对R的开发中。R是在GNU许可证下的一个开源项目,在此基础上,R通过不断的添加大量的包而持续增长。R把那些能被当做同一组安装,并且可以被R在会话期访问的数据集合、R函数、文档和动态加载项用C或者Fortran打包到一起。R的包添加新的功能到R,并通过这些软件包,研究人员可以很容易地分享他们的同龄人之间的计算方法。某些软件包是范围有限的,其他代表统计学的整个领域,含有其他一些包含了前沿的发展。事实上,许多统计学方面的开发包在变成商业软件之前最开始都是以R的包的形式出现的。 对于InfoSphere Streams和R语言的关系,Catherine表示,InfoSphere Streams的是一种先进的计算平台,允许用户开发的应用程序,以快速的采集、分析和关联信息,因为它会接收到数以千计的实时数据源,处理非常高的数据传输率:高达每秒数以百万计的事件或消息。它包括一个R-项目工具包。 InfoSphere Streams是一个计算平台,集成了对数以千计的数据源高流速的数据进行分析的开发环境。这些数据流的内容通常是非结构化或半结构化的。分析的目标是检查对那些基于实时事件的数据和直接决策的模式变化。SPL是InfoSphere Streams的编程语言的简写,它通过一个反映了数据的动态本质和快速分析和响应的必要范式来组织数据。 我们从经典统计分析的电子表格和通常的平面文件还是有很长的路要走的,但R都能适应。至于3.1版,SPL应用程序可以将数据传递到R,从而使用R的丰富的包库。InfoSphere Streams支持通过创建相似的R对象来接收包含着SPL元组(SPL中基本的数据结构)中的信息来支持R分析。InfoSphere Streams的数据可以传递到R作进一步的分析并把结果传回给SPL。 当然,R语言不是完美无缺的,Catherine也列举了R语言的缺点: R不是一个数据仓库。在R输入数据的最简单的方法是输入在别处,然后将其导入到R。R已作出努力来添加电子表格的前端,但还没有做到完美。对电子表格功能的缺乏不仅影响数据输入并且这对在R可视化的查看数据也很难,而这些事情,你在SPSS和Excel中都可以完成。 R使得普通的任务在医疗研究中变得艰难。例如,当列出无应答和丢失的数据的发生的时候,你处理数据的第一步是对所有变量汇总统计。这在SPSS只需要点击几次鼠标,但R有没有内建的函数来计算这个相当明显的信息,并以表格形式显示出来。你可以很轻松地写一些东西出来,但有时你只是想用鼠标操作即可。 R的学习曲线是艰难的。一个新手可以打开一个菜单驱动的统计平台,并在几分钟内得到结果。并不是每个人都想从一个程序员变成一个分析师,当然,也许不是每个人必须这样。 R是开源的。R社区非常大,成熟,并且活跃度也很高,毫无疑问,R是其中较为成功的开源项目。正如我所展示的那样,R的实现花了20年以上的时间,并且S语言比R时间更长。它是一个论证过了的概念和产品。但是,任何开放源码的产品,它的可靠性依赖于透明度。我们相信代码,因为我们可以检查代码,,并且别人也可以检查代码进而报告错误。这与那些采取它在自己的基准,并验证其软件的公司项目是不同的。而对于那些较少被使用的R包,你没有理由相信它们做出了正确的结果。



via WordPress http://blog.newitfarmer.com/programming/r/13222/repost-%e9%80%89%e6%8b%a9r%e8%af%ad%e8%a8%80%e5%81%9a%e7%bb%9f%e8%ae%a1%e5%88%86%e6%9e%90%e7%9a%84%e7%90%86%e7%94%b1#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e9%2580%2589%25e6%258b%25a9r%25e8%25af%25ad%25e8%25a8%2580%25e5%2581%259a%25e7%25bb%259f%25e8%25ae%25a1%25e5%2588%2586%25e6%259e%2590%25e7%259a%2584%25e7%2590%2586%25e7%2594%25b1

Labels:

[repost ]年度巨献】从外行的视角尝试讲解为什么这回丰田栽了【全文完】【v1.01】

original:http://club.tgfcer.com/thread-6817371-1-1.html 【第一部分】背景简介 前几年闹得沸沸扬扬的丰田刹不住事件最近又有新进展。十月底俄克拉荷马的一次庭审,2007年一辆2005年凯美瑞暴冲(Unintended Acceleration,UA)致一死一伤事件中丰田被判有责。引起广泛关注的是庭审中主要证人Michael Barr的证词让陪审团同意丰田的动力系统软件存在巨大漏洞可能导致此类事件。这是丰田在同类事件中第一次被判有责。庭审过后丰田马上同意支付300万美元进入调解程序。 出于好奇,我漫不经心地下载了Barr的286页证词,却一下子被吸引住了。几天内读完,算是对这次事件进行了一次深入了解。下面就从外行角度总结一下这份证词并尝试以更简单的语言解释里面提到的暴冲原因以及丰田犯下的错误。 Barr的证词下载自他的个人博客Barr Code,但现在该文已经被删除。见2楼。 Michael Barr是谁?他是一位拥有20年以上行业经验的嵌入式系统工程师。在十八个月中,有12位嵌入式系统专家,包Barr,受原告诉讼团所托,被关在马里兰州一间高度保安的房间内对丰田动力控制系统软件(主要是2005年的凯美瑞)源代码进行深度审查。这房间没有英特网,没有手机信号,他们进出不能携带任何纸张、记录甚至皮带。最后的调查结果被写入一份800页,13章的详细报告。而鉴于保密协议,调查内容一直没有公布,直至俄克拉荷马这次庭审才首度部分公开(报告本身似乎还没公开)。 回到正题。丰田的软件有没有缺陷?根据Barr的调查,答案是有。这其实是废话,任何软件都会有缺陷,关键在于是什么样的缺陷。丰田的软件缺陷分为三类: 非常业余的结构设计。 软件设计的基本要求是模块尽量简单化,因为这样可以一来更易于阅读二来更易于维护。但丰田的工程师显然没有遵循这原则。Barr使用一种工具自动根据代码的可能分支数量评估函数的复杂度,结果是丰田的软件中至少有67条函数复杂度超过50,意味着运行这个函数可能出现超过50种不同的执行结果,属于“非可测”级别。因为为了测试这50个不同的结果,必须准备至少50条不同的测试用例以及相应的文档,在生产环境中一般是不现实的。作为比较,Barr表示他自己的公司严格执行的其中一条规定就是任何代码复杂度不能超过30,否则不合格。而在这67条函数中还有12条复杂度超过100,达到“非可维护”级别,意味着一旦发现缺陷(Bug)也无法修复,因为实在太复杂,修复缺陷的过程中会产生新的缺陷。其中最复杂的一条函数有超过1300行代码,146个可能执行路径——正好用于根据各传感器数值计算节气门开关角度。 如果你不知道什么是节气门,那么这里我稍微解释一下。为了让内燃机运行,有三大要素:燃油、空气和点火时机。空气和燃油的混合物进入气缸,被火花塞在正确的时间点燃推动活塞并最终推动曲轴和车轮前进。在电喷技术发明以后直到2002年以前,三大要素的燃油和点火时间是由电子设备控制,节气门机械连接加速踏板,由司机直接控制。节气门大致是一个连接加速踏板的“空气龙头”——踩下去越多,“龙头”打开得越大,允许越多的空气进入发动机输出更大的动力。2002年以后,丰田引入的“电子油门”让电子系统掌管了最后一个要素:空气。加速踏板不再机械连接节气门,而是连接一些传感器,由行车电脑将这些传感器数值计算成节气门开启角度再由马达控制节气门。我们稍后会再讨论节气门开合。 极复杂的代码带来的是极复杂的功能。下面说一下被称为“厨房洗涤盆”的Task X。这里先解释一下,丰田的软件系统和很多别的软件系统一样,都是由一个统领程序(称之为“操作系统”)和若干小程序(称之为Task)组成。就好比电脑上跑的Windows是统领全局的操作系统,网络浏览器和记事本是跑在操作系统上的小程序。丰田的系统里每个Task都有自己的名字,但这些名字非常敏感,敏感到每次被提及的时候律师都要求法庭内的没有阅读代码权限的人全部清场。为了减少清场次数,Barr将这个最重要的小程序称为Task X。这个Task X有多重要呢?跟厨房里的洗涤盆一样重要。它负责非常多的事情,包括计算节气门开启角度、速度监测和保持、定速巡航监测等等。Task X的不正常运行被认为是暴冲事件的元凶。稍后会再继续讨论Task X。 还有一些别的匪夷所思的发现。比如丰田的软件包含了超过一万一千个全局变量。如果你不知道什么是全局变量,那么只需要知道软件设计的一般原则是要尽量少使用全局变量,因为有可能带来无法预测的结果。这里的“少”的意思是“尽量接近零”,绝对不会是一万一千个。 不符合软件开发规范。 如同很多行业一样,汽车行业也有自己的规范。更具体一点,由于汽车的危险性质,汽车控制系统被划分为“安全关键性系统(Safety Critical System)”——说白了就是安全性非常重要,弄不好会死人的。为了达到这一特殊要求,汽车相关软件开发人员定期举行会议讨论并发布编程规范,称为MISRA C。该规范的2004年版的感谢列表里还能看到丰田员工的名字,至少让外界认为丰田确实也在遵循这些规范。 真的吗?根据源代码来看,答案是否定的。对此之前的NASA报告也有所提及,丰田辩称他们遵循的不是行业规范,而是丰田内部编程规范。这一规范与行业规范的吻合程度达到50%。但是Barr认为根据他的调查,两个规范之间吻合度小于10%,甚至有若干规范条目相互冲突。后来发现丰田的代码甚至没有遵循丰田内部规范,当然比起别的问题这个已经无关紧要了。 MISRA C拥有超过100条规范,NASA的调查只使用了到其中35条进行校对,发现超过7000处违规代码。Barr使用全部条目,对照结果是丰田的程序拥有超过80000处违规代码。 这些数字说明了什么?根据统计,违规数量可以用于预测代码中暗藏的缺陷(Bug)数量。在之前提到的汽车相关软件开发人员会议中,有人就这一主题发表过专题演讲,提出每30处违规代码可能包含一个重大缺陷和十个轻微缺陷。讽刺的是这人是丰田员工。 特别需要指出MISRA C其中一个规则的内容是不得使用递归。 如果你不知道什么是递归,那么这里我稍微解释一下。递归是一种计算方法。但一般计算方法要么是自己算,要么询问别的计算模块索要结果。而递归则是通过问一层层问自己的方法完成计算。好处是代码简单,坏处是计算层数不固定。可能会2层就出结果了,也可能会是10000层,在设计程序的时候无从得知。 软件计算需要消耗存储器。越繁琐、越长的计算自然需要占用越多的存储器。递归的问题在于其嵌套层数无法预测,从而导致可能消耗的存储器容量无法控制。稍后会再讨论存储器。 对关键变量缺乏保护。 什么是变量?变量就是存在一段存储器的0和1的集合。这些变量既可以是一些函数的处理结果,也可以是另一些函数的处理原材料。比方说前面提到有一条程序专门计算节气门开合角度,比如说是20度,这个20就是一个变量,存在存储器的一个指定位置。另一个程序专门负责开合节气门,它知道去那个指定位置读取这个20,然后把节气门开启20度。 什么是保护?嵌入式系统,或者任何系统,都会在一定条件下发生硬件或者软件错误。客观上这是无法避免的。而且汽车作为一个时常在震动、发热、位移的系统,它的内部环境不能说不恶劣,发生硬件错误的可能性甚至更高。什么样的硬件错误呢?别忘了变量都是0和1的组合,这些0和1由存储器上的高低电平代表。由于某些不可抗原因,一个电平从高变成低,或者反过来,那么这个变量就被更改了。这被称为“位反转(Bit Flip)”。为了对抗这样的事情发生,需要对变量进行保护。保护的方法一般是镜像法。简单来说就是在两个不同的地方写入同一个变量,读取的时候两边都读,比较是不是一致。如果不一致,那么可以得知这个变量已经不可靠,需要进行容错处理。 丰田的程序总体上对其上万个变量进行了有效保护,但问题出在操作系统上。前面提到丰田的软件本质上分为操作系统和Task。Task是由丰田自己开发,但是操作系统则是由芯片供应商提供,固化在芯片里的。丰田在这里的过失是没有对供应商提供的代码进行深度审核,拿到什么用什么。 另一个保护措施是错误校验码(Error Detective and Correction Codes,EDAC)。这是一个硬件层面的数据保护措施。简而言之就是给内存中每一个字节(8比特)后面物理地增加几比特校验码。这样万一变量出错了,可以通过校验码得知,甚至可以通过校验码修复一些轻微错误。这个措施十分简单有效,但是在2005年款凯美瑞的系统中完全没有使用,丰田却告诉NASA他们用了。而在2008年款凯美瑞中使用了3比特长的EDAC。Barr认为是为了节省成本,否则应该使用5比特长。 还有值得一提的是,汽车相关的软件行业有那么几家操作系统供应商,早已形成了一套成熟标准称为OSEK。各供应商开发的符合OSEK认证的操作系统至少都能达到一定的质量。但丰田选用的操作系统却没有通过认证,让人不解。 现在我们知道丰田在编写软件的时候至少有三种缺陷。那么重点问题:丰田的这些软件缺陷是否会导致车辆暴冲?根据Barr的调查,答案是有可能。暴冲的起因需要结合上述三种缺陷来说明。 汽车正常运行需要倚靠若干程序(这里叫Task)的同时运作。Task有很多,CPU只有一块,在任何时刻只能处理一个Task,怎么办呢?这需要操作系统的统筹规划,合理分配CPU的任务,让每个Task都能按时执行。如果出现某种意外,让某个Task突然不执行了,那么就称为这个Task“死亡”。Task死了,自然不能执行它的任务。根据Barr的测试,在某些特定情况下,Task X的死亡可以导致节气门敞开——因为Task X的其中一个任务就是根据司机的操作计算节气门开合角度,它死了也就没法重新计算这个角度,即使司机把脚挪开加速踏板,节气门也无法关闭。此为暴冲的直接原因。更糟糕的是,节气门的开合角度这个数值,被Task X算出来以后保存在一个变量中。这个特定的变量正好没有被保护(缺陷3)。意味着万一Task X死亡并且停止计算,这个数值有可能因为不可抗原因被改变,而程序无从得知。 那么Task X为何会死亡呢?一般是因为内存出错。这个出错可能是一个小小的位反转,也可能是内存里的数值被别的程序错误覆盖。同一系统内同时运行了若干程序,这些程序需要共享一块内存,内存内部必然要被划分成若干块。比如第一块给程序1,第二块给程序2,等等。如果程序1因为某些原因(比如Bug)写到第二块内存上去,就会导致程序2读取了错误的信息。这就是所谓的内存出错。丰田的系统里,正好有这么两块相邻的内存块。第一块被称为“堆栈(Stack)”,这是所有Task存储它们运行状态的地方,大小为4KB。与之相邻的地方储存了操作系统进行任务分配的记录。那么可以想象,如果很多Task给堆栈里写入太多东西,超过4KB,那么就会错误地写入与之相邻的任务分配表。这种错误被称为“堆栈溢出”。操作系统拿到了错误的任务分配表,就会错误地分配任务,造成某些Task多执行几次,某些Task少执行几次,某些Task甚至就再也不执行——死了!必须指出的是,程序死亡并不罕见,甚至可以认为是正常现象。稍后解释处理方法。 那么堆栈为什么会溢出呢?显然是因为要写入的数据超过了堆栈的容量。在设计程序的时候要计算最坏的情况并且允许冗余。即使作出了正确的设计,这种错误也相对常见,所以NASA在他们的调查中重点排查堆栈溢出的可能性。于是NASA问丰田,丰田的回复是最坏的情况下4KB堆栈只写入了41%的数据,换句话说发生溢出的可能性非常低。NASA直接取信了这个数字并没有再深入调查。但Barr他们发现丰田的回答有严重低估,实际上最坏的情况会达到94%,而且还不算递归。丰田在代码中使用了递归(缺陷2)。因而实际数字有可能超过94%而且无法预计上限,因为递归计算的嵌套层数是无法预测的。所以实际情况下堆栈溢出的可能性相当可观。一旦溢出,相邻的任务分配表不可避免就会遭到破坏。此为暴冲的根本原因其中之一。之所以说“其中之一”,是因为堆栈溢出仅仅是损坏任务分配表的其中一个原因,别的还有许多可能性并没有被Barr在法庭上深入解释。而且任务分配表的损坏也仅仅是导致Task死亡的原因之一。 顺便提一句,2005年的凯美瑞的这部分供应商是电装,没有搭载堆栈实时监测功能——溢出了也不知道。同年的卡罗拉却搭载了,因为供应商是通用。 [...]



via WordPress http://blog.newitfarmer.com/security/security-other/13220/repost-%e5%b9%b4%e5%ba%a6%e5%b7%a8%e7%8c%ae%e3%80%91%e4%bb%8e%e5%a4%96%e8%a1%8c%e7%9a%84%e8%a7%86%e8%a7%92%e5%b0%9d%e8%af%95%e8%ae%b2%e8%a7%a3%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%99%e5%9b%9e%e4%b8%b0#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e5%25b9%25b4%25e5%25ba%25a6%25e5%25b7%25a8%25e7%258c%25ae%25e3%2580%2591%25e4%25bb%258e%25e5%25a4%2596%25e8%25a1%258c%25e7%259a%2584%25e8%25a7%2586%25e8%25a7%2592%25e5%25b0%259d%25e8%25af%2595%25e8%25ae%25b2%25e8%25a7%25a3%25e4%25b8%25ba%25e4%25bb%2580%25e4%25b9%2588%25e8%25bf%2599%25e5%259b%259e%25e4%25b8%25b0

Labels:

Tuesday, November 05, 2013

[repost ]大数据工程人员知识图谱

original:http://yanbohappy.sinaapp.com/?p=418 在企业里面从事大数据相关的工作到底需要掌握哪些知识呢?我认为需要从两个角度来看:一个是技术;一个是业务。技术上主要涉及到概率和数理统计,计算机系统、算法和编程等;而业务的角度呢则是因公司业务的不同而异。对于从事大数据的工程人员来说,需要学会使用数据挖掘方法在计算机系统和编程工具的帮助下解决实际的问题,这样才能够在海量数据中挖掘出业务增长的助推剂,才能在激烈的市场竞争中为企业创造更多的价值。 因为业务会因公司的不同而不同,但是技术点是想通的。我在这里简单总结了一下大数据相关工程人员需要掌握的技术相关知识点。主要涉及到数据库、数据仓库、编程、分布式系统、Hadoop生态系统相关、数据挖掘和机器学习相关的基础知识点。当然我这里列出来的应该是一个team的人员汇集在一起所具备的,每个人会因在团队中的角色不同而有所侧重。在此剖砖引玉,欢迎大家发表意见。 Topic Content Key points Reference DB/OLTP & DW/OLAP Database/OLTP basic The relational model, SQL, index/secondary index, inner join/left join/right join/full join, transaction/ACID Ramakrishnan, Raghu, and Johannes Gehrke. Database Management Systems. Database internal & implementation Architecture, memory management, storage/B+ tree, query parse /optimization/execution, hash join/sort-merge join Distributed and parallel database Sharding, database proxy [...]



via WordPress http://blog.newitfarmer.com/big_data/bigdata-common/13217/repost-%e5%a4%a7%e6%95%b0%e6%8d%ae%e5%b7%a5%e7%a8%8b%e4%ba%ba%e5%91%98%e7%9f%a5%e8%af%86%e5%9b%be%e8%b0%b1#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e5%25a4%25a7%25e6%2595%25b0%25e6%258d%25ae%25e5%25b7%25a5%25e7%25a8%258b%25e4%25ba%25ba%25e5%2591%2598%25e7%259f%25a5%25e8%25af%2586%25e5%259b%25be%25e8%25b0%25b1

Labels:

Sunday, November 03, 2013

[repost ]存储引擎数据结构优化(2):io bound

original:http://www.douban.com/note/304349195/ 经常看到些引擎与别的引擎进行性能对比,测试数据只有100万,然后就得出我的引擎比别的引擎性能要高的结论(我也曾经干过)。 其实这个测试结果意义不大,只能说明在100万这个数据规模,你的引擎性能领先。 100万记录,key 16bytes, values 100bytes,共 100,0000 * (116)Bytes ~110MB。 如果用的buffered-io,测试的基本是引擎的cpu-bound,很少或基本没有触及到后端的disk io。 一个合理的测试,应该是把引擎cache开小点,然后持续压几亿甚至几十亿条数据,结合着它的io行为一起看。如果在这样的条件下,性能一直领先,那说明这个引擎确实不错。 如果引擎A干完一个活需要10次io,而引擎B干完同样的活需要250次io,可简单认为引擎A对io是友好的,本文就谈下针对io-bound的优化,如何设计数据结构,干同样的活,花更少的io。 一个“二维”的tree(索引结构)落在磁盘上的时候,就变成了个“一维”文件。 假设经过多次添加删除等操作后,一个索引tree(这里二叉树是个示例,真正的索引不是这样的结构,fanout要大)如下: /* * * (key-6) * / \ * (key-4) (key-8) * / \ / \ * (key-3) (key-5) (key-7) (key-9) * * */ 它在磁盘上的“一维”文件结构是: /* * * | … |(key-6)|(key-3)| … |(key-4)| … |(key-8)|(key-7)| … |(key-5)| * */ [...]



via WordPress http://blog.newitfarmer.com/imd/design-db/13214/repost-%e5%ad%98%e5%82%a8%e5%bc%95%e6%93%8e%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%e4%bc%98%e5%8c%962io-bound#utm_source=rss&utm_medium=rss&utm_campaign=repost-%25e5%25ad%2598%25e5%2582%25a8%25e5%25bc%2595%25e6%2593%258e%25e6%2595%25b0%25e6%258d%25ae%25e7%25bb%2593%25e6%259e%2584%25e4%25bc%2598%25e5%258c%25962io-bound

Labels:

[repost ]node-jvm

original:https://github.com/YaroslavGaponov/node-jvm Overview node-jvm – jvm in pure node.js Example java public class Main { public static long fib(int n) { if (n <= 1) return n; return fib(n-1) + fib(n-2); } public static void main(String[] args) { if (args.length == 0) { System.out.print("help: java Main.class {Number}"); return; } int N = Integer.parseInt(args[0]); long start = [...]



via WordPress http://blog.newitfarmer.com/programming/nodejs/13205/repost-node-jvm#utm_source=rss&utm_medium=rss&utm_campaign=repost-node-jvm

Labels:

Saturday, November 02, 2013

[repost ]Recommendation at Netflix Scale

original:http://www.slideshare.net/justinbasilico/recommendation-at-netflix-scale Recommendation at Netflix Scale from Justin Basilico



via WordPress http://blog.newitfarmer.com/ai/recommendation-ai/13197/repost-recommendation-at-netflix-scale#utm_source=rss&utm_medium=rss&utm_campaign=repost-recommendation-at-netflix-scale

Labels:

Friday, November 01, 2013

[repost ]In-Memory Data Grid – Hazelcast | Documentation

original:http://www.hazelcast.com/docs/3.1/manual/single_html/ version 3.1 Copyright © 2013 Hazelcast, Inc. Permission to use, copy, modify and distribute this document for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. 11 October 2013 Table of Contents 1. Introduction 1.1. What’s new in 3.1? 1.2. [...]



via WordPress http://blog.newitfarmer.com/nosql/in-memory-nosql/hazelcast/13192/repost-in-memory-data-grid-hazelcast-documentation#utm_source=rss&utm_medium=rss&utm_campaign=repost-in-memory-data-grid-hazelcast-documentation

Labels: