big data Index

本文详细介绍了Hadoop生态系统中的关键参与者及其各自的特点,包括Cloudera、Hortonworks、MapR和Pivotal等公司的背景、发展历程及产品优势。此外还涵盖了这些公司在不同行业的应用案例。


全景图

https://i-blog.csdnimg.cn/blog_migrate/2bee9f196e30df5555ca354b0e140d75.png


Infrastructure

Hadoop On-Premise (本地部署)

Cloudera

网址:http://cloudera-global.cn/

特点:基于开源,整合方案,给行业客户

2017.04上市

简单介绍:


工业方案Industries:


Hortonworks

网址:https://hortonworks.com/

特点:贡献与开源,对使用开源的公司,提供技术支持

简介:

Hortonworks这个名字源自儿童书中一只叫Horton的大象。众所周知,Hadoop的名字取自一只毛绒玩具象。类似的取名方式说明Hortonworks围绕Hadoop展开业务。
2011年,雅虎剥离Hadoop业务,由Eric Bladeschweiler,雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks。
成立伊始,Hortonworks即获雅虎和Benchmark 2300万美金投资,可谓含着金钥匙出生。此后Hortonworks一直受到资本市场追捧,IPO前一共获得五轮2.48亿美金的融资,并于2014年底登陆纳斯达克。


MAPR

MapR 公司推出了大量的 Hadoop 产品,其产品涉及的领域包括财经服务、医疗保健、媒体、零售、电信以及 Web 2.0。

致力于帮助世界各地的公司部署 Hadoop

MapR提供的聚合数据平台可以将Hadoop和Spark能力与全球规模的事件流、实时数据库,以及企业存储结合在一起,帮助客户从数据中获得更多收益。

www.mapr.com

商业模式 类似于 Cloudera.


Pivotal

https://pivotal.io/

pivotal在成立之初,就获得了EMC,VMware和GE的联合投资,其中EMC占Pivotal股份的百分之八十,通用电气投资1.5亿美元,占股份的百分之十。

2013年由EMC、VMware和GE共同投资成立,再加上后来戴尔收购EMC成为股东,Pivotal可谓是含着金汤匙出生。


举个典型的例子,有没有感觉近几年的12306越来越好用了?买个票也不再成为老大难了? 那就是Pivotal的Gemfire技术来解决尖峰高流量并发问题,才让我们的刷票体验明显提升。

http://www.sohu.com/a/127172641_464027

Pivotal在帮助全知名品牌进行数字化转型,并不是夸海口。现在全球财富500强中,超过三分之二的企业已经是Pivotal的用户,包括花旗银行、汇丰银行、JPMorgan、美国波音、美国西南航空、Verizon、奔驰、宝马、奥迪、博世、飞利浦….

现在Greenplum已经在中国顶尖的一些企业部署,Greenplum在这一领域的占有率是NO.1;同时Cloud Foundry在仅仅两年时间部署的商业客户已超过30家。

在行业覆盖方面,比如在金融行业Pivotal达到了高覆盖率,招商银行、中国银行、中国平安、浦发银行、光大银行、民生银行、交通银行、兴业银行、中信银行、PICC、太平洋保险、中信证券等都选择Pivotal。


IBM InfoSphere


Bluedata


Jethro


Hadoop in the cloud


Streaming/IN-Memory


NOSQL Databases


NEWSQL Databases


Graph DBS


MPP DBS


CLOUD EDW


Data Transformation


Data Integration


Data Governance


MGMT/Monitoring


Storage


Cluster Services


APP Dev


Crowdsourcing


hardware


Analytics

Data Analyst Platforms


Data Science Platforms


BI Platforms


Visualization


Vertical Analytics


Statistical Computing


Data Services


Machine Learing


Horizontal AI


Speech & NLP


Search


Log Analytics


Social Analytics


Web, Mobile, Commerce Analytics


Applications_Enterprise

Sales


Marketing B2B


Marketing B2C


Customer Service


Human Capital


Legal


Finance


Enterprise Productivity


Back Office Automation


Security


Applications_Industry

Advertising


Education


Government


Finance_Lending


Finance_investing


Real estate


Insurance


Healthcare


Life Sciences


Trnasportation


Agriculture


Commerce


OTHER


Open Source

Framework


Query and Data Flow


Data Access


Coordination


Streaming


Stat Tools


AI & Machine Learning & Deep Learning


Search


Log Analytics


Visualization


Collaboration


Security


Data Sources and APIs

Health


IoT


Financial and Economic Data


Air and Space and Sea


People and entities


Location Intelligence


Other



Data resources

Incubators & Schools


Research
















