Hadoop家族学习路线、实践案例

作者:HanHsiao链接:https://www.zhihu.com/question/19795366/answer/24524910来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。推荐一些Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop,Hive,Pig,HBase,Sqoop,Mahout,Zookeeper,Avro,Ambari,Chukwa,新增加的项目包括,YARN,Hcatalog,Oozie,Cassandra,Hama,Whirr,Flume,Bigtop,Crunch,Hue等。一、学习路线图Hadoop家族学习路线图开篇必读Hive学习路线图Mahout学习路线图二、编程实践Hadoop历史版本安装用Maven构建Hadoop项目Hadoop编程调用HDFS用Maven构建Mahout项目Mahout推荐算法API详解用MapReduce实现矩阵乘法从源代码剖析Mahout推荐引擎Mahout分步式程序开发基于物品的协同过滤ItemCFMahout分步式程序开发聚类KmeansPageRank算法...

vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

 vue2中废弃了$dispatch和$broadcast广播和分发事件的方法。父子组件中可以用props和$emit()。如何实现非父子组件间的通信,可以通过实例一个vue实例Bus作为媒介,要相互通信的兄弟组件之中,都引入Bus,之后通过分别调用Bus事件触发和监听来实现组件之间的通信和参数传递。 首先需要在任意地方添加一个bus.js 在bus.js里面写入下面信息1importVuefrom'vue'2exportdefaultnewVue;   在需要通信的组件都引入Bus.js  如果你的bus.js是自定义一个bus的文件那from后面就改成你的所放的位置1importBusfrom'./bus.js'    接下来就是要组件通信了 添加一个触发#emit的事件按钮<template><divid="emit"><button@click="bus">按钮</button></div>...

SQL Server 经典案例

