标签: cloudera

Hadoop:配置对象时出错

我正在尝试运行Terasort基准测试,我得到以下异常:

java.lang.RuntimeException: Error in configuring object
    at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93)
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
    at org.apache.hadoop.mapred.MapTask$OldOutputCollector.<init>(MapTask.java:573)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:435)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:371)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
    at org.apache.hadoop.mapred.Child.main(Child.java:253)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88)
    ... 10 more
Caused by: java.lang.IllegalArgumentException: can't read paritions file
    at org.apache.hadoop.examples.terasort.TeraSort$TotalOrderPartitioner.configure(TeraSort.java:213)
    ... 15 more
Caused by: java.io.FileNotFoundException: File _partition.lst does not exist.
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:371)
    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
    at org.apache.hadoop.fs.FileSystem.getLength(FileSystem.java:720)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1417)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1412)
    at org.apache.hadoop.examples.terasort.TeraSort$TotalOrderPartitioner.readPartitions(TeraSort.java:153)
    at org.apache.hadoop.examples.terasort.TeraSort$TotalOrderPartitioner.configure(TeraSort.java:210) …
Run Code Online (Sandbox Code Playgroud)

java hadoop mapreduce exception cloudera

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

Apache Pig:使用hadoop fs -text加载一个显示正常的文件

我有名为part-r-000 [0-9] [0-9]的文件,其中包含制表符分隔的字段.我可以使用hadoop fs -text part-r-00000它来查看它们,但无法使用猪来加载它们.

我尝试过的:

x = load 'part-r-00000';
dump x;
x = load 'part-r-00000' using TextLoader();
dump x;
Run Code Online (Sandbox Code Playgroud)

但这只会给我垃圾.如何使用猪查看文件?

可能相关的是我的hdfs目前仍在使用CDH-2.此外,如果我将文件下载到本地并运行file part-r-00000它说part-r-00000: data,我不知道如何在本地解压缩它.

linux hadoop apache-pig cloudera

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

如何使用Hue + Beeswax刷新/清除DistributedCache以运行定义自定义UDF的Hive查询?

我已经建立了一个Hadoop集群(通过Cloudera Manager使用Cloudera发行版),我正在使用Hue接口运行一些Hive查询,该接口使用下面的Beeswax.

我的所有查询运行正常,我甚至成功部署了自定义UDF.

但是,在部署UDF时,我遇到了一个非常令人沮丧的版本问题.在我的UDF类的初始版本中,我使用了导致a的第三方类StackOverflowError.

我修复了这个错误,然后验证了可以从hive命令行成功部署和使用UDF.

然后,当我再次使用Hue和Beeswax时,我不断得到同样的错误.我只能通过更改我的UDF java类名来解决这个问题.(从LowerLower2).

现在,我的问题是,处理这类版本问题的正确方法什么?

据我所知,当我使用左边的方便表单字段添加jar时,它们会被添加到分布式缓存中.那么,如何刷新/清除分布式缓存?(我无法LIST JARS;从Hive/Beeswax中运行等.它给我一个语法错误.)

hadoop hive cloudera hue beeswax

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

Cloudera CDH中的hadoop-examples*和hadoop-test*jars在哪里?

我正在寻找能够运行与示例和测试jar相关联的hadoop作业的jar文件.在过去,他们在/ usr/lib/hadoop下,但显然不再.指针赞赏.

注意:这个问题最初是针对CDH4.2的.但是一些答案包括更高版本的信息

hadoop mapreduce cloudera

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

Impala找不到com.mysql.jdbc.Driver

我正在尝试使用Red Hat 5上的伪分布式模式在CDH4上设置Cloudera Impala.我有Hive使用JDBC连接到MySQL Metastore,但是我在使用JDBC设置Impala时遇到了麻烦.我一直在按照此处的说明操作:http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Using-Impala/ciiu_impala_jdbc.html

我已经将JAR解压缩到一个目录并包含该目录$CLASSPATH.我也包括/usr/lib/hive/lib$CLASSPATH里面了mysql-connector-java-5.1.25-bin.jar.

