标签: hadoop2

容器的日志重定向失败

最近我们用CDH 5升级到了YARN.

(版本:2.3.0 cdh5.1.3,r8e266e052e423af592871e2dfe09d54c03f6a0e8)

我试图通过单击ApplicationMaster上的日志从资源管理器访问失败作业的日志,但我收到以下错误:

container_1412602970010_0037_01_000002重定向失败尝试构建重定向URL到日志服务器时失败.可能未配置Log Server url容器不存在.

同样在pig/mapreduce工作中我们看到以下警告:

信息:2014-10-07 15:42:19,134 [main] WARN org.apache.hadoop.security.UserGroupInformation - PriviledgedActionException as:jobs(auth:SIMPLE)cause:java.io.IOException:org.apache.hadoop.ipc .RemoteException(org.apache.hadoop.yarn.exceptions.YarnRuntimeException):无法加载历史文件hdfs:// prod-hadoop:8020/user/history/done_intermediate/jobs/job_1412706451566_0032-1412710613932-jobs-PigLatin%3Aclk_imp_join_2014%2D10 %2D04T13-1412710831122-14-2连续调-root.jobs-1412710694546.jhist

我在配置中遗漏了什么?

hadoop hadoop-yarn hadoop2 cloudera-cdh

5
推荐指数
0
解决办法
500
查看次数

登录MapReduce作业的标准做法

我正在尝试找到登录MapReduce作业的最佳方法.我在其他Java应用程序中使用slf4j和log4j appender,但由于MapReduce作业在集群中以分布式方式运行,我不知道应该在哪里设置日志文件位置,因为它是一个访问受限的共享集群特权.

是否有任何标准做法用于登录MapReduce作业,因此您可以在作业完成后轻松查看群集中的日志?

java hadoop mapreduce mapr hadoop2

5
推荐指数
1
解决办法
1万
查看次数

S3N和S3A distcp在Hadoop 2.6.0中不起作用

摘要

股票hadoop2.6.0安装给了我no filesystem for scheme: s3n.hadoop-aws.jar现在添加到类路径给了我ClassNotFoundException: org.apache.hadoop.fs.s3a.S3AFileSystem.

细节

我有一个大多数股票安装hadoop-2.6.0.我只设置目录,并设置以下环境变量:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
export HADOOP_COMMON_HOME=/opt/hadoop
export HADOOP_HOME=$HADOOP_COMMON_HOME
export HADOOP_HDFS_HOME=$HADOOP_COMMON_HOME
export HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME
export HADOOP_OPTS=-XX:-PrintWarnings
export PATH=$PATH:$HADOOP_COMMON_HOME/bin
Run Code Online (Sandbox Code Playgroud)

hadoop classpath方法是:

