澳门美高梅手机网站[转]NodeJS无所不能:细数10单叫人惊呆之NodeJS开源路

除外Web应用他,NodeJS也给使用在许多点,本文盘点了NodeJS在旁方面所开发之十万分使得人神奇之类型,这些项目涉嫌到应用程序监控、媒体流、远程控制、桌面以及倒使用等等。

颇数额入门

小结一下近来上的死数量知识,主要是参考了厦门大学林子雨先生的博客

  1.NodeOS

学习之前从没作懂的知

  1. 俗的web应用(LAMP、JavaEE、NODE系等)与甚数额什么关联?

    前一直看生数额的事物就是是来代表传统的Web应用的,其实并无是这么;即使是颇数额的架,应用层依然会是传统的web应用,但是会冲数量特点对数据存储(结构化数据还是会保留在人情的关系项目数据库——如MySql,日志等未组织数据会保存在分布式文件系统——如Hadoop的HDFS)。

    老数额的东西不是替传统的web应用,而是针对web应用之提高。基于分布式存储和分布式计算,以前单机或者略圈圈集群无法缓解之题材,使用了要命数据技术以后就是可以化解了,比如日志等数据当数据量非常特别之时刻(TB甚至PB),对这些数量的解析在传统架构上是无容许还是是不行缓慢的,使用了生数目技术后便可能的了——主要是将数据处理通过MapReduce等拆分到不同的节点(电脑)上推行,然后用节点上的结果合并,最后生成分析结果。

  2. 开口计算和深数量

    是话题于林子雨先生的课程——“第一讲
    大数量概述”里介绍的不得了好,感兴趣的恋人可以团结失去看看,这里连总结也:“云计算呢非常数量提供了技能基础,大数目为云计算提供了用物之地”。

    而今几乎有的营业所还拿温馨之成品吹成“云”…但是真还是“云”么?其实过多还是人情的web应用部署至阿里云这些第三正值提平台吧;还有部分有好服务器(一般安排),然后搞个公网ip,部署上来呢说好是“云”。

  NodeOS是行使NodeJS开发之一模一样慢慢悠悠融洽的操作系统,该操作系统是一心确立以Linux内核之上的,并且用shell和NPM进行管教管理,采用NodeJS不仅可很好地进行担保管理,还可好好的军事管制脚本、接口等。目前,Docker和Vagrant都是行使NodeOS的首独本子进行构建的。

Hadoop结构(更新)

参照厦门大学林子雨-杀数额技术原理及祭-教材配套讲课视频-第2语-大数目处理架构Hadoop

眼看一部分情要看林子雨先生的视频,讲得较透。下面的始末是以看视频前(那会儿就看了林子雨先生的讲义和博客,如林子雨先生以视频中说得,教材及的内容还是依据Hadoop1.0的,在视频被都更新到了2.0)写的,作为片参阅吧。

澳门美高梅手机网站 1

学习过程

  1. 了解Hadoop生态系统,了解一下生态系统中每模块的打算,文章后对各个模块出一些概括的总结

    • HDFS
    • YARN
    • HBase
    • MapReduce
    • Hive
    • Pig
    • Mahout
    • Zookeeper
    • Sqoop
    • Flume
    • Kafka等
  2. 了解Spark,了解Spark比MapReduce的优势,学习RDD编程

    • Spark SQL
    • Spark Streaming
    • Spark Mlib
  3. 觅点儿宝计算机加个Hadoop、Spark集群,配置Spark开发条件(SBT),运行有demo例程,典型如WordCount

  4. 研讨一下MapReduce的WordCount和Spark的WorkCount的代码,通过对照加深理解

  5. 参照如下案例,了解非常数量应用,熟悉HBase,Hive,Sqoop等

    • 网站用户作为分析
    • Spark课程综合试验案例:淘宝双11多少解析及展望
    • Spark课程试行案例:Spark+Kafka构建实时分析Dashboard

  2.Noduino

重整一些文化(来自厦门大学林子雨先生的博客)

  许多硬件黑客想经过Web页面即可控制他们的Arduino,Noduino就是这般的一个列,一个简便利落的JavaScript和NodeJS框架,通过下HTML5、Socket.IO和NodeJS的Web应用来控制Arduino。目前,该种刚刚起步,支持部分常用功能,比如从Arduino中捕获事件(例如点击按钮)等。