在我的Hive和Impala conf目录中,我hive-site.xml包含以下属性:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost/metastore</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hiveuser</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>password</value>
</property>

<property>
    <name>datanucleus.autoCreateSchema</name>
    <value>false</value>
</property>

<property>
    <name>datanucleus.fixedDatastore</name>
    <value>true</value>
</property>
Run Code Online (Sandbox Code Playgroud)

但是当我运行时sudo service impala-server restart,服务器日志有这个错误:

ERROR common.MetaStoreClientPool: Error initializing Hive Meta Store client
javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
Run Code Online (Sandbox Code Playgroud)

它说的原因是:

Caused by: org.datanucleus.store.rdbms.datasource.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the …
Run Code Online (Sandbox Code Playgroud)

hadoop hive cloudera impala

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

hdfs数据节点与namenode断开连接

我经常在cloudera经理中得到以下错误:

This DataNode is not connected to one or more of its NameNode(s). 
Run Code Online (Sandbox Code Playgroud)

The Cloudera Manager agent got an unexpected response from this role's web server.
Run Code Online (Sandbox Code Playgroud)

(通常在一起,有时只有一个)

在SO和Google中大多数对这些错误的引用中,问题是配置问题(并且数据节点从不连接到名称节点)

在我的情况下,数据节点通常在启动时连接,但在一段时间后松开连接 - 因此它似乎不是一个糟糕的配置.

  • 还有其他选择吗?
  • 是否可以强制数据节点重新连接到名称节点?
  • 是否可以从数据节点"ping"名称节点(模拟数据节点的连接尝试)
  • 它可能是某种资源问题(对许多打开的文件\连接)?

样本日志(错误随时变化)

2014-02-25 06:39:49,179 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: exception:
java.net.SocketTimeoutException: 480000 millis timeout while waiting for channel to be ready for write. ch : java.nio.channels.SocketChannel[connected local=/10.56.144.18:50010 remote=/10.56.144.28:48089]
        at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:165)
        at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:153)
        at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:114)
        at org.apache.hadoop.hdfs.server.datanode.BlockSender.sendPacket(BlockSender.java:504)
        at org.apache.hadoop.hdfs.server.datanode.BlockSender.sendBlock(BlockSender.java:673)
        at org.apache.hadoop.hdfs.server.datanode.DataXceiver.readBlock(DataXceiver.java:338)
        at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opReadBlock(Receiver.java:92)
        at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:64)
        at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:221)
        at java.lang.Thread.run(Thread.java:662) …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs cloudera

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

关于为什么随机写入数据的详细说明比apache spark中的输入数据更多

在此输入图像描述

  1. 任何人都可以告诉我究竟什么输入,输出,随机读取和随机写入在spark UI中指定?
  2. 另外,有人可以解释这项工作的输入是如何进行洗牌的25~30%?根据我的理解,shuffle write是无法在内存中保存的临时数据和在聚合或减少期间需要发送给其他执行程序的数据的总和.

代码如下:

hiveContext.sql("SELECT * FROM TABLE_NAME WHERE PARTITION_KEY = 'PARTITION_VALUE'")
    .rdd
    .map{case (row:Row)
            =>((row.getString(0), row.getString(12)),
                (row.getTimestamp(11), row.getTimestamp(11),
                    row))}
    .filter{case((client, hash),(d1,d2,obj)) => (d1 !=null && d2 !=null)}
   .reduceByKey{
       case(x, y)=>
            if(x._1.before(y._1)){
                if(x._2.after(y._2))
                    (x)
                else
                    (x._1, y._2, y._3)
            }else{
                if(x._2.after(y._2))
                    (y._1, x._2, x._3)
                else
                    (y)
            }
   }.count()
Run Code Online (Sandbox Code Playgroud)

其中ReadDailyFileDataObject是一个case行,它将行字段保存为容器.容器是必需的,因为有30列,超过22的元组限制.

当我使用Row本身而不是case Class时,更新了Code,删除了case类,因为我看到同样的问题.

现在我看到了

任务:10/7772

