我想检查cdh 5.7.0中的spark版本.我在互联网上搜索但无法理解.请帮忙.
谢谢
我一直是R的长期用户,最近开始使用Python.使用传统的RDBMS系统进行数据仓库,使用R/Python进行数字运算,我觉得现在需要掌握大数据分析.
我想知道如何开始大数据处理. - 如何从Map/Reduce和Hadoop的使用开始简单
总而言之,我想知道如何从小规模开始,逐步建立我在大数据分析中的技能和专业知识.
感谢您的建议和意见.我为此查询的通用性质道歉,但我希望获得有关此主题的更多观点.
似乎R真的设计用于处理它可以完全进入内存的数据集.对于无法拉入内存的超大型数据集,建议使用哪些R软件包进行信号处理和机器学习?
如果R只是错误的方法,我会接受其他强大的免费建议(例如scipy,如果有一些很好的方法来处理非常大的数据集)
我想对HDFS中的数据进行一些"近实时"数据分析(类似OLAP).
我的研究表明,与Apache Hive相比,上述三个框架报告了显着的性能提升.有没有人对其中任何一个有一些实际经验?不仅涉及性能,还涉及稳定性?
我正在AWS EMR上运行5节点Spark群集,每个群集大小为m3.xlarge(1个主4个从属).我成功地运行了一个146Mb的bzip2压缩CSV文件,最终获得了完美的聚合结果.
现在我正在尝试在此群集上处理~5GB bzip2 CSV文件但我收到此错误:
16/11/23 17:29:53 WARN TaskSetManager:阶段6.0中丢失的任务49.2(TID xxx,xxx.xxx.xxx.compute.internal):ExecutorLostFailure(执行者16退出由其中一个正在运行的任务引起)原因:容器由于超过内存限制而被YARN杀死.使用10.4 GB的10.4 GB物理内存.考虑提升spark.yarn.executor.memoryOverhead.
我很困惑为什么我在~75GB群集上获得~10.5GB内存限制(每3m.xlarge实例15GB)...
这是我的EMR配置:
[
{
"classification":"spark-env",
"properties":{
},
"configurations":[
{
"classification":"export",
"properties":{
"PYSPARK_PYTHON":"python34"
},
"configurations":[
]
}
]
},
{
"classification":"spark",
"properties":{
"maximizeResourceAllocation":"true"
},
"configurations":[
]
}
]
Run Code Online (Sandbox Code Playgroud)
根据我的阅读,设置maximizeResourceAllocation属性应告诉EMR配置Spark以充分利用群集上的所有可用资源.即,我应该有~75GB的内存......那么为什么我会得到~10.5GB的内存限制错误?这是我正在运行的代码:
def sessionize(raw_data, timeout):
# https://www.dataiku.com/learn/guide/code/reshaping_data/sessionization.html
window = (pyspark.sql.Window.partitionBy("user_id", "site_id")
.orderBy("timestamp"))
diff = (pyspark.sql.functions.lag(raw_data.timestamp, 1)
.over(window))
time_diff = (raw_data.withColumn("time_diff", raw_data.timestamp - diff)
.withColumn("new_session", pyspark.sql.functions.when(pyspark.sql.functions.col("time_diff") >= timeout.seconds, 1).otherwise(0)))
window = (pyspark.sql.Window.partitionBy("user_id", "site_id")
.orderBy("timestamp")
.rowsBetween(-1, 0))
sessions = (time_diff.withColumn("session_id", pyspark.sql.functions.concat_ws("_", "user_id", …Run Code Online (Sandbox Code Playgroud) 我正在寻找符合这些标准的数据库:
以下是我使用此类数据库的过程:我们有一个分析群集,每4-6小时可生成100M记录(50GB)数据.数据是"键 - 数组[20]".这些数据需要通过前端系统分发给用户,每秒的速率为1-10k.平均而言,只有约15%的数据被请求,其余部分将在生成下一个数据集时在4-6小时内重写.
我尝试了什么:
所以问题是:有什么像Redis,但不限于RAM大小?
我将在R中进行一些日志文件分析(除非我不能在R中执行),并且我理解我的数据需要适合RAM(除非我使用某种类型的修复,如关键字存储的接口,也许?).所以我想知道如何提前告诉我的数据将占用多少空间,以及我是否有足够的空间.我知道我有多少RAM(不是很大 - 在XP下3GB),而且我知道我的日志文件最终会有多少行和列,以及col条目应该是什么数据类型(这可能需要检查为它读).
如何将这一点整合到go/nogo决策中以便在R中进行分析?(据推测,R需要能够有一些RAM来进行操作,以及保存数据!)我的即时需求输出是一堆简单的汇总统计数据,频率,意外情况等,所以我可能会写一些解析器/制表器将为我提供短期需要的输出,但我也希望在下一步中使用许多不同的方法来处理这些数据,所以我正在研究使用R的可行性.
我已经在R中看到了很多有关R中大型数据集的有用建议,我已阅读并将重读,但现在我想更好地了解如何确定是否应该(a)去那里,(b)去但是我希望不得不做一些额外的事情让它变得易于管理,或者(c)在为时已晚之前逃跑并在其他语言/环境中做些事情(建议欢迎......!).谢谢!
所有这些时间(特别是在Netflix竞赛中),我总是遇到这个博客(或排行榜论坛),他们提到如何通过对数据应用简单的SVD步骤帮助他们减少数据的稀疏性或者通常提高他们的算法的性能手.我想(很久以来),但我无法猜测为什么会如此.一般来说,我得到的数据非常嘈杂(这也是bigdata的有趣部分),然后我知道一些基本的功能扩展,如日志转换的东西,平均规范化.但是像SVD这样的东西有什么帮助.所以,假设我有一个巨大的用户评级电影矩阵......然后在这个矩阵中,我实现了一些推荐系统版本(比如协同过滤):
1) Without SVD
2) With SVD
Run Code Online (Sandbox Code Playgroud)
它是如何帮助谢谢的
我正在尝试用Elasticsearch替换Solr设置.这是一个新的设置,还没有看到生产,所以我有很多空间摆弄东西,让他们运作良好.
我有非常非常大量的数据.我正在索引一些实时数据并持续7天(通过使用_ttl字段).我不在索引中存储任何数据(并禁用_source字段).我希望我的指数稳定在200亿左右.我将把这些数据放入2-3个命名索引中.到目前为止,搜索性能高达几十亿行是完全可以接受的,但索引性能是一个问题.
我对ES如何在内部使用分片感到有些困惑.我创建了两个ES节点,每个节点都有一个单独的数据目录,每个节点有8个索引和1个副本.当我查看群集状态时,我只看到每个节点有一个分片和一个副本.每个节点是否保持内部运行多个索引?(检查磁盘存储位置显示肯定只有一个Lucene索引存在). - 已解决,因为我的索引设置未从配置中正确选取.使用API创建索引并指定分片和副本的数量现在已经产生了我期望看到的内容.
此外,我尝试运行相同ES节点的多个副本(来自相同的配置),并且它识别出已经存在副本并且创建其自己的工作区域.这些新的节点实例似乎也只有一个索引在磁盘上. - 既然每个节点实际上都在使用多个索引,那么具有多个索引的单个节点就足以限制整个系统,因此这不是问题.
何时启动其他Elasticsearch节点,以获得最大的索引性能?我应该有多个节点,每个节点运行1个索引1副本,或更少的节点有多吨索引?为了让单个节点做更多的工作,我的配置是否缺少一些东西?
另外:是否有任何指标可用于了解何时仅HTTP节点过载?现在我只有一个节点专门用于HTTP,但除了CPU使用情况之外,我无法判断它是否正常.什么时候启动其他HTTP节点并将索引软件拆分为指向各个节点?
引用Spark DataFrames,Datasets和SQL手册:
Spark中还没有包含少数Hive优化.由于Spark SQL的内存计算模型,其中一些(如索引)不太重要.其他版本用于将来的Spark SQL版本.
作为Spark的新手,我有点困惑,原因有两个:
Spark SQL旨在处理大数据,至少在我的用例中,数据大小远远超过可用内存的大小.假设这并不罕见,"Spark SQL的内存计算模型"是什么意思?Spark SQL是否仅适用于数据适合内存的情况?
即使假设数据适合内存,对非常大的数据集进行全扫描也需要很长时间.我在内存数据库中读取了这个反对索引的论点,但我并不相信.那里的例子讨论了一个10,000,000记录表的扫描,但这不是真正的大数据.扫描具有数十亿条记录的表可能导致"SELECT x WHERE y = z"类型的简单查询永远不会立即返回.
我理解索引有诸如较慢的INSERT/UPDATE,空间要求等缺点.但在我的用例中,我首先处理并将大批数据加载到Spark SQL中,然后将这些数据作为一个整体进行探索,而无需进一步修改.Spark SQL对于初始分布式处理和数据加载很有用,但缺乏索引使得交互式探索比我预期的更慢,更麻烦.
我想知道为什么Spark SQL团队认为索引不重要到它的路线图之外的程度.是否有不同的使用模式可以提供索引的好处,而无需独立实现等效的东西?
sql bigdata in-memory-database apache-spark apache-spark-sql
bigdata ×10
apache-spark ×4
r ×3
hadoop ×2
amazon-emr ×1
apache-drill ×1
cloudera ×1
data-mining ×1
database ×1
emr ×1
impala ×1
netflix ×1
nosql ×1
python ×1
redis ×1
sharding ×1
sql ×1
svd ×1