例1WITH[ta]([商品编号],[批次号],[库存数量])AS(SELECT'0001','090801',200UNIONALLSELECT'0001','090501',50UNIONALLSELECT'0002','090101',30UNIONALLSELECT'0002','090701',200),[tb]([商品编号],[订货数量])AS(SELECT'0001',60UNIONALLSELECT'0002',20)SELECTa.*,出货数量=a.库存数量-CASEWHENSUM(c.库存数量)-b.订货数量<0THEN0ELSESUM(c.库存数量)-b.订货数量ENDFROMtaaJOINtbbONa.商品编号=b.商品编号JOINtacONa.商品编号=c.商品编号ANDc.批次号<=a.批次号GROUPBYa.商品编号,a.批次号,a.库存数量,b.订货数量HAVINGa.库存数量>SUM(c.库存数量)-b.订货数量;ViewCode例2CREATETABLE订单表(订单号CHAR(8),下单日期DATE,产品CHAR(15),订单数量I...
代码星球 代码星球·2021-02-16

[转]MySQL 经典案例分析:Specified key was too long索引字段长度过长

原文地址:https://segmentfault.com/p/1210000010686697/readBG内部要进行数据库的容灾演习,需要模拟线上实际的环境进行测试,这就需要copy一份线上的数据库到测试库中,其实也就是重建一个线上数据库。要完成这个任务其实有N种不同的做法,但是我当时一想:“好久没有测试一下数据备份是否正常了。”就决定利用备份数据进行重建测试库,于是乎就导出了一份XXXX.sql文件,直接往测试库里面导入,由于线上库的实际数据量还不小,所以当我按完“Enter”后就决定下班回家,估计等我到家了就差不多完成了。结果竟然出问题了,屏幕上出现:ERROR1071(42000):Specifiedkeywastoolong;maxkeylengthis767bytes对于报错信息“ERROR1071(42000):Specifiedkeywastoolong;maxkeylengthis767bytes”,其实意思就是“索引字段长度太长,超过了767bytes”。mysql的varchar主键只支持不超过767个字节或者768/2=384个双字节或者767/3=255个三...

[转] [Java] 知乎下巴第5集:使用HttpClient工具包和宽度爬虫

原文地址:http://blog.csdn.net/pleasecallmewhy/article/details/18010015下载地址:https://code.csdn.net/wxg694175346/zhihudown 说到爬虫,使用Java本身自带的URLConnection可以实现一些基本的抓取页面的功能,但是对于一些比较高级的功能,比如重定向的处理,HTML标记的去除,仅仅使用URLConnection还是不够的。在这里我们可以使用HttpClient这个第三方jar包,下载地址点击这里。接下来我们使用HttpClient简单的写一个爬去百度的Demo: [cpp]viewplaincopyimport java.io.FileOutputStream;  import java.io.InputStream;  import java.io.OutputStream;  import org.apache.commons.httpclient.Ht...

[转]为什么我要用 Node.js? 案例逐一介绍

原文地址:http://blog.jobbole.com/53736/介绍JavaScript高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了。就如同在浏览器中一样,现在我们也可以在服务器上运行JavaScript,从前端跨越到后端,这样巨大的反差让人难以想象,因为仅仅在几年前Javascript还如同Flash或者Javaapplet那样嵌入网页在沙箱环境中运行。在深入Node.js之前,你可能需要阅读和了解使用跨栈式JavaScript(JavaScriptacrossthestack)带来的好处,它统一了编程语言和数据格式(JSON),让你能最佳地重用开发人员资源。由于这更多的是关于JavaScript的特点,这里就不过多讨论它。但它确实是一个让人在开发环节中使用Node的关键的优点。正如维基百科所说:“Node.js是谷歌V8引擎、libuv平台抽象层以及主体使用Javscript编写的核心库三者集合的一个包装外壳。”除此之外,值得注意的是,Node.js的作者瑞恩·达尔(RyanDahl)的目标是创建具有实时推送能力的网站。在Node.js中,他给...

企业如何利用大数据?八个典型应用案例告诉你

今天,我在“中国服装大会”上代表赛智时代(CIOManage)做了《企业大数据应用:从理念到实践》的演讲,主要讲了三个方面的内容:一是What:什么是大数据?二是Why:大数据有什么用?三是How:大数据怎么用?时间所限,我重点讲的内容是企业大数据的典型应用。我想非常明确地告诉传统行业的企业:我们所处的是一个快速变化的大数据时代,在业务价值链关键环节的科学的数据分析,能够帮助传统企业提升洞察力,建立差异化的竞争优势。大数据应用赛智时代的大数据应用研究表明,72%的企业首选大数据应用需求是基于客户行为分析的大数据营销,其次产品创新、风险预测、供应链管理、客户服务等也是企业优先考虑的大数据应用。我总结了优先度较高的8个企业大数据应用领域。1、基于客户行为分析的产品推荐产品推荐的一个重要方面是基于客户交易行为分析的交叉销售。根据客户信息、客户交易历史、客户购买过程的行为轨迹等客户行为数据,以及同一商品其他访问或成交客户的客户行为数据,进行客户行为的相似性分析,为客户推荐产品,包括浏览这一产品的客户还浏览了哪些产品、购买这一产品的客户还购买了哪些产品、预测客户还喜欢哪些产品等。产品推荐是Ama...

Java多线程产生死锁的一个简单案例

synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:1.修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;2.修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;3.修改一个静态方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;4.修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。首先,我们在java中创建两个字符串,strA、strB。让每个线程都用synchronized锁住字符串(线程A先锁strA ,再去锁strB;线程B先锁strA,再锁strB),如果线程A锁住strA ,线程B锁住strB,线程A就没办法锁住strB,线程B也没办法锁住strA,这个时候就陷入了死锁。 1packagecom.abcd;23publicclassTest{4publicstaticStringobjA="strA";5publicstaticStrin...

利用Thread 和 Runnable实现多线程,案例演示:《卖票》

1.实现一个卖票的功能,大家根据在汽车站或者火车站那个卖票的情况,假设有三个窗口,每个窗口就像一个线程,卖票的这几个窗口同时卖票,就像实现多线程。1publicclassMyRunimplementsRunnable{2//共享资源34privateintcount=6;56@Override7publicvoidrun(){8for(inti=0;i<6;i++){9this.saleTicket();10}1112}13//同步方法默认对this加锁14privatesynchronizedvoidsaleTicket(){15if(count>0){16try{1718Thread.sleep(6000);19count--;20}catch(InterruptedExceptione){21e.printStackTrace();22}2324System.out.println(Thread.currentThread().getName()+"卖出一张票,还剩"25+count+"张票");26}27}2829}运行:1publicclassTest1{2pub...

Python爬虫实现统计博客园博文数量、阅读量、评论数

 如何使用只需要将代码中的headurl替换以下格式,其中你只需要改变以下链接的阴影部分,阴影部分为你的博客园链接。类似:https://www.cnblogs.com/-wenli/default.html?page=  原理使用requests爬取网页,再使用BeautifulSoup解析网页,获取数据、对数据做了预处理,最后使用正则匹配,匹配出需要的数据。最后的数据使用一个大字典存储。爬取网页爬取网页这里做了异常处理。defget_one_page(url,headers):try:response=requests.get(url,headers=headers)ifresponse.status_code==200:returnresponse.textexceptRequestException:returnNone解析网页defparse_one_page(html):globalitem,flagsoup=BeautifulSoup(html,'lxml')divs=soup.find_all('div',class_='day')if(l...

几个学习流媒体的案例代码网址

1. winlin winlinvipsimple-rtmp-server  https://github.com/winlinvip/simple-rtmp-serverBullLiveServer简称BLS,旨在使用C++语言提供强大功能和高性能的流媒体直播服务器。https://github.com/wenjiegit/Bull-Live-Server5.https://github.com/latelee/H264BSAnalyzer 6.https://github.com/avplayer  7.一款家用安全防盗监控软件,无需额外购买昂贵的CCD监控摄像头,只需普通电脑视频聊天用的CMOS摄像头即可。https://github.com/avplayer/AVCamera解决mfc编译的问题了,release版本的ffmpeg不能运行的问题也解决了ffmpeg2.4主要处理视频解码编码的部分OpenCV2.4.9主要处理图像的部分Boost主要用于信号机制等...

p2p视频点播系统开发案例――Myseelite

项目地址:http://sourceforge.net/projects/myseelite/ 1. MySee公司倡导的开源项目,目前国内功能最强大的一个开源系统。2. 一个直播(也支持轮播、点播)系统3. 直播源支持从摄像头直接获取,也可以是mms流。4. 文档齐全5. 《P2P网络技术原理与C++开发案例》等书籍有提到该项目 MySee公司简介:1. MySee依托全国强大的媒体合作伙伴以及自主GDBS的网络传输技术,具备传播影视节目资源的合法资质2. MySee网络电视拥有上海文广,优度宽频,凤凰网,等主流媒体的优秀节目资源3. MySee自主研发的GDBS播放系统,利用先进的P2P技术,完全超越了传统带宽+服务器的传播方式,在视频流播放速度上处于世界领先水平。4. 领导团队全部具有清华大学,北京大学的强大技术背景;  Myseelite子系统定义:1、Capture  其主要功能是获取直播流,在Myseelite中,captur...

字符串中最多的字符案例

varstr='asdkfjkdsfjisdjfsdkajfkasjflasdjf';functionfn(str){varobj={};for(vari=0;i<str.length;i++){if(obj[str.charAt(i)]){obj[str.charAt(i)]++}else{obj[str.charAt(i)]=1;}}letnum=0;letchar="";for(varkeyinobj){if(obj[key]>num){num=obj[key];char=key;}}console.log(`单词是${char}最多的数${num}`);}fn(str);...

Nginx负载均衡案例

nginx负载均衡配置,windows版本和linux版本的nginx除了启动方式其他基本无差异。1.Niginx安装  参考:https://www.cnblogs.com/zwcry/p/9454647.html2.nginx.conf配置 简单配置,满足测试与学习,其他属性详解可以问度娘。 配置了两个上游服务和两个监听服务 访问 www.dingjie.com会分发到上游服务 app1_server 访问 www.dingjie.com会分发到上游服务 app2_server #nginx进程,一般设置为和cpu线程数一样worker_processes1;events{#单个负载应用(tomcat)进程的最大并发链接数worker_connections1024;}http{#连接超时时间,单位是秒keepalive_timeout65;#防止DDOS攻击,每秒限制1个连接访问#limit_req_zone$binary_remote_addrzone=one:10mrate=1r/s;#limit_conn_zone$bina...
代码星球 代码星球·2021-02-12

Python爬虫利器二之Beautiful Soup的用法

上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫BeautifulSoup,有了它我们可以很方便地提取出HTML或XML标签中的内容,实在是方便,这一节就让我们一起来感受一下BeautifulSoup的强大吧。简单来说,BeautifulSoup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:/BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,BeautifulSoup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。BeautifulSoup已成为和lxml、html6lib一样出色的p...
首页上一页12345...下一页尾页