草庐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/

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

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

shell - 在 hadoop 集群中运行 bash 脚本的 Hadoop 命令

我有一个shell脚本(count.sh),它计算文件中的行数。此脚本已复制到hdfs中,目前正在使用Oozie工作流来执行此脚本。不过,我想知道是否有办法从命令行执行此shell脚本。例如:在unix中:[myuser@myserver~]$./count.sh当count.sh位于hadoop集群位置'/user/cloudera/myscripts/count.sh'时等效于此。我读了这个Hadoopcommandtorunbashscriptinhadoopcluster,但还是不清楚。 最佳答案 我知道这是一篇旧帖子,但我

hadoop - 我是否需要在 Hadoop 集群中打开端口以进行内部通信?

我有一个15节点的Hadoop集群(HortonworksAmbari2.7),在安装Ambari时我关闭了防火墙。IT团队想要重新打开防火墙,因为这对他们来说是一个安全漏洞。但是,如果我打开防火墙:我是否需要为所有服务(hive、MR、Ambari、Spark等)启用/打开端口,或者它是否可以工作,因为它们在同一网络下运行?有什么方法可以检查防火墙打开时这些端口是否打开? 最佳答案 Hadoop服务应该能够在子网内相互通信,但是您需要为任何外部HDFS客户端、YARNResourceManagers、Hive服务器、Ambari服

hadoop - Hadoop 可以做流式处理吗?

有人建议Hadoop做流式处理,并引用了Flume和Kafka作为例子。虽然我知道它们可能具有流功能,但我想知道它们是否可以被视为与Storm/Spark/Flink等流处理技术处于同一级别。Kafka是一个“发布-订阅模型消息系统”,而Flume是一个数据摄取工具。即使它们与hadoop交互/集成,它们在技术上是“hadoop”本身的一部分吗?PS:我知道有一个HadoopStreaming这是完全不同的事情。 最佳答案 Hadoop只是YARN、HDFS和MapReduce。作为一个项目,它不适应(近)实时摄取或处理。Hadoo

hadoop - HTTP ://localhost:9870 does not work HADOOP

本人初学hadoop,使用的是最新版ubuntu,浏览localhost:9870时出现错误,浏览器提示页面不存在 最佳答案 首先,您需要通过输入以下命令检查Hadoop守护进程是否正在运行:jps。这里我的namenode也配置为datanode。其次,通过输入命令检查NamenodeJava进程是否在9870端口运行。netstat-an|grep9870第三,查看hdfs-site.xml中的dfs.namenode.http-address属性最后,确保你已经关闭了防火墙 关于h