<think>嗯,用户想知道怎么用编程方法检查一个字符串是否包含特定的子串。比如例子里的'AI and big data are very important!'包含'big data'。首先,我得回忆一下不同的编程语言中常用的方法。比如在Python里,可能用in关键字或者find方法。Java的话,可能用contains方法,或者indexOf。JavaScript也有includes或者indexOf之类的。不过用户可能主要关注某一种语言,但问题里没有特别说明,所以可能需要给出几种常见语言的示例。 然后,我需要确保回答的结构清晰,按照用户的要求分步骤解释,比如先讲思路,再给不同语言的实现。还要注意引用站内的资料。比如,引用[1]提到哈希表,可能和某些算法有关联吗?比如KMP算法或者Rabin-Karp算法,这些可能用哈希来加速子串查找。不过用户的问题可能只需要基础的方法,但或许可以提到更高效的算法作为扩展。 另外,用户提供的示例中,引用了关于移动构造函数和线程支持库的内容,但这些可能和当前问题关系不大。不过引用[4]中的模式匹配例子可能相关,比如在流数据中查找特定模式,类似子串匹配的问题。可能可以提到更复杂的算法,比如KMP或者Boyer-Moore,这些适用于大规模文本或流处理的情况。 用户的问题可能还希望了解不同方法的时间复杂度,比如暴力法的时间是O(n*m),而KMP是O(n+m),这样在性能敏感的场景下可以选择更优的方法。不过对于大多数日常应用,内置的字符串方法已经足够,比如Python的in操作符底层可能已经优化过了。 另外,用户提供的示例中提到了哈希表的实现,可能在某些情况下,比如统计字符出现次数,但子串匹配可能需要更复杂的数据结构,比如前缀树或者自动机。不过这可能超出用户当前的需求范围,但可以作为扩展内容提到。 总结下来,回答应该包括以下几点: 1. 不同编程语言的内置方法(Python、Java、JavaScript等) 2. 基础实现示例,比如暴力匹配 3. 高效算法简介,如KMP或Rabin-Karp 4. 时间复杂度的比较 5. 应用场景建议,比如何时用内置方法,何时需要更优算法 同时,要注意引用相关的站内内容,比如引用[1]的哈希表可能和Rabin-Karp算法有关,使用滚动哈希来优化匹配。引用[4]的模式匹配示例可以联系到更复杂的应用场景,比如流式数据中的实时匹配。 在编写代码示例时,要确保语法正确,比如Python中的in用法,Java的contains方法,以及JavaScript的includes。同时,对于暴力匹配,可能需要写出双重循环,比较每个字符是否匹配。 此外,用户可能希望了解如何返回子串的位置,而不仅仅是布尔值,所以可以提到find/indexOf等方法返回索引。 最后,生成的相关问题可能需要包括不同算法的比较、如何实现高效匹配,或者特定语言中的最佳实践等。</think>### 检查字符串是否包含特定子串的方法 #### 一、基本实现思路 通过遍历主字符串,逐字符与子串进行匹配。若找到连续匹配的子序列则返回真,时间复杂度为$O(n \cdot m)$(n为主串长度,m为子串长度)。现代编程语言通常已内置优化方法,如KMP算法或Boyer-Moore算法[^4]。 #### 二、具体编程实现 1. **Python实现** ```python s = 'AI and big data are very important!' sub = 'big data' print(sub in s) # 输出True # 获取位置 print(s.find(sub)) # 输出8 ``` 2. **Java实现** ```java String s = "AI and big data are very important!"; String sub = "big data"; System.out.println(s.contains(sub)); // 输出true // 获取位置 System.out.println(s.indexOf(sub)); // 输出8 ``` 3. **JavaScript实现** ```javascript let s = 'AI and big data are very important!'; let sub = 'big data'; console.log(s.includes(sub)); // 输出true // 获取位置 console.log(s.indexOf(sub)); // 输出8 ``` #### 三、暴力匹配算法示例 ```python def contains_substring(s, sub): n, m = len(s), len(sub) for i in range(n - m + 1): if s[i:i+m] == sub: return True, i return False, -1 ``` #### 四、优化算法对比 | 算法 | 时间复杂度 | 适用场景 | |------|-----------|----------| | 暴力匹配 | $O(n \cdot m)$ | 短文本匹配 | | KMP | $O(n + m)$ | 模式串含重复特征 | | Rabin-Karp | $O(n + m)$ | 多模式匹配[^1] | | Boyer-Moore | $O(n/m)$ | 大规模文本搜索 | #### 五、应用建议 - 日常开发直接使用内置方法(如`in`或`contains`) - 处理GB级文本时建议使用优化算法 - 流式数据匹配可参考滑动窗口机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值