标签: hadoop2

非hdfs文件系统上的hadoop/yarn和任务并行化

我已经实例化了一个Hadoop 2.4.1集群,并且我发现运行MapReduce应用程序将根据输入数据所处的文件系统类型进行不同的并行化.

使用HDFS,MapReduce作业将生成足够的容器,以最大限度地利用所有可用内存.例如,一个具有172GB内存的3节点集群,每个映射任务分配2GB,将创建大约86个应用程序容器.

在不是HDFS的文件系统上(如NFS或我的用例,并行文件系统),MapReduce作业将只分配可用任务的子集(例如,使用相同的3节点集群,大约25-40个容器是创建).由于我使用的是并行文件系统,所以我并不关心如果使用NFS会遇到的瓶颈问题.

是否有YARN(yarn-site.xml)或MapReduce(mapred-site.xml)配置,这将使我能够有效地最大限度地利用资源?

hadoop hpc hdfs hadoop2

7
推荐指数
1
解决办法
387
查看次数

找到杀死Hadoop作业的用户名

有没有办法找到杀死这份Hadoop工作的用户的名字?
我在群集Hadoop 2.6.0节点上没有root访问权限,因此我只能使用Hadoop命令行工具并仔细检查日志.
我检查了日志并尝试使用mapred job -history [jhist file]但找不到用户名.

hadoop hadoop-yarn hadoop2

7
推荐指数
1
解决办法
1550
查看次数

Oozie和Job History Server配置问题

问题

我正在尝试在不使用CDM的情况下安装psuedo-distributed CDH.一切都通过控制台"工作".但是,第二个我开始使用Hue,我在尝试使用Pig时收到错误.

Hue中显示的错误是:

JA017:无法查找与动作[0000000-160112011607704-oozie-oozi-W @ pig]相关的已启动的hadoop作业ID [job_local2125047777_0001].失败了这个动作!

我认为这是由于Oozie工作流问题将Pig连接到作业历史记录服务器而导致的错误传达而产生的错误.

在此之前,我无法使用Hue的Hive,因为Oozie难以在HDFS上为Oozie安装sharelib.我通过在/etc/hadoop/conf/core-site.xml和之间创建一个符号链接来解决这个问题/etc/oozie/conf/hadoop-conf/core-site.xml.正如此处所示:Apache Oozie无法加载ShareLib

脚本信息

我编写的将CDH安装到Scientific Linux 7上的配置脚本可以在这里找到:https://github.com/coatless/stat490uiuc/blob/master/install_scripts/cdh_build.sh

具体来说,我试图从猪脚本中获得结果:

data = LOAD '/user/hue/pig/examples/data/midsummer.txt' as (text:CHARARRAY);

upper_case = FOREACH data GENERATE org.apache.pig.piggybank.evaluation.string.UPPER(text);

STORE upper_case INTO '$output' ;
Run Code Online (Sandbox Code Playgroud)

试图解决方案

从谷歌搜索,我遇到了以下解决方案,一旦实施,还没有解决.

建议运行以下命令:

sudo -u hdfs hadoop fs -mkdir -p /user/history
sudo -u hdfs hadoop fs -chmod -R 1777 /user/history
sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history
Run Code Online (Sandbox Code Playgroud)

重新启动资源和节点管理器,HDFS和历史记录服务器无济于事.

在线程中,有另一个用户建议在job.properties指定的属性中设置属性user.name=mapred.但是,我找不到对Hue作业的job.properties的任何引用.

这篇文章建议在mapred-site.xml …

hadoop hue hadoop-yarn hadoop2 cloudera-cdh

7
推荐指数
1
解决办法
2053
查看次数

Namenode高可用性客户端请求

任何人都可以告诉我,如果我使用Java应用程序请求使用Namenode HA设置对HDFS进行一些文件上传/下载操作,请求首先在哪里?我的意思是客户端如何知道哪个namenode是活动的?

如果您提供一些工作流程类型图或详细解释请求步骤(从头到尾),那将会很棒.

hadoop hdfs webhdfs hadoop2

7
推荐指数
2
解决办法
4276
查看次数

HIVE中的DISTRIBUTE BY条款

我无法理解这个DISTRIBUTE BY子句在HIVE中的作用.我知道这个定义,如果我们有DISTRIBUTE BY(城市),这将使每个城市以不同的REDUCER发送,但我没有得到相同的结果.让我们考虑如下数据:

表数据:

+----------+--------+
| username | amount |
+----------+--------+
| user_1   | 25     |
+----------+--------+
| user_1   | 53     |
+----------+--------+
| user_1   | 28     |
+----------+--------+
| user_1   | 50     |
+----------+--------+
| user_2   | 20     |
+----------+--------+
| user_2   | 50     |
+----------+--------+
| user_2   | 10     |
+----------+--------+
| user_2   | 5      |
+----------+--------+
Run Code Online (Sandbox Code Playgroud)

假设我们有一个包含用户名数量列的TABLE数据.

现在,如果我说 -

select username,sum(amount) from data DISTRIBUTE by (name)
Run Code Online (Sandbox Code Playgroud)

这不应该运行2个单独的减速器吗?它还在运行一个减速机,我不知道为什么?我认为这可能与CLUSTERING INTO BUCKETS或PARTITIONING有关但我尝试了一切,仍然运行一个减速器可以解释为什么?

