草庐IT

hadoop - 动态模式的解决方案 - HIVE/AVRO

要求跟上目标ORC表的架构演变。我从源接收JSON事件。我们计划将它们转换为AVRO(因为它支持模式演化)。由于模式可以每天/每周更改,我们需要不断摄取新数据JSON文件,将它们转换为AVRO并将所有数据(旧/新)存储在ORC配置单元表中。我们如何解决这个问题? 最佳答案 您可以采用以下方法,这是解决此问题的众多不同方法之一。1。创建HBASE表首先读取AVRO数据并在HBASE中创建表。(您可以使用spark高效地完成此操作)即使在未来,HBASE表也会负责模式的演变。2。创建Hive包装表创建指向HBASE表的配置单元包装表(存

hadoop - 在 Impala SQL 中编写一个 While 循环?

在Impala中编写while循环的语法是什么?甚至可以写一个循环吗?我似乎无法声明变量,而且它无法将“while”识别为关键字。 最佳答案 Impala在其语法中不支持WHILE循环。引用资料:ImpalaReservedWords 关于hadoop-在ImpalaSQL中编写一个While循环?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/49523380/

amazon-web-services - PIG 中的 DUMP 命令不起作用

我编写了一个简单的PIG程序,如下所示,用于分析AWS上的googlen-grams数据集的小型修改版本。数据看起来像这样:Iam193694290Iam19458115Iam19514712verycool192311810verycool1980320100verycool2012994302verycool20171820612并具有以下形式:n-gramTAByearTABoccurrencesTABbooksNEWLINE我编写了以下程序来计算每本书中ngram的出现次数:inp=LOADAS(ngram:chararray,year:int,occurences:int,b

hadoop - 我可以将备用名称节点添加到现有的 Hadoop 集群中吗(带有名称节点和辅助名称节点)

我有Hadoop2.7.2设置,其中Namenode和辅助Namenode节点与几个数据节点一起运行。namenode失败后(只是重新启动),我意识到Secondarynamenode并不像我想的那样是冗余的namenode。所以问题是,我可以使我的集群高可用并添加备用名称节点而不从名称节点中删除现有元数据吗? 最佳答案 您需要一个Zookeeper集群,但是可以,您可以将名称节点添加到enableHighAvailability 关于hadoop-我可以将备用名称节点添加到现有的Had

java - HDFS 授予对文件及其所有目录的权限

我在HDFS中有以下数据(2个文件):/a/b/c/f1.txt/f2.txt我想将f1.txt和f2.txt的权限更改为644:例如hadoopfs-chmod644/a/b/c/*.txt但是,为了真正授予对这些文件的访问权限,我需要将/b和/c的权限更改为755:+x到包含文件的目录。注意:我不拥有/a并且它已经是世界可读的。是否有hadoopfs命令让我这样做?Java/Scala代码怎么样? 最佳答案 您可以使用acls为此:授予用户读写和执行权限hdfsdfs-setfacl-m-Ruser:UserName:rwx/a

apache-spark - Spark 2.0 : spark-infotheoretic-feature-selection java. lang.NoSuchMethodError : breeze. linalg.DenseMatrix

我正在尝试使用Spark的InfoGain第三方(https://github.com/sramirez/spark-infotheoretic-feature-selection)包的MRMR功能。但是我的集群是2.0,我得到了这个异常。即使我将所有必需的Jar文件添加到spark类路径。但它仍然不起作用。虽然它在本地机器上正常工作,但在集群上却不行。异常(exception):18/03/2901:16:43WARNTaskSetManager:Losttask3.0instage14.0(TID47,EUREDWORKER3):java.lang.NoSuchMethodErro

apache-spark - Spark 独立设置中的内存使用情况

我有一个spark设置,其中有一个worker有6个核心。现在我向工作人员广播一个对象x。我有三个问题-对于mapreduce作业,将生成我的objx的6个副本还是x的单个副本将由所有核心共享?x的生命周期是什么,即;它什么时候会被摧毁。我问是因为这个对象x占用了大量内存。如果我从文件中读取对象,是否有其他方法可以在所有6个内核之间共享该对象。 最佳答案 广播数据在每个执行器(java进程)中传输和存储一次,而不是每个内核一次。换句话说,如果您只有一个节点,并且将spark.executor.instances设置为2,并将spar

java - java中mapreduce编程没有输出值

importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.util.Date;importjava.util.HashMap;importjava.text.ParseException;importjava.text.SimpleDateFormat;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Te

hadoop - 为什么 Hive 返回 FAILED : SemanticException. ..Unable To Instantiate

我已经安装了Hive,将它添加到PATH,并且能够在终端中使用hive命令打开它。但是,当我尝试运行诸如之类的基本命令时显示表格;我遇到了错误:失败:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient我遵循的说明并未建议必须实例化任何内容。作为引用,我正在使用Hadoop:权威指南(第4版)一书并在我的机器上本地运行它。运

java - 没有集群的 Hadoop MapReduce - 这可能吗?

是否可以在没有集群的情况下运行HadoopMapReduce程序?我的意思是,出于教育目的,我只是想稍微摆弄一下map/reduce,所以我只想在我的计算机上运行几个MapReduce程序,我不需要将任何工作拆分到多个节点等...不需要任何性能提升或任何东西,正如我所说,仅用于教育目的。我是否仍需要运行VM来实现此目的?我正在使用IntelliJUltimate,我正在尝试运行简单的WordCount。我相信我已经设置了所有必要的库和整个项目,并且在运行时我得到了这个异常:Exceptioninthread"main"java.io.IOException:Cannotinitiali