/opt/hadoop/etc/hadoop:/opt/hadoop/share/hadoop/common/lib/*:/opt/hadoop/share/hadoop/common/*:/opt/hadoop/share/hadoop/hdfs:/opt/hadoop/share/hadoop/hdfs/lib/*:/opt/hadoop/share/hadoop/hdfs/*:/opt/hadoop/share/hadoop/yarn/lib/*:/opt/hadoop/share/hadoop/yarn/*:/opt/hadoop/share/hadoop/mapreduce/lib/*:/opt/hadoop/share/hadoop/mapreduce/*:/contrib/capacity-scheduler/*.jar:/opt/hadoop/share/hadoop/tools/lib/*
Run Code Online (Sandbox Code Playgroud)

当我试着奔跑时,hadoop distcp -update hdfs:///files/to/backup s3n://${S3KEY}:${S3SECRET}@bucket/files/to/backup我得到了Error: java.io.Exception, no filesystem for scheme: s3n.如果我使用s3a,我会得到同样的错误抱怨s3a.

互联网告诉我,hadoop-aws.jar是不是默认的类路径的一部分.我添加了以下行/opt/hadoop/etc/hadoop/hadoop-env.sh:

HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_COMMON_HOME/share/hadoop/tools/lib/*
Run Code Online (Sandbox Code Playgroud)

现在hadoop classpath附上以下内容:

:/opt/hadoop/share/hadoop/tools/lib/*
Run Code Online (Sandbox Code Playgroud)

这应该涵盖/opt/hadoop/share/hadoop/tools/lib/hadoop-aws-2.6.0.jar.现在我得到:

Caused by: java.lang.ClassNotFoundException:
Class org.apache.hadoop.fs.s3a.S3AFileSystem not found
Run Code Online (Sandbox Code Playgroud)

jar文件包含无法找到的类:

unzip -l /opt/hadoop/share/hadoop/tools/lib/hadoop-aws-2.6.0.jar |grep S3AFileSystem
28349  2014-11-13 …
Run Code Online (Sandbox Code Playgroud)

hadoop amazon-s3 hadoop2

5
推荐指数
2
解决办法
7504
查看次数

Spark 1.3.1:无法从 S3 存储桶读取文件,org/jets3t/service/ServiceException

我在 AWS EC2 虚拟机 (Ubuntu 14.04) 上,愿意在我的 S3 文件中的 RDD 上使用 Spark 做一些基础知识。成功运行此脏命令时(暂时不使用sparkContext.hadoopConfiguration

scala> val distFile = sc.textFile("s3n://< AWS_ACCESS_KEY_ID>:<AWS_SECRET_ACCESS_KEY>@bucketname/folder1/folder2/file.csv")
Run Code Online (Sandbox Code Playgroud)

然后我在运行时收到以下错误 distFile.count()

java.lang.NoClassDefFoundError: org/jets3t/service/ServiceException
         at org.apache.hadoop.fs.s3native.NativeS3FileSystem.createDefaultStore(NativeS3FileSystem.java:334)
         at org.apache.hadoop.fs.s3native.NativeS3FileSystem.initialize(NativeS3FileSystem.java:324)
         at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2596)
...
...
Caused by: java.lang.ClassNotFoundException: org.jets3t.service.ServiceException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
Run Code Online (Sandbox Code Playgroud)

我以前有

  • 使用相应的 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 定义了一个 AWS IAM 用户
  • export在 .bashrc 中添加了两个键作为环境变量
  • 内置 Spark 1.3.1 SPARK_HADOOP_VERSION=2.6.0-cdh5.4.1 sbt/sbt assembly
  • 安装并运行 hadoop 2.6-cdh5.4.1(伪分布式)

它与 的语法有关textFile("s3n// ...")吗?我试过其他人,包括s3://没有成功......

谢谢

amazon-s3 amazon-ec2 apache-spark hadoop2

5
推荐指数
1
解决办法
3755
查看次数

运行具有高可用性的 Hadoop 集群的最低系统要求

根据我对 hadoop 中高可用性的理解,我们需要一个名称节点和一个备用节点、网络共享存储空间(在两个名称节点之间共享)、至少 2 个数据节点来运行 hadoop 集群。

  1. 我们可以在运行名称节点的同一台机器上运行 dataNode 服务器吗?

  2. Yarn 可以在运行 NameNode 或 dataNode 服务器的机器上运行吗?

请建议我是否缺少生产 hadoop 环境所需的任何其他服务。

名称节点的系统要求应该是什么,因为它只处理元数据(CPU 密集型的 I/O 密集型)。我们正在处理的数据主要是 I/O 密集型的。

hadoop high-availability hdfs hadoop2

5
推荐指数
1
解决办法
8782
查看次数

hbase客户端API卡在table.get(行),

我正在使用hbase的本机API编写Hbase Java客户端.

我可以使用我创建的Hbase客户端连接到hbase并运行各种查询.我使用"hbase classpath"命令运行我的hbase客户端.这解决了所有依赖项.

现在我们希望这个hbase客户端成为项目的一部分,并将其作为其组件之一.因此,在集成之后,我们需要将其作为项目的War文件的一部分运行(我们需要将其作为rest API的一部分运行).我添加了hbase-site.xml.hdfs-site.xml和core-site.xml作为资源,并设置为Resource to configuration object.

Configuration conf = HBaseConfiguration.create()

URL hbaseUrl=HbaseManagerServiceImpl.class.getClassLoader().getResource("hbase-site.xml");
conf.addResource(hbaseUrl.toString());
URL hdfsUrl=HbaseManagerServiceImpl.class.getClassLoader().getResource("hdfs-site.xml");
conf.addResource(hdfsUrl.toString());
URL coreUrl=HbaseManagerServiceImpl.class.getClassLoader().getResource("core-site.xml");
conf.addResource(coreUrl.toString());
Run Code Online (Sandbox Code Playgroud)

当我试图只添加core-site.xml时,我收到错误说"包含失败"哪个文件存在于该主机上,因此在资源较旧时添加了该文件,这解决了我的问题.

HTable table = new HTable(conf , "tableName");
Run Code Online (Sandbox Code Playgroud)

我可以成功扫描并获取行操作并获取结果.

Scan scanTable = new Scan();
Get row = new Get(key);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试做"Result rowData = table.get(row); "

我的代码卡住了,没有显示任何错误.

我可以使用""hbase classpath"命令运行相同的代码.我是否需要设置$ HADOOP_CLASSPATH和$ HBASE_CLASSPATH变量,我通过jetty webserver运行我的代码.

以下是错误跟踪:

java.io.InterruptedIOException: Giving up trying to location region in meta: thread is interrupted.
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1391)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1169)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1123)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionLocation(HConnectionManager.java:964)
at org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:72)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:113)
at org.apache.hadoop.hbase.client.HTable.get(HTable.java:780)
at …
Run Code Online (Sandbox Code Playgroud)

java hadoop hbase hadoop2

5
推荐指数
1
解决办法
1174
查看次数

在杀死容器之前进行堆转储的 YARN 参数

我有一个长期运行的纱线应用程序(不是 m/r),其中的容器偶尔会超过纱线内存限制,此时纱线会杀死有问题的容器。我发现很难确定导致堆增长的原因。我可以设置一个纱线参数来告诉纱线在杀死容器之前进行堆转储吗?

hadoop heap-dump hadoop-yarn hadoop2

5
推荐指数
0
解决办法
561
查看次数

HiveContext导致NullPointer触发

我正在尝试在Spark任务中的DataFrame上执行foreach循环。我使用以下cmd提交我的spark任务。

 spark-submit --class Hive_Cis.DataAnalyze --master local --deploy-mode client --executor-memory 1g --name DataAnalyze --conf "spark.app.id=DataAnalyze" Hive_CIS-1.0-SNAPSHOT-jar-with-dependencies.jar
Run Code Online (Sandbox Code Playgroud)

现在,我的类是spark任务的驱动程序,如下所示。

enter public class DataAnalyze {

public static void main(String[] args){

    SparkConf conf = new SparkConf().setAppName("DataAnalyze").setMaster("local");
    JavaSparkContext sc = new JavaSparkContext(conf);
    HiveContext hiveContext = new HiveContext(sc);
    DataFrame dataSrcsTable = hiveContext.sql("SELECT * FROM  default.data_tables_metrics");

    dataSrcsTable.show();
    dataSrcsTable.foreach(new DataTableReader(hiveContext));
}//END OF MAIN
Run Code Online (Sandbox Code Playgroud)

那么扩展AbstractFunction1的类是:

public class DataTableReader extends AbstractFunction1 implements Serializable{

private HiveContext hiveConnection;
private static final long serialVersionUID = 1919222653470174456L;

public DataTableReader(HiveContext hiveData){

    this.hiveConnection = hiveData;
}

@Override …
Run Code Online (Sandbox Code Playgroud)

java hive cloudera apache-spark hadoop2

5
推荐指数
0
解决办法
672
查看次数

HDFS Client 在写入时如何知道块大小?

HDFS 客户端位于 HDFS 集群之外。当 HDFS 客户端将文件写入 hadoop 时,HDFS 客户端将文件拆分为块,然后将块写入数据节点。

这里的问题是 HDFS 客户端如何知道 Blocksize ?块大小在 Name 节点中配置,而 HDFS 客户端不知道块大小,那么它将如何将文件拆分为块?

hadoop hdfs hadoop-partitioning hadoop2

5
推荐指数
1
解决办法
1269
查看次数

Spark-提交如何设置user.name

想设置

mapreduce.job.user.name=myuser
Run Code Online (Sandbox Code Playgroud)

试过

spark-submit  --class com.MyClass
--conf mapreduce.job.user.name=myuser \ 
--conf spark.mapreduce.job.user.name=myuser \
--master yarn  \
--deploy-mode cluster \
Run Code Online (Sandbox Code Playgroud)

也试过

--conf user.name
Run Code Online (Sandbox Code Playgroud)

在 Spark UI 显示的环境中

user.name yarn
Run Code Online (Sandbox Code Playgroud)

hadoop apache-spark hadoop2

5
推荐指数
1
解决办法
7759
查看次数