hive hiveql hadoop2

7
推荐指数
2
解决办法
2万
查看次数

Apache YARN可以在没有HDFS的情况下使用吗?

我想使用Apache YARN作为集群和资源管理器来运行一个框架,在该框架中,资源将在同一框架的不同任务之间共享.我想使用自己的分布式堆外文件系统.

  1. 是否可以使用除HDFS以外的YARN的任何其他分布式文件系统?

  2. 如果是,需要实施哪些HDFS API?

  3. 运行YARN需要哪些Hadoop组件?

apache hadoop hadoop-yarn hadoop2

7
推荐指数
1
解决办法
2853
查看次数

YARN vcore 中的虚拟核心是什么意思?

Yarn 使用虚拟核心的概念来管理 CPU 资源。我会问使用虚拟核心有什么好处,YARN 使用 vcore 有什么原因吗?

hadoop hadoop-yarn hadoop2

7
推荐指数
2
解决办法
9286
查看次数

Spark/Yarn:HDFS上不存在文件

我在AWS上有一个Hadoop/Yarn集群设置,我有一个主服务器和3个从服务器.我已经验证我在端口50070和8088上运行了3个活动节点.我在客户端部署模式下测试了一个spark作业,一切正常.

当我尝试用火花提交工作时./spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master yarn --deploy-mode cluster ip.py.我收到以下错误.

诊断:文件不存在:hdfs://ec2-54-153-50-11.us-west-1.compute.amazonaws.com:9000/user/ubuntu/.sparkStaging/application_1495996836198_0003/__ spark_libs__1200479165381142167.zip

java.io.FileNotFoundException:文件不存在:
hdfs://ec2-54-153-50-11.us-west 1.compute.amazonaws.com:9000/user/ubuntu/.sparkStaging/application_1495996836198_0003/__spark_libs__1200479165381142167.zip

17/05/28 18:58:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/05/28 18:58:33 INFO client.RMProxy: Connecting to ResourceManager at ec2-54-153-50-11.us-west-1.compute.amazonaws.com/172.31.5.235:8032
17/05/28 18:58:34 INFO yarn.Client: Requesting a new application from cluster with 3 NodeManagers
17/05/28 18:58:34 INFO yarn.Client: Verifying our application has not requested more than the maximum memory capability of the cluster (8192 MB per container)
17/05/28 18:58:34 INFO yarn.Client: …
Run Code Online (Sandbox Code Playgroud)

hadoop hadoop-yarn apache-spark hadoop2 pyspark

7
推荐指数
1
解决办法
6387
查看次数

未启用 SIMPLE 身份验证。可用:[TOKEN, KERBEROS] 在获取 spark 上下文时

安装信息:-

Hadoop 版本:- 2.6.5 Spark 版本:- 2.1.0 和 Kerberos

我正在尝试使用 kerberos 身份验证在纱线模式下获取 spark 上下文,但低于异常。

代码 :-

public static void main(String[] args) {

        Configuration conf = new Configuration();

        conf.set("fs.defaultFS", "hdfs://localhost:9000");
        conf.set("hadoop.security.authentication", "kerberos");
        conf.set("hadoop.security.authorization", "true");

        UserGroupInformation.setConfiguration(conf);

        System.out.println("Security enabled " + UserGroupInformation.isSecurityEnabled());


        SparkConf sparkConf = new SparkConf().setAppName("Spark shell").setMaster("yarn");
        SparkSession  sparkSession = SparkSession.builder().config(sparkConf).getOrCreate();

        System.out.println(sparkSession.version() + " : " + sparkSession.sparkContext());
  }
Run Code Online (Sandbox Code Playgroud)

其打印安全性已启用,例如:- 安全性已启用 true

例外 :-

org.apache.hadoop.security.AccessControlException:未启用简单身份验证。可用:[TOKEN, KERBEROS] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingImpl5.javaAccessor4Accessor) java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.apache.hadoop.yarn.ipc.RPCUtil.instantiateException(RPCUtil.java:53)

请建议我解决此错误。

authentication kerberos hadoop-yarn apache-spark hadoop2

7
推荐指数
0
解决办法
8281
查看次数

在 Spark 2.3.0 中读取 Zstandard 压缩文件

Apache Spark 据称从 Spark 2.3.0 开始支持 Facebook 的 Zstandard 压缩算法(https://issues.apache.org/jira/browse/SPARK-19112),但我无法实际读取 Zstandard 压缩文件:

$ spark-shell

...

// Short name throws an exception
scala> val events = spark.read.option("compression", "zstd").json("data.zst")
java.lang.IllegalArgumentException: Codec [zstd] is not available. Known codecs are bzip2, deflate, uncompressed, lz4, gzip, snappy, none.

// Codec class can be imported
scala> import org.apache.spark.io.ZStdCompressionCodec
import org.apache.spark.io.ZStdCompressionCodec

// Fully-qualified code class bypasses error, but results in corrupt records
scala> spark.read.option("compression", "org.apache.spark.io.ZStdCompressionCodec").json("data.zst")
res4: org.apache.spark.sql.DataFrame = [_corrupt_record: string]
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能读取这样的文件?

环境是 AWS EMR 5.14.0。

amazon-emr apache-spark hadoop2 zstandard

7
推荐指数
1
解决办法
2800
查看次数