系统属性System.getProperties()和JVM中的环境变量System.getenv()有什么区别?
根据Learning Spark的说法
请记住,重新分区数据是一项相当昂贵的操作.Spark还有一个优化版本的repartition(),称为coalesce(),它允许避免数据移动,但前提是你减少了RDD分区的数量.
我得到的一个区别是,使用repartition()可以增加/减少分区数量,但是使用coalesce()时,只能减少分区数量.
如果分区分布在多台机器上并运行coalesce(),它如何避免数据移动?
根据 Hadoop - The Definitive Guide
FileInputFormats定义的逻辑记录通常不适合HDFS块.例如,TextInputFormat的逻辑记录是行,它们将经常跨越HDFS边界.这与你的程序的功能没有关系 - 例如,线路不会丢失或损坏 - 但值得了解,因为它确实意味着数据本地地图(即,与他们在同一主机上运行的地图)输入数据)将执行一些远程读取.这导致的轻微开销通常不显着.
假设记录行分为两个块(b1和b2).处理第一个块(b1)的映射器将注意到最后一行没有EOL分隔符,并从下一个数据块中取出剩余的行(b2).
映射器如何处理第二个块(b2)如何确定第一个记录是不完整的并且应该从块(b2)中的第二个记录开始处理?
我能够运行在命令提示符下一个样品的Hadoop程序,我试图从Eclipse运行同一程序,这样我就可以对其进行调试,更好地理解它.
对于命令行程序,设置了一些环境变量,.bashrc并且正在读取System.getenv().get("HADOOP_MAPRED_HOME")与hadoop程序中相同的环境变量.但是,当我System.getenv().get("HADOOP_MAPRED_HOME")从Eclipse 运行java程序时,我得到了null.
我尝试-DHADOOP_MAPRED_HOME=test从Eclipse中传递给运行时配置中的VM参数,但在独立程序中仍然为null.如何在Eclipse中显示环境变量?当我遍历System.getenv()在Eclipse中,我看到很多的变量一样DISPLAY,USER,HOME和其他人.他们在哪里设置?我正在使用Ubuntu 11.04.
鉴于Spark应用程序
我们正在使用AWS SES发送邮件.Amazon SES通过电子邮件或AWS SNS发送退回和投诉通知.我们希望自动处理退回和投诉通知(来自电子邮件或AWS SNS)以提取电子邮件ID,以便可以从原始列表中删除这些电子邮件.
自动化的一种方法是将这些通知发送到AWS SNS中的主题,然后使用AWS SQS订阅该主题,最后阅读AWS SQS中的消息.SNS支持通过以下协议进行订阅 - HTTP/HTTPS/EMail/EMail(JSON)/ SMS/SQS.这是可行的,但我发现自动处理跳出和投诉通知的简单任务太麻烦了.
有没有优雅的方法来解决这个问题?
我在亚马逊上找到了一个带有C#代码的博客条目.有更好的解决方案吗?
对于以下格式的学生数据库
Roll Number | School Name | Name | Age | Gender | Class | Subject | Marks
Run Code Online (Sandbox Code Playgroud)
如何找出每个班级最高的人?以下查询返回整个组,但我有兴趣找到组中的第一行.
select school,class,roll,sum(marks) as total from students group by school,class,roll order by school, class, total desc;
Run Code Online (Sandbox Code Playgroud) 我已经为自己设置了Amazon Elastic MapReduce,以便执行各种标准的机器学习任务.我过去曾广泛使用Python进行本地机器学习,而且我不懂Java.
据我所知,没有用于分布式机器学习的完善的Python库.另一方面,Java有Apache Mahout和最近来自Cloudera的Oryx.
基本上我似乎必须在两个选项之间进行选择.通过并行化自己的算法来使用Hadoop流式传输或Hadoop的Python包装器之间的Slog,直到存在体面的库或跳转到Java以便我可以使用Mahout/Oryx.编写自己的MapReduce字数统计代码和编写自己的MapReduce SVM之间存在着天壤之别!即使与像伟大的教程帮助这个.
我不知道哪个是更明智的选择,所以我的问题是:
A)是否有一些我错过的Python库有用?如果没有,你知道在不久的将来是否有任何开发项目有用吗?
B)如果上面的答案是否定的,那么我的时间会更好地花在跳船上去Java吗?
使用-Xmx 设置mapred.job.map.memory.mb和mapred.child.java.opts来控制Mapper和Reduce任务使用的最大内存有什么区别?哪一个优先?