Tag: hadoop

无法通过JAVA连接到HIVE2

参考Hive2创建了一个连接到HIVE2服务器(非本地)的简单java程序,在eclipse的类路径中添加了上述链接中所有提到的jar,但是当我运行代码时它会抛出一个错误: 09:42:35,580 INFO Utils:285 – Supplied authorities: hdstg-c01-edge-03:20000 09:42:35,583 INFO Utils:372 – Resolved authority: hdstg-c01-edge-03:20000 09:42:35,656 INFO HiveConnection:189 – Will try to open client transport with JDBC Uri: jdbc:hive2://hdstg-c01-edge-03:20000 FAILED: f java.lang.NoSuchMethodError: org.apache.thrift.protocol.TProtocol.getScheme()Ljava/lang/Class; at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_args.write(TCLIService.java:1854) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63) at org.apache.hive.service.cli.thrift.TCLIService$Client.send_OpenSession(TCLIService.java:150) at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:142) at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:456) at org.apache.hive.jdbc.HiveConnection.(HiveConnection.java:178) at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105) at java.sql.DriverManager.getConnection(DriverManager.java:579) at java.sql.DriverManager.getConnection(DriverManager.java:221) at testScripts.HiveJdbcClient.f(HiveJdbcClient.java:19) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native […]

Hadoop作业:任务无法报告状态601秒

在伪节点上运行hadoop作业时,任务失败并被杀死。 错误:任务尝试_无法报告状态达601秒 但是同一个程序正在运行Eclipse(本地工作)。 任务:大约有25K关键字,输出将是所有可能的组合(一次两个),即大约25K * 25K entires 可能是什么问题?

hadoop2.2.0追加文件发生AlreadyBeingCreatedException

我遇到了关于hadoop2.2.0追加操作的问题。 我通过HDFS java API将一些字节附加到hdfs文件。首先,如果在附加操作之前文件不存在,我将创建目标文件,代码如下: String fileUri = “hdfs://hadoopmaster:9000/in/append_test.txt”; // create the hdfs file, if not exists HdfsClient.createPathIfNotExist(fileUri); // do 5 times append operation for (int i=0; i<5; i++){ HdfsClient.appendTo(fileUri, ("append content"+i).getBytes("UTF-8")); } createPathIfNotExist函数: Path p = null; FileSystem fs = null; try { fs = FileSystem.get(URI.create(uri), conf); p = new Path(uri); if (!fs.exists(p)) { if […]

如何在Hadoop 3.0中进行CopyMerge?

我知道hadoop版本2.7的copyMerge有copyMerge函数,它将多个文件合并为一个新文件。 但是3.0版本中的API不再支持copyMerge函数。 有关如何将目录中的所有文件合并到3.0版本的hadoop中的新单个文件的任何想法?

连接到远程Spark master – Java / Scala

我在AWS中创建了一个3节点(1个主节点,2个工作节点) Apache Spark集群。 我可以从主服务器向集群提交作业,但是我无法远程工作。 /* SimpleApp.scala */ import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf object SimpleApp { def main(args: Array[String]) { val logFile = “/usr/local/spark/README.md” // Should be some file on your system val conf = new SparkConf().setAppName(“Simple Application”).setMaster(“spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077”) val sc = new SparkContext(conf) val logData = sc.textFile(logFile, 2).cache() val numAs = logData.filter(line => line.contains(“a”)).count() val […]

包org.apache.hadoop.fs不存在

首先,我知道之前已经提出过这个问题,但是这些解决方案都不适合我,我想知道原因。 我正在尝试在我的linux单节点集群上为hadoop编译标准的’WordCount.java’.jar,但是继续获取package org.apache.hadoop.* does not exist错误。 我知道我必须编辑$ CLASSPATH,但我在网上找到的所有内容都是要引用hadoop-core而我在构建中找不到hadoop-core (2.4.0)。 如何在我的系统中找到org.apache.hadoop。*的位置? 我觉得这将是一个很好的’一般’答案,因为我已经看到很多问题,每个人都给出了一个特定的/ path / to / classpath /,但它(显然)取决于hadoop的版本和构建。

由于来自容器启动的AM容器exception,无头环境中的MapReduce作业失败了N次

在MacOSX中运行地图减少无头环境中的作业时(例如,当作为特定用户ssh时运行作业时),我得到以下exception或类似的东西…… 2013-12-04 15:08:28,513 WARN org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger: USER=hadoop OPERATION=Application Finished – Failed TARGET=RMAppManager RESULT=FAILURE DESCRIPTION=App failed with state: FAILED PERMISSIONS=Application application_1386194876944_0001 failed 2 times due to AM Container for appattempt_1386194876944_0001_000002 exited with exitCode: 1 due to: Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException: at org.apache.hadoop.util.Shell.runCommand(Shell.java:464) at org.apache.hadoop.util.Shell.run(Shell.java:379) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589) at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:283) 相反,如果我以该用户身份登录,则不会发生错误并且MR作业将运行结束,而标记为“MRAppMaster”的Java图标会在Dock中弹出。 我已经将其缩小到ResourceManager,启动Java进程而不传递-Djava.awt.headless=true 。 在无头环境中发生这种情况时,JVM无权在根窗口中显示。 这已经出现在其他一些情况下,我已经纠正了每一个。 这不是权限问题(在别处建议的东西)或缺少目录。 但是我不知道如何影响最后一次未经许可访问根窗口的违规行为。 […]

在Spark中计算RDD昂贵任务中的记录?

在Hadoop中,当我使用inputformat reader时,作业级别的日志会报告读取的记录数,还会显示字节数等。 在Spark中,当我使用相同的inputformat阅读器时,我得到的不是那些指标。 所以我想我会使用inputformat reader来填充rdd,然后只发布rdd中的记录数(rdd的大小)。 我知道rdd.count()返回rdd的大小。 但是,使用count()的成本对我来说并不清楚? 例如: 它是分布式function吗? 每个分区是否会报告其计数并将计数汇总并报告? 或整个rdd被带入驱动程序并计算? 执行count() ,rdd仍会保留在内存中还是我必须显式缓存它? 有没有更好的方法来做我想做的事情,即在对它们进行操作之前对记录进行计数?

hadoop map中的InstantiationException减少程序

我是Hadoop框架的新手。 我试图编写一个从hdfs读取XML文件的程序,使用JDOM解析它并将其发送到数据库。 以下是Java文件 package JDOMprs; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.DoubleWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; import com.vertica.hadoop.VerticaOutputFormat; import com.vertica.hadoop.VerticaRecord; public class ExampleParser extends Configured implements Tool { […]

Phoenix不会正确显示负整数值

我正在创建一个值为整数-17678的HBASE表。 但是当我从pheonix中检索它时,它给了我一个不同的正值。 RowKey是一个复合rowkey,rowkey没有问题。 Hbase插入: public class test { public static void main(String args[]) { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Table table = connection.getTable(TableName.valueOf(“TEST”)); Integer i=-17678; try { Put p = new Put(Bytes.toBytes(“rowkey”)); p.addColumn(Bytes.toBytes(“test”),Bytes.toBytes(“test”),Bytes.toBytes(i)); table.put(p); } finally { table.close(); connection.close(); } } } 凤凰检索: 从TEST中选择CAST(“Value”AS INTEGER); +——————————————+ | TO_INTEGER(test.”Value”) | +——————————————+ | 2147465970 […]