草庐IT

hadoop - 如何获取 hdfs 文件上最后添加的数据?

我有数据以一定的速度传输到HDFS文件中。我有一个建立在它之上的外部配置单元表。Data有一个timestamp列和一个int列。每5分钟,将添加一行。我有一个JDBC程序,如果int列值是否超过限制,它需要检查最后添加的行。我以为我会为新的时间戳写一个搜索查询,获取行并检查它的int列值。但是,它遍历整个表以搜索最后附加的行。我可以在时间戳列上创建索引。有没有其他方法可以检索最近添加的数据,这样性能就不会下降? 最佳答案 按日期(例如load_date)对表进行分区,您可以使用date()函数从时间戳字段中导出日期。当然,您还需要

java - 执行Map-Reduce程序时出错

我使用hadoop3.1.0在Ubuntu上运行MapreduceWordCount程序,但它总是得到这个信息。我看到有人问这个类似question之前,但这行不通。我想知道我应该修改哪个文件,或者我错过了什么。我的java程序来自here.master@kevin-VirtualBox:~/MapReduceTutorial$$HADOOP_HOME/bin/hadoopjarProductSalePerCountry.jar/inputMapReduce/mapreduce_output_sales$HADOOP_HOME/bin/hadoopjarProductSalePerCo

hadoop - 失败 : Execution Error, 在配置单元中的连接操作期间从 org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask​​ 返回代码 2

我正尝试在配置单元中对以下两个表运行连接查询-selectb.locationfromuser_activity_ruleainnerjoinuser_info_rulebwherea.uid=b.uidanda.cancellation=true;QueryID=username_20180530154141_0a187506-7aca-442a-8310-582d335ad78dTotaljobs=1OpenJDK64-BitServerVMwarning:ignoringoptionMaxPermSize=512M;supportwasremovedin8.0Executionl

hadoop - Hadoop 为什么选择MapReduce 作为计算引擎?

我知道MapReduce(MR)是Hadoop的三大核心框架之一,我熟悉它的mapper-shuffle-reducer进度。我的问题可以分为两部分:1)是什么让MR对Hadoop如此独特?为什么其他计算算法不如此?2)其他语言(例如:shell、python)的计算部分是如何工作的?它们的计算过程是否与MR类似? 最佳答案 “分而治之”是处理数据集的一种非常强大的方法。MapReduce提供了一种读取大量数据的方法,但以可扩展的方式分配工作负载。通常,即使是非结构化数据也有办法从原始文件中分离出单独的“记录”,而Hadoop(或其

apache-spark - 为什么在 hadoop 上使用 H2O 时在 Yarn 中看不到具体的任务执行?

我按照官方要求在yarn上运行了H2O:http://h2o-release.s3.amazonaws.com/h2o/rel-wolpert/11/index.html这是我的命令:cd~/opt/h2o-3.18.0.8-hdp2.6hadoopjarh2odriver.jar-nodes1-mapperXmx6g-output/user/spark/h2o-3_output而且h2o集群运行成功。但是我在h2o-flow中运行exampleflow之后,并没有看到任何与GBM算法相关的计算,只有H2O本身。我想我会看到这样的东西。这是使用RapidMiner的决策树流程图的结果,

Java 序列化 vs Hadoop 序列化 vs Spark 序列化

我研究过Java的Serialization和Deserialization过程,并试图理解Hadoop和Spark还有。谁能告诉我Hadoop、Spark和Java的序列化过程之间的区别。 最佳答案 Hadoop有自己的序列化接口(interface)(Writable),旨在让产生的垃圾尽可能少。当mapper或reducer运行时,实现它的对象是可变的和重用的,从而进一步减少了垃圾量。此外,经过适当设计的Writable可以由不同版本的代码编写,解决了Serializable的固有问题。Spark没有自己的序列化,默认使用原生

java - 使用java代码将数据从postgresql迁移到hdfs

我是Hadoop新手,任务是使用Java代码将结构化数据迁移到HDFS。我知道Sqoop可以完成同样的任务,但这不是我的任务。有人可以解释一下执行此操作的可能方法吗?我确实尝试过这样做。我所做的是使用jdbc驱动程序从psql服务器复制数据,然后将其以csv格式存储在HDFS中。这是解决此问题的正确方法吗?我读到Hadoop有自己的数据类型来存储结构化数据。你能解释一下这是怎么发生的吗?谢谢。 最佳答案 最先进的技术是使用(pullETL)sqoop作为常规批处理从RDBM获取数据。然而,这种方式对RDBMS来说既资源消耗(通常sq

java - Spark Java API,数据集操作?

我是新的sparkJavaAPI。我的数据集包含两列(account,Lib)。我想显示具有不同库的帐户。事实上我的数据集是这样的。ds1+---------+------------+|account|Lib|+---------+------------+|222222|bbbb||222222|bbbb||222222|bbbb|||||333333|aaaa||333333|bbbb||333333|cccc|||||444444|dddd||444444|dddd||444444|dddd|||||555555|vvvv||555555|hhhh||555555|vvvv|我

apache-spark - 使用 Apache Spark 获取大量时间范围的最快方法是什么?

我在Hadoop中有大约100GB的时间序列数据。我想使用Spark从1000个不同的时间范围内抓取所有数据。我已经尝试使用ApacheHive来创建一个非常长的SQL语句,其中包含大约1000个'ORBETWEENXANDYORBETWEENQANDR'语句。我也尝试过使用Spark。在这种技术中,我创建了一个具有相关时间范围的数据框,并将其加载到spark中:spark_session.CreateDataFrame()和df.registerTempTable()有了这个,我正在与新创建的时间戳数据框和更大的时间戳数据集进行连接。此查询需要很长时间,我想知道是否有更有效的方法来执

maven - 为什么在 Hadoop 3.1.0 中删除了 DFSInotifyEventInputStream?

我正在使用DFSInotifyEventInputStream来监视HDFS中的事件。我有一个Maven项目,我在其中导入了hadoop-hdfs和hadoop-common。如果我在两个依赖项上都使用版本2.7.1,则会正确找到DFSInotifyEventInputStream。然而,在最新版本的hadoop(3.1.0)中,这个类是缺失的。为什么会这样? 最佳答案 看着:HDFS-8053-将DFSIn/OutputStream和相关类移动到hadoop-hdfs-client您应该导入hadoop-hdfs-client。J