草庐IT

集群NoSQL

全部标签

hadoop - EMR 集群中的 "LOST"节点

如何对长期运行的EMR集群中丢失的节点进行故障排除和恢复?该节点几天前停止报告。主机似乎很好,HDFS也很好。我仅从Hadoop应用程序UI注意到该问题。 最佳答案 EMR节点是短暂的,一旦它们被标记为丢失,您就无法恢复它们。您可以首先通过在集群启动期间启用“终止保护”功能来避免这种情况。关于寻找LOST节点的原因,您可以检查集群的YARNResourceManager日志和/或实例Controller日志,以找到有关根本原因的更多信息。 关于hadoop-EMR集群中的"LOST"节点

hadoop - 在YARN集群模式下让spark使用/etc/hosts文件进行绑定(bind)

在一台有两个inet的机器上设置一个spark集群,一个公用另一个私有(private)。集群中的/etc/hosts文件具有集群中所有其他机器的内部ip,如下所示。internal_ipFQDN但是,当我在YARN客户端模式(pyspark--masteryarn--deploy-modeclient)下通过pyspark请求SparkContext时,akka绑定(bind)到公共(public)ip,因此发生超时。15/11/0723:29:23INFORemoting:Startingremoting15/11/0723:29:23INFORemoting:Remotingst

hardware - Hadoop 集群。 2 台快机器、4 台中机器、8 台慢机器?

我们打算购买一些新硬件以仅用于Hadoop集群,但我们对应该购买的东西犹豫不决。假设我们有5000美元的预算,我们应该以每台2500美元的价格购买两台super漂亮的机器,每台1200美元左右的四台,还是每台600美元左右的八台?hadoop是在速度较慢的机器上工作得更好,还是在速度快得多的机器上工作得更好?或者,像大多数事情一样“视情况而定”?:-) 最佳答案 通常情况下,使用Hadoop获得一些性能较弱的额外机器会更好。你几乎从未见过内存超过16GB和双四核CPU的数据节点,而且它们通常比这更小。你总是必须运行一个作为名称节点(

hadoop - hadoop 集群中的边缘节点

谁能解释一下hadoop中边缘节点的架构。我只能在互联网上找到定义,我有以下疑问-1)边缘节点是否必须是集群的一部分(如果它在集群内部,我们有什么优势?)。它是否将任何数据block存储在hdfs中。2)边缘节点可以在集群外吗? 最佳答案 +1戴尔解释。在我看来,Hadoop集群中的边缘节点通常是负责运行Hadoop集群的客户端操作的节点。通常,边缘节点与包含Hadoop服务(如HDFS、MapReduce等)的节点保持分离,主要是为了保持计算资源分离。对于只有几个节点的较小集群,经常看到节点扮演主服务(JT、NN等)、从服务(TT

amazon-s3 - 使用 Amazon EC2/S3 将本地数据复制到 Hadoop 集群上的 HDFS 时出现问题

我在AmazonEC2上设置了一个包含5个节点的Hadoop集群。现在,当我登录到主节点并提交以下命令时bin/hadoopjar.jar它抛出以下错误(不同时)。第一个错误是在我没有用“%2F”替换斜杠时抛出的,第二个是在我用“%2F”替换斜杠时抛出的:1)Java.lang.IllegalArgumentException:InvalidhostnameinURIS3://:@/2)org.apache.hadoop.fs.S3.S3Exception:org.jets3t.service.S3ServiceException:S3PUTfailedfor'/'XMLErrorMe

java - 如何让 Hadoop 客户端在安全 (Kerberos) 集群中使用正确的凭据

我有一个Hadoop(CDH412)集群设置,它已启用以使用Kerberos进行身份验证和授权。我让一切正常工作(Hdfs、mapred、zookeeper、hbase、hive等)。但是,我在从Java应用程序访问hdfs数据时遇到问题。我的Java应用程序是一项在后台运行的服务。因此,无法输入密码,我必须使用key表文件。应该不是问题。如果我先做一个“kinit”就可以正常工作,唉......kinit-kt/home/fred/kerberostest/krb5.keytabmyprinc/myserver.com@MY.REALM但是,如果我尝试在java代码中执行此操作(我已

java - 无法在集群上使用 java 类调用 spark 应用程序

下面是我的项目结构:spark应用程序:scala1.scala//Iamcallingthejavaclassfromthisclass.java.java//thiswillsubmitanothersparkapplicationtotheyarncluster.由java类触发的spark应用程序:scala2.scala我的引用教程是here当我在localmode中通过spark-submit从scala1.scala运行我的java类时,第二个spark应用程序scala2.scala是被触发并按预期工作。但是,当我在yarncluster中通过spark-submit运

hadoop - 无法初始化集群。请检查你配置的mapreduce.framework.name和对应的服务器地址-提交job2remoteClustr

我最近将我的集群从ApacheHadoop1.0升级到CDH4.4.0。我在另一台机器上有一个weblogic服务器,我从那里通过mapreduce客户端将作业提交到这个远程集群。我仍然想使用MR1而不是Yarn。我已经针对CDH安装中的客户端jar编译了我的客户端代码(/usr/lib/hadoop/client/*)创建JobClient实例时出现以下错误。有很多帖子与同一问题相关,但所有解决方案都涉及将作业提交到本地集群而不是远程的场景,特别是在我的情况下是从wls容器提交。JobClientjc=newJobClient(conf);无法初始化集群。请检查您的配置中的mapre

java - 从集群中获取现有的 mapreduce 作业(作业可能正在运行或已完成)

以前,我使用org.apache.hadoop.mapred.JobClient#getJob(org.apache.hadoop.mapred.JobID)来获取RunningJob。此调用是从作业完成回调方法进行的,但是,在我看来,存在时间问题,如果作业已经完成,则上述getJob()方法找不到它并返回null。我可以从集群UI确认作业已完成。保持RunningJob分开,有没有办法在给定org.apache.hadoop.mapreduce.JobID,无论作业当前是正在运行还是已完成?我试着编写类似这样的代码:集群cluster=jobClient.getClusterHand

hadoop - 如何确定输入数据大小和集群资源所需的分区数?

我的用例如下所述。使用sparkContext.textFile(输入路径)从本地文件系统读取输入数据。在将输入数据(8000万条记录)提交给映射器/缩减器函数之前,使用RDD.coalesce(numberOfPARtitions)将其分成多个分区。如果不对输入数据使用coalesce()或repartition(),spark执行起来非常慢,并且会因内存不足异常而失败。我在这里面临的问题是决定要应用于输入数据的分区数。输入数据大小每次都不同,硬编码特定值不是一种选择。只有当某些最佳分区应用于我必须执行大量迭代(试错)的输入数据时,spark才会表现得非常好。这在生产环境中不是一个选