草庐IT

HADOOP_PREFIX

全部标签

java - Hadoop MapReduce 在 reducer 中访问 mapper 输出数

我有一个映射器,它输出句子中的每个字母,这是键,数字1作为它的值。例如,我的映射器将“你好吗”输出为H1o1w1a1r1e1y1o1u1我的reducer接受它并使用1来计算每个字母的出现次数。例如,它会输出字母“o”作为键,输出2作为它的值,因为它出现了两次。我的问题是我想计算每个字母在句子中出现的频率。为此,我需要访问句子中字母的总数(映射器输出的数量)。我是mapreduce的新手,所以我不确定最好的方法。 最佳答案 假设您的映射器正在获取一个完整的句子,您试图在其中找到频率并且您正在使用JavaAPI,您可以通过contex

hadoop - 如何在 impala 或 hive 上读取复杂类型数组 <string>?

我尝试读取hive上的复杂类型dog.owners(array)使用以下查询selectdog_id,concat_ws(',',collect_set(owners))asownersfromdoggroupbydog_id但我收到以下错误Argument2offunctionCONCAT_WSmustbe"stringorarray",but"array>"wasfound.看起来数据类型不匹配。我试图将列所有者创建为array>但我仍然遇到同样的错误。有没有办法阅读关于hive或黑斑羚的专栏? 最佳答案 selectdog_i

hadoop - Docker SSH 连接到运行中的本地主机权限被拒绝(公钥、密码、键盘交互)

我正在为单节点hadoop容器构建一个docker容器,我在为hadoop用户设置无密码ssh登录时遇到问题(我没有使用root来运行hadoop服务)。我一直在互联网上搜索可能的修复方法,authorized_keys、/.ssh等权限看起来都不错。以下是调试日志的相关部分:debug3:authmethod_is_enabledpublickeydebug1:Nextauthenticationmethod:publickeydebug1:OfferingRSApublickey:/home/hdadmin/.ssh/id_rsadebug3:send_pubkey_testdeb

hadoop - 无法有效映射 HIVe 表中的 HBase 行键

我有一个HBase表,其中的行键如下所示。08:516485815:2013106:260070837:2014100:338289200:20141我使用以下查询创建一个Hive链接表。createexternaltablehb(keystring,valuestring)storedby'org.apache.hadoop.hive.hbase.HBaseStorageHandler'withserdeproperties("hbase.columns.mapping"=":key,e:-1")tblproperties("hbase.table.name"="hbaseTable

hadoop - Hive 2.3.2 Local模式找不到Hadoop安装

根据我一直在阅读的内容,您可以在没有Hadoop或HDFS的情况下运行Hive(例如在使用Spark或Tez的情况下),即通过设置fs.default.name在本地模式下和hive.metastore.warehouse.dir到本地路径。但是,当我这样做时,出现错误:StartingHivemetastoreservice.Cannotfindhadoopinstallation:$HADOOP_HOMEor$HADOOP_PREFIXmustbesetorhadoopmustbeinthepath我的hive-site.xml文件:mapred.job.trackerlocalh

java - 如果 hadoop mapreduce 中至少有一个拆分失败,如何停止处理其他拆分或文件本身

我有一个很大的CSV文件,比如2GB(或者说10k行)要使用map-reduce进行处理。知道每个block是128MB,我有16个block,因此有16个拆分。因为它是一个文本文件,所以我可以让多个映射器同时处理文件的不同部分(不同的拆分)。映射器计数默认为4,因此并行处理文件的4个部分要求是,如果至少有一次拆分失败,我不想进一步处理文件,或者不想将文件内容写入输出文件夹。也就是说,如果CSV的至少一行导致错误,我不希望该文件被进一步处理,也不需要它的输出。(这是因为我可以纠正错误并重新运行它)我该怎么做?我扩展了FileInputFormat以覆盖isSplittable方法并返回

azure - 尼菲 java.lang.NoSuchMethodError : org. apache.hadoop.conf.Configuration.reloadExistingConfigurations

我正在点击此链接以设置NifiputHDFS以写入AzureDataLake。ConnectingtoAzureDataLakefromaNiFidataflowNifi在HDF3.1VM中,Nifi版本为1.5。我们从一个HDInsight(v3.6,whichsupportshadoop2.7)headnode得到了上面链接中提到的jar文件,这些jar文件是:adls2-oauth2-token-provider-1.0.jarazure-data-lake-store-sdk-2.1.4.jarhadoop-azure-datalake.jarjackson-core-2.2.

hadoop - 如何使用 ORC 存储 Hive 表以进行复杂查询?

也许这个问题太笼统了,但我认为值得一试。我正在处理一个包含270个字段的表。它按日期分区(如dt=20180101)。然而,当我们用查询访问这个表时,我们实际上是在进行全表扫描,因为我们在where子句中使用了不是dt的字段。我想知道为该表启用分桶的正确方法是什么。我可以选择其中一个where子句字段并为此启用分桶。例如:PARTITIONEDBY(dtINT)CLUSTEREDBY(class)INTO16BUCKETS另一种方法是使用多个字段进行分桶:PARTITIONEDBY(dtINT)CLUSTEREDBY(class,other_field,other_field_2)IN

hadoop - 使用安全策略在 RHEL 机器上设置 Hadoop

我在CentOS上安装Hadoop已经有一段时间了,但今天当我转向RHEL时,我在尝试启动伪分布式集群时收到了讨厌的密码提示。经过几个小时的摸索,我终于设法通过删除我在安装RHEL期间选择的安全策略来摆脱它们。看起来安全策略的某些方面不允许我设置无密码SSH以允许不同的服务器进行通信。展望future,我希望能够在启用了安全策略的机器上运行集群。为了获得正确的网络配置集,我需要进行哪些更改,或者我应该从哪里开始研究? 最佳答案 Igotpeskypasswordpromptswhentryingtostartthepseudo-di

hadoop - 我们可以在查询之前对 Hive 表的列进行排序吗?

我的Hive表是ORC格式,当where子句中的列排序时,其中的查询运行最快。但就我而言,目前没有。在查询之前对列进行排序的语法是什么。 最佳答案 如果我正确理解你的问题,你有一个未排序的ORC表。并且您想查询该表,但想在查询“之前”对数据进行“排序”!这没有任何意义,因为您将触发一些“查询”以对已排序的数据触发另一个查询。排序可能是一项代价高昂的操作,具体取决于您的实现方式。但是,在查询数据时可以使用许多其他选项来加快查询速度。遵循一些细节。使用Tez执行引擎。它比Hive启动的传统MR作业快得多。启用谓词下推(PPD)以在存储层