我知道什么是数据仓库以及什么是大数据.但我对Data Warehouse Vs Big Data感到困惑.两者都有不同的名称或两者都不同(概念和物理).
我目前正在学习hadoop,但我常常想知道Hadoop是否是支持分布式应用程序的唯一软件框架.我想了解在大数据空间中是否存在除Hadoop之外的任何其他框架.
最新版本的Hadoop提供mapred-site.xml.template
我们是否需要mapred-site.xml使用此文件创建新文件?任何与Hadoop 2.2.0相关的文档或解释的链接都将非常感谢.
因此,想象一下能够获得足够质量的足够数据(数百万个用于训练和测试的数据点).请暂时忽略概念漂移并假设数据是静态的,并且不会随时间变化.在模型质量方面使用所有数据是否有意义?
Brain和Webb(http://www.csse.monash.edu.au/~webb/Files/BrainWebb99.pdf)包含了一些试验不同数据集大小的结果.在经过16,000或32,000个数据点训练后,他们测试的算法会收敛到稳定.但是,由于我们生活在大数据世界,我们可以访问数百万个数据集,所以这篇论文有点相关,但已经过时了.
是否有任何关于数据集大小对学习算法(朴素贝叶斯,决策树,SVM,神经网络等)影响的最新研究.
我为什么这么问?想象一下,存储有限的系统和大量独特的模型(数以千计的模型都有自己独特的数据集),无法增加存储空间.因此,限制数据集的大小非常重要.
对此有何想法或研究?
我有这个火花程序,我会尝试将其限制在相关部分
# Split by delimiter ,
# If the file is in unicode, we need to convert each value to a float in order to be able to
# treat it as a number
points = sc.textFile(filename).map(lambda line: [float(x) for x in line.split(",")]).persist()
# start with K randomly selected points from the dataset
# A centroid cannot be an actual data point or else the distance measure between a point and
# that centroid will be zero. This leads to …Run Code Online (Sandbox Code Playgroud) Microsoft将Azure搜索推广为"云搜索",但并不一定表示它是"数据库"或"数据存储".它没有说它是大数据.
可以/应该使用azure搜索作为某些数据的主数据库吗?或者是否应该总是有一些"主要"数据存储区在天蓝色搜索中被"复制"以用于搜索目的?
如果是这样,在什么情况/什么情况下将Azure Search用作主数据库是有意义的?
我有一个500GB的文本文件,大约有10亿行需要按字母顺序排序.什么是最好的算法?我的实施和设置能否得到改善?
现在,我正在使用coreutils sort命令:
LANG=C
sort -k2,2 --field-separator=',' --buffer-size=(80% RAM) --temporary-directory=/volatile BigFile
Run Code Online (Sandbox Code Playgroud)
我在AWS EC2上运行120GB RAM和16核虚拟机.这需要一天的大部分时间.
/ volatile是10TB RAID0阵列.
'LANG = C'技巧提供x2速度增益(感谢1)
默认情况下,'sort'使用50%的可用RAM.上升到80-90%会有所改善.
我的理解是gnu'sort'是合并排序算法的变体,其中O(n log n)是最快的:见2和3.将转向QuickSort帮助(我对不稳定的排序感到满意)?
我注意到的一件事是只使用了8个核心.这与linux coreutils sort.c中default_max_threads设置为8有关(参见4).用16重新编译sort.c会有帮助吗?
谢谢!
跟进 :
@dariusz
我在下面使用了克里斯和你的建议.
由于数据已经批量生成:我分别对每个桶进行分类(在几台不同的机器上),然后使用'sort --merge'函数.像魅力一样工作得快得多:O(log N/K)vs O(log N).
我还从头开始重新考虑该项目:现在在生成数据时执行一些数据后处理,以便在排序之前可以丢弃一些不需要的数据(噪声).
总之,数据大小减少和排序/合并导致实现我的目标所需的计算资源的大量减少.
感谢您的所有有用的评论.
我最近发现用户拥有的权限集在所有3个配置服务器中都不相同.有些用户甚至不存在于其中一个配置服务器中.创建用户时,他们是否都为3个配置服务器设置了相同的副本集?
我怎样才能解决这个问题?
我需要计算scala中代码的运行时.代码是.
val data = sc.textFile("/home/david/Desktop/Datos Entrada/household/household90Parseado.txt")
val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()
val numClusters = 5
val numIterations = 10
val clusters = KMeans.train(parsedData, numClusters, numIterations)
Run Code Online (Sandbox Code Playgroud)
我需要知道运行时来处理这段代码,时间必须是秒.非常感谢你.
考虑一下我在Spark有一份工作;
CSV文件 ==> 按列过滤 ==> 取样 ==> 另存为JSON
现在我的要求是如何知道作业当前正在以编程方式执行哪个步骤(获取文件或过滤或采样)(最好使用Java API)?这有什么办法吗?
我可以使用SparkListener类跟踪Job,Stage和Task .它可以像跟踪阶段ID一样完成.但是如何知道哪个阶段Id适用于工作链中的哪一步.
考虑按列过滤完成后,我想向用户发送通知.为此,我创建了一个扩展SparkListener类的类.但我无法从中找到当前正在执行的转换名称的名称.有可能跟踪吗?
public class ProgressListener extends SparkListener{
@Override
public void onJobStart(SparkListenerJobStart jobStart)
{
}
@Override
public void onStageSubmitted(SparkListenerStageSubmitted stageSubmitted)
{
//System.out.println("Stage Name : "+stageSubmitted.stageInfo().getStatusString()); giving action name only
}
@Override
public void onTaskStart(SparkListenerTaskStart taskStart)
{
//no such method like taskStart.name()
}
}
Run Code Online (Sandbox Code Playgroud)