输入:2.1 GB

随机写:14.6 GB

如果它有帮助,我试图处理存储为镶木地板文件的表,包含210亿行.

以下是我正在使用的参数,

"spark.yarn.am.memory" -> "10G"
"spark.yarn.am.cores"  -> "5"
"spark.driver.cores"   -> "5"
"spark.executor.cores" -> "10"
"spark.dynamicAllocation.enabled" -> "true"
"spark.yarn.containerLauncherMaxThreads" -> "120"
"spark.executor.memory" -> "30g" …
Run Code Online (Sandbox Code Playgroud)

hdfs cloudera apache-spark

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

蜂巢中分区和分区的结构差异

我创建了两个表:

1)一个用于分区的分区
2)只有分层表

我知道hive中分区和分区的概念.但我有点困惑,因为我已经读过'partition creates directory and bucketing creates files'.我同意第一部分,因为我可以在HDFS Hive Warehouse中看到,但ONLY除了我加载到表中的数据文件之外,我无法在HDFS中看到任何用于bucketing表的文件.那么ONLYbucketing表的文件在哪里?我能够在分区目录下看到的文件是一个喜欢的文件,eg: 00000_0但是这个文件可以用于分区表但是另一个bucketed表呢?
下面是我创建表的代码:

CREATE TABLE Employee(
ID BIGINT,
NAME STRING, 
SALARY BIGINT,
COUNTRY STRING 
)
CLUSTERED BY(ID) INTO 5 BUCKETS
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;  
Run Code Online (Sandbox Code Playgroud)

负载数据代码如下:

load data local inpath '/home/cloudera/Desktop/SampleData.txt' into table employee;  
Run Code Online (Sandbox Code Playgroud)

我已经读过,当我们创建表时会创建存储桶.如果我遗漏了某些内容或出错了,请更正我.有人请帮忙吗?

hadoop hive hdfs cloudera hortonworks-data-platform

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

Oozie工作流程:找不到Hive表但它确实存在

我有一个oozie工作流程,在4台机器的CDH4集群上运行(一个掌握一切,三个"哑"工人).hive Metastore使用mysql(驱动程序存在)在master上运行,oozie服务器也使用mysql在master上运行.使用Web界面,我可以按预期导入和查询配置单元,但是当我在oozie工作流程中执行相同的查询时,它会失败.即使添加"IF EXISTS"也会导致下面的错误.我尝试将连接信息作为属性添加到hive作业,但没有任何成功.

任何人都可以给我一个提示吗?我错过了什么吗?需要进一步的信息吗?

这是作业日志的输出:

  Script [drop.sql] content:
  ------------------------
  DROP TABLE IF EXISTS performance_log;

  ------------------------

  Hive command arguments :
  -f
  drop.sql

  =================================================================

  >>> Invoking Hive command line now >>>

  Intercepting System.exit(10001)

  <<< Invocation of Main class completed <<<

  Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10001]

  Oozie Launcher failed, finishing Hadoop job gracefully
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

  FAILED: SemanticException [Error 10001]: Table not found performance_log
  Intercepting System.exit(10001)
  Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10001]
Run Code Online (Sandbox Code Playgroud)

hive cloudera oozie

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

NameNode地址的URI无效

我试图建立一个ClouderaHadoop集群,与包含一个主节点namenodesecondarynamenode并且jobtracker,和含有另外两个节点datanodetasktracker。该Cloudera版本是4.6,操作系统是Ubuntu的精确64。此外,该集群是从AWS实例创建的。ssh passwordless还已经Java安装了Oracle-7。

每当执行sudo service hadoop-hdfs-namenode start我都会得到:

2014-05-14 05:08:38,023 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
java.lang.IllegalArgumentException: Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority.
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:329)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:317)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getRpcServerAddress(NameNode.java:370)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.loginAsNameNodeUser(NameNode.java:422)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:442)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:621)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:606)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1177)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1241)
Run Code Online (Sandbox Code Playgroud)

我的core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. …
Run Code Online (Sandbox Code Playgroud)

java xml hadoop cloudera

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