Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 通过Amazon';上的MapReduce程序访问时无法加载Hive JDBC驱动程序;s弹性映射还原_Hadoop_Jdbc_Mapreduce_Hive_Elastic Map Reduce - Fatal编程技术网

Hadoop 通过Amazon';上的MapReduce程序访问时无法加载Hive JDBC驱动程序;s弹性映射还原

Hadoop 通过Amazon';上的MapReduce程序访问时无法加载Hive JDBC驱动程序;s弹性映射还原,hadoop,jdbc,mapreduce,hive,elastic-map-reduce,Hadoop,Jdbc,Mapreduce,Hive,Elastic Map Reduce,我编写了一个MapReduce程序,在该程序中,我将部分输出数据存储到Hive表中 我使用了hivejdbc驱动程序通过MapReduce代码访问Hive表 此程序已在本地计算机上成功编译 之后,我创建了一个JAR文件,并将其上传到S3。然后我创建了一个elasticmapreduce集群,并启动了它 但是,这会导致以下提到的错误: java.lang.Throwable:位于的子错误 org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java

我编写了一个MapReduce程序,在该程序中,我将部分输出数据存储到
Hive
表中

我使用了
hivejdbc驱动程序
通过
MapReduce
代码访问
Hive

此程序已在本地计算机上成功编译

之后,我创建了一个JAR文件,并将其上传到
S3
。然后我创建了一个
elasticmapreduce集群
,并启动了它

但是,这会导致以下提到的错误:

java.lang.Throwable:位于的子错误 org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:271)导致 by:java.io.IOException:任务进程退出,非零状态为1。 位于org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:258)

尝试\u 201407161054\u 0001\u m\u000001\u 0:java.lang.ClassNotFoundException: org.apache.hadoop.hive.jdbc.HiveDriver 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.security.AccessController.doPrivileged(本机方法) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at loadClass(ClassLoader.java:424) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at loadClass(ClassLoader.java:357) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.lang.Class.forName0(本机方法) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.lang.Class.forName(Class.java:190) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at 配置(InputHubMapper.java:38) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at invoke(NativeMethodAccessorImpl.java:57) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 尝试\u 201407161054\u 0001\u m\u000001\u 0:at java.lang.reflect.Method.invoke(Method.java:606)

这似乎是缺少
hivejdbc驱动程序的问题,应该通过在
classpath
中添加
hivejdbc驱动程序来解决。然而,我不知道在亚马逊的EMR上做这件事的确切步骤

你能让我知道我这边缺少什么,以及如何解决它吗

感谢和问候,
Prafulla

我不太确定,但你应该试试这个:

“注意 如果希望自定义类路径覆盖原始类路径,则应将环境变量HADOOP_USER_classpath_FIRST设置为true,以便HADOOP-USER-env.sh中指定的HADOOP_classpath值位于第一位。”

  • 问候,, 里维特