HBase

HBase是一个胜似可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来囤积非结构化和一半结构化的麻痹大意数据。HBase的靶子是拍卖非常大的申,可以经过水平扩展的法子,利用廉价计算机集群处理由超过10亿执行数据以及数百万列元素组成的数据表

HBase可以一直行使当地文件系统或者Hadoop作为数据存储方,不过为增强多少可靠性和系的健壮性,发挥HBase处理非常数据量等作用,需要采用Hadoop作为文件系统。与Hadoop一样,HBase目标重点依靠横向扩张,通过不断增多廉价的商用服务器来充实计算和仓储能力。

澳门美高梅手机网站 2

HIVE

Hive是一个构建于Hadoop顶层的数据仓库工具,由Facebook公司开,并于2008年8月开源。Hive在某种程度上得以看做是用户编程接口,其本人并无存储和处理数量,而是依赖HDFS来囤积数据,依赖MapReduce来处理多少。Hive定义了简短的类似SQL的询问语言——HiveQL,它与大部分SQL语法兼容,但是,并无了支持SQL标准,比如,HiveSQL不支持创新操作,也非支持索引和业务,它的子查询和连操作为是很多受制。

HiveQL语句可以长足实现简单的MapReduce任务,这样用户通过编制的HiveQL语句就得运作MapReduce任务,不必编写复杂的MapReduce应用程序。对于Java开发工程师而言,就无需花费大量活力在记忆大的数目运算和底层的MapReduce
Java
API的应和关系达到;对于DBA来说,可以挺易把本构建以关系数据库上之数据仓库应用程序移植到Hadoop平台达成。所以说,Hive是一个方可有效、合理、直观地组织同动用数据的辨析工具。

 3.Node-WebKit

Impala

Hive
作为现有比较盛行的数据仓库分析工具有,得到了广大的运用,但是由Hive采用MapReduce
来形成批量数据处理,因此,实时性不好,查询延迟较高。Impala
作为新一替开源深数量解析引擎,支持实时计算,它提供了与Hive
类似之效用,并以性质达到比Hive高起3~30 倍。Impala
发展势头迅猛,甚至生或会见跨Hive 的使用率而成为Hadoop
上极其流行的实时计算平台。

Hive 及Impala 的不同点总结如下:

  • 首先,Hive 比较符合进行添加时之批处理查询分析,而Impala
    适合进行实时交互式SQL 查询。
  • 其次,Hive 依赖让MapReduce 计算框架,执行计划做成管道型的MapReduce
    任务模式展开实践,而Impala
    则把实施计划表现也平株完整的实施计划树,可以更当地分发执行计划至各个Impalad执行查询。
  • 其三,Hive在实践过程被,如果内存放不生所发多少,则会用外存,以担保查询能挨个执行好,而Impala在碰到内存放不生数据时,不会见动外存,所以,Impala目前拍卖查询时会见受到一定之限定。

Hive与Impala的相同点总结如下:

  • 率先,Hive与Impala使用相同的积存数据池,都支持将多少存储于HDFS和HBase中,其中,HDFS支持存储TEXT、RCFILE、PARQUET、AVRO、ETC等格式的多少,HBase存储表中记录。
  • 老二,Hive与Impala使用相同的正数据。
  • 老三,Hive与Impala中针对SQL的分解处理比较一般,都是由此词法分析变化执行计划。

由此看来,Impala的目的不在于替换现有的MapReduce工具,把Hive与Impala配合以功能最佳,可以先采用Hive进行数据易处理,之后还以Impala在Hive处理后底结果数据集上进行快捷的多寡解析。

  Node-Webkit是一个基于Chromium与NodeJS的应用程序运行器,允许开发者使用Web技术编写桌面应用。它是NodeJS与WebKit技术的同甘共苦,提供一个跨Windows、Linux平台的客户端应用开发之底色框架。

PIG

Pig 是Hadoop 生态系统的一个零部件,提供了接近SQL 的Pig Latin
语言(包含Filter、GroupBy、Join、OrderBy
等操作,同时为支撑用户从定义函数),允许用户通过编制简单的下本来实现复杂的数码解析,而休需要编制复杂的MapReduce
应用程序,Pig 会自动将用户编写的台本转换成为MapReduce 作业在Hadoop
集群达运行,而且富有对转移的MapReduce程序进行自动优化的效益,所以,用户以编写Pig
程序的时候,不欲关爱程序的周转效率,这就大大减少了用户编程时间。因此,通过匹配以Pig
和Hadoop,在处理海量数据经常即便可实现经济的功用,比下Java、C++等语言编写MapReduce
程序的难度要稍微群,并且因此重新少之代码量实现了千篇一律的数目处理分析效益。Pig
可以加载数据、表达转换数据和存储最终结果,因此,在合作社实际运用中,Pig通常用于ETL(Extraction、Transformation、Loading)过程,即来自各个不同数据源的数据给采访过来以后,采用Pig
进行合并加工处理,然后加载到数据仓库Hive 中,由Hive
实现对海量数据的解析。需要特别指出的是,每种数据解析工具还有一定之局限性,Pig
的宏图与MapReduce 一样,都是面向批处理的,因此,Pig
并无称所有的数量处理任务,特别是当用查询好数目汇总之平稍微一些数据时,Pig
仍然要对所有或多方数额集进行围观,因此,实现性能不会见要命好。

  跨平台开发并非易事,其中同样种方法就是运Web技术同Node-Webkit开发桌面应用来顶替那些大且笨重的付出框架。

Tez

Tez 是Apache 开源之支撑DAG 作业的算计框架,通过DAG
作业的法子运行MapReduce
作业,提供了程序运行的完好处理逻辑,就得去除工作流当中多余的Map
阶段,减少非必要的操作,提升数据处理的性。Hortonworks把Tez
应用及数据仓库Hive 的优化中,使得性能提升了大约100 加倍。如图15-13
所著,可以给Tez 框架运行于YARN 框架之上,然后为MapReduce、Pig 和Hive
等计算框架运行在Tez框架之上,从而借助Tez 框架实现对MapReduce、Pig
和Hive 等的性质优化,更好地解决现有MapReduce 框架在迭代算(如PageRank
计算)和交互式计算方面在的题材。

Tez以缓解Hive、Pig延迟大、性能低等问题之思绪,是同那些支持实时交互式查询分析的成品(如Impala、Dremel和Drill等)是见仁见智的。Impala、Dremel和Drill的缓解问题思路是丢MapReduce计算框架,不再以接近SQL语句之HiveQL或者Pig语句翻译成MapReduce程序,而是采用和商用并行关系数据库类似之分布式查询引擎,可以一直由HDFS或者HBase中之所以SQL语句询问数据,而不需拿SQL语句转化成MapReduce任务来推行,从而大大降低了延,很好地满足了实时查询的求。但是,Tez则不同,比如,针对Hive数据仓库进行优化的“Tez+Hive”解决方案,仍使MapReduce计算框架,但是本着DAG的学业靠关系进行了裁剪,并拿大半只稍作业合并成为一个特别作业,这样,不仅计算量减少了,而且写HDFS次数也会见大大减少。

澳门美高梅手机网站 3

Kafka

Kafka是由于LinkedIn公司出之一律种胜似吞吐量的分布式发布订阅消息网,用户通过Kafka系统可宣告大气的信息,同时为会实时订阅消费信息。
于挺数额时代涌现的新的日记收集处理体系(Flume、Scribe等)往往更善于批量离线处理,而休可知于好地支撑实时在线处理。相对而言,Kafka可以又满足在线实时处理和批量离线处理。

Kafka设计之初衷是构建一个得以处理海量日志、用户作为以及网站运营统计等的数额处理框架
最近几年,Kafka在老大数量生态系统中初步扮演越来越重要之来意,在Uber、Twitter、Netflix、LinkedIn、Yahoo、Cisco、Goldman
Sachs等营业所获得了大气之应用。目前,在许多店家的老数量平台受到,Kafka通常扮演数据交换枢纽的角色。

以柜之雅数目生态系统中,可以将Kafka作为数据交换枢纽,不同类别的分布式系统(关系数据库、NoSQL数据库、流处理体系、批处理系统等),可以统一接入抱到Kafka,实现与Hadoop各个零部件之间的差品种数据的实时高效交换,较好地满足各种企业应用需求。

  4.PDFKit

Sqoop

Sqoop是同一缓慢开源之工具,主要用于在Hadoop(Hive)与习俗的数据库(mysql、postgresql…)间开展数据的传递,可以拿一个关乎项目数据库(例如
: MySQL ,Oracle
,Postgres等)中的数量导进到Hadoop的HDFS中,也可用HDFS的数导进到关系项目数据库被。

  PDFKit是下NodeJS开发的相同慢PDF文档生成库,它采取一个“HTML5
canvas-like
API”来创造矢量图形和字体嵌入,并且支持广大规范的PDF功能,如文件的安全性、表的创办、文本换行、项目标志、高亮提示、注释等PDF功能。

  注意,PDFKit是平等悠悠PDF生成工具,而休是一个文档转换系统。如果你想对现有的PDF文档进行操作,你可以下另外一个NodeJS项目—— Scissors。

澳门美高梅手机网站 4

  5.Log.io

  Log.io是一个根据NodeJS开发之实时日志监控类,在浏览器里拜访。需要小心的是,Log.io只监视日志变动并无存储日志,不过是没什么,只要掌握日记存储于哪个机器上。

  Log.io使用 Socket.io库出殡活动报告的,和另的监督工具一样,Log.io也应用服务器-客户端的模式。Log.io由片有的构成:server和harveste,server运行于机器
A(服务器)上监视和记录其他机器发来之日记消息;log harvester 运行在机器
B(客户端)上之所以来监听与收集机 B上的日志改动,并以改变发送给机器
A,每个需要纪录日志的机还需一个harvester。

澳门美高梅手机网站 5

  6.Nodecast或Leapcast

  受谷歌Chromecast技术的启发,开发者使用NodeJS开发出成千上万Chromecast仿真应用。如Nodecast或Leapcast。在PC上运行Nodecast或Leapcast,启动移动装备,选择一个支撑Chromecast的应用程序,然后你尽管可管运动广播及之始末映射到计算机上了,把电脑当成一个流媒体使用。

  于即时点儿个下中,Nodecast比较简单些,但相应的效用为比较少,它只有透过了YouTube和Google
Music的测试( DEMO)。注意,大家不用把Nodecast与 Nodecast库张冠李戴,后者以DIAL发现协议提供链接设备(类似Chromecast)。

澳门美高梅手机网站 6

  7.Nexe

  Nexe是一律款款迷你却大实用的NodeJS工具,它可以啊NodeJS应用创建单一而实施之文本,并且无需安装运行时,这样,一些请勿技术终端的用户就是随便需变更NodeJS应用之有着乘程序。如果您想昭示一个NodeJS应用程序,并且没有GUI,Nexe则是公的特等选项。目前欠应用程序的一个害处是匪能够于Windows平台上工作,只适用于Linux和Mac
OS X平台,并且它们为未支持地方NodeJS模块。

澳门美高梅手机网站 7

 8.Hyro

  Hyro是动NodeJS开发之等同磨蹭实时HTML5编辑器,如下图所显示,左边显示HTML源码,右边显示内容。语法高亮由
CodeMirror提供。Hyro并无打算成为平等慢慢悠悠成熟之Web
IDE,更像是如出一辙暂缓轻量级的HTML或CSS记事本。

 

澳门美高梅手机网站 8

  9.Haroopad

  Haroopad是同样款Linux上的markdown编辑器,使用Chromium作为UI,支持Windows、Mac
OS X和Linux。主题样式丰富,语法标亮支持54栽编程语言。
如下图所展示,一边是代码编辑窗口,一边是预览窗口,可以实时更新。其邮件导出功能可以以文档发送至Tumblr和Evernote。

澳门美高梅手机网站 9

  10.TiddlyWiki5

  TiddlyWiki是同一缓慢交互式的wiki,非常灵活,它吧堪于浏览器里当纯粹的HTML文件或者是一致迟迟功能强大的NodeJS应用程序。

  TiddlyWiki5是新设计之5.0本子,它好直接集成NodeJS解锁一多样之效力,但每当单机模式下是休可用的。目前,TiddlyWiki5仍居于测试阶段。

澳门美高梅手机网站 10

发表评论

电子邮件地址不会被公开。 必填项已用*标注