我在GoogleCloud中创建了一个集群并提交了一个Spark作业。然后我按照theseinstructions连接到UI:我创建了一个ssh隧道并用它打开Hadoopweb界面。但工作没有出现。一些额外的信息:如果我通过ssh连接到集群的主节点并运行spark-shell,这个“作业”会显示在hadoop网络界面中。我很确定我以前做过这个并且我可以看到我的作业(包括正在运行的和已经完成的)。我不知道他们之间发生了什么才停止出现。 最佳答案 问题是我在本地模式下运行作业。我的代码有一个.master("local[*]")导致了这
我想知道什么时候可以安全地从集群中的机器上删除节点。我的假设是,如果机器没有任何容器,并且它不存储任何有用的数据,那么移除机器可能是安全的。通过https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html的API,我们可以做到GEThttp:///ws/v1/cluster/nodes获取每个节点的信息如/default-rackRUNNINGhost1.domain.com:54158host1.domain.comhost1.domain.com:804214
我在浏览一些Hadoop指南时找不到问题的答案:我正在通过客户端计算机上的shell脚本一次性提交各种Hadoop作业(最多200个)。每个作业都通过一个JAR(相当大;大约150MB)启动。提交作业后,客户端计算机的CPU负载非常高(每个内核都在100%),并且RAM很快变满。这样,客户端就不再可用了。我认为每个作业的计算完全在Hadoop框架内完成,作业运行时集群和客户端之间只交换一些状态信息。那么,为什么客户端会完全拉伸(stretch)?我是否以错误的方式提交Hadoop作业?每个JAR是否太大?提前致谢。 最佳答案 这与j
在hadoop中,假设节点的数量是固定的(在运行期间没有服务器崩溃),如果我使用相同的分区器(例如,在映射输出的键上进行哈希分区)来分区映射器输出,并且我执行读取同一个数据集两次的作业。确定同一个key的数据会去同一个reducer吗?谢谢例如,我的map输出包含两行:键|值一个|任何东西乙|任何东西假设,我有两个reducer1和2。在第一次运行中,行“A|anything”进入reducer1,“B|anything”进入reducer2。如果我再次运行,是否有可能“A|anything”进入reducer2,而“B|anything”进入reducer1?谢谢!
我有多个Hadoop作业执行不同的处理。当其中一些(自定义业务异常)发生异常时,它会传播到map()方法,作业会立即终止。然而,一些作业在映射器类的setup()方法中抛出异常。当发生这种情况时,作业会挂起40分钟(我的Hadoop计时器必须设置为此),并且根据任务重新运行策略,我必须等待4*40=160分钟。在这种特殊情况下,其中一个业务类抛出IllegalArgumentException。我怎样才能处理这个漫长的“工作卡在云端”的时期,同时保持我的计时器不变? 最佳答案 您可以在命令行上使用hadoopjob-kill终止作业
我正在运行一个hadoop作业并尝试将输出写入Cassandra。我收到以下异常:java.lang.ClassCastException:org.apache.hadoop.io.Textcannotbecasttojava.nio.ByteBufferatorg.apache.cassandra.hadoop.ColumnFamilyRecordWriter.write(ColumnFamilyRecordWriter.java:60)atorg.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.write(Reduce
我使用这段代码来运行字数统计hadoop作业。当我使用hadoopeclipse插件从eclipse内部运行它时,WordCountDriver运行。当我将mapper和reducer类打包为jar并将其放入类路径中时,WordCountDriver也会从命令行运行。但是,如果我尝试从命令行运行它而不将mapper和reducer类作为jar添加到类路径,尽管我将这两个类都添加到了类路径,但它会失败。我想知道hadoop是否有一些限制接受映射器和缩减器类作为普通类文件。创建一个jar总是强制性的吗?publicclassWordCountDriverextendsConfiguredi
我不小心删除了hadoop.tmp.dir,在我的例子中是/tmp/{user.name}/*。现在每次当我从CLI运行配置单元查询时,mapred作业将在任务尝试时失败,如下所示:Errorinitializingattempt_201202231712_1266_m_000009_0:org.apache.hadoop.util.DiskChecker$DiskErrorException:Couldnotfindanyvalidlocaldirectoryforttprivate/taskTracker/hdfs/jobcache/job_201202231712_1266/jo
我已经配置了一个3节点集群来运行wordcountmapreduce程序。我正在使用一本书,其大小为659kb(http://www.gutenberg.org/ebooks/20417)作为测试数据。有趣的是,在该作业的WebUI中,仅涉及1个map、1个reduce和1个节点。我想知道这是否是因为数据量太小。如果是,我可以手动设置将数据拆分到多个节点上的不同map吗?谢谢,艾伦 最佳答案 默认block大小为64MB。所以是的,该框架确实只为每种类型分配一项任务,因为您的输入数据较小。1)您可以提供超过64MB的输入数据,然后看
我是BAM的新手,我的一个配置单元查询已损坏。但是我找不到问题所在,因为它给我的唯一错误是ERROR:ErrorwhileexecutingHivescript.Queryreturnednon-zerocode:9,cause:FAILED:ExecutionError,returncode1fromorg.apache.hadoop.hive.ql.exec.MapRedTask我环顾四周,发现BAM只能显示这么多信息,要了解更多信息,我需要查看hadoop的作业跟踪器。但是我找不到任何关于如何打开它或在BAM服务器中访问它的信息。那么我该如何访问它/打开它呢?