如何将hadoop罐加入classpath?(how add hadoop jars to classpath?)
我的mac上的Hadoop 2.7.3安装在:
/usr/local/Cellar/hadoop/2.7.3
我编写了一个demo来使用java从HDFS读取文件:
import java.io.*; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; public class HDFSTest{ public static void main(String[] args) throws IOException, URISyntaxException{ String file= "hdfs://localhost:9000/hw1/customer.tbl"; Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(file), conf); Path path = new Path(file); FSDataInputStream in_stream = fs.open(path); BufferedReader in = new BufferedReader(new InputStreamReader(in_stream)); String s; while ((s=in.readLine())!=null) { System.out.println(s); } in.close(); fs.close(); } }
当我编译java文件时,错误如图所示:
hero:Documents yaopan$ javac HDFSTest.java HDFSTest.java:8: error: package org.apache.hadoop.conf does not exist import org.apache.hadoop.conf.Configuration; ^ HDFSTest.java:10: error: package org.apache.hadoop.fs does not exist import org.apache.hadoop.fs.FSDataInputStream; ^ HDFSTest.java:12: error: package org.apache.hadoop.fs does not exist import org.apache.hadoop.fs.FSDataOutputStream; ^ HDFSTest.java:14: error: package org.apache.hadoop.fs does not exist import org.apache.hadoop.fs.FileSystem;
我知道原因是找不到hadoop jar,怎么配置?^
Hadoop 2.7.3 on my mac is installed at:
/usr/local/Cellar/hadoop/2.7.3
I write a demo to read file from HDFS using java:
import java.io.*; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; public class HDFSTest{ public static void main(String[] args) throws IOException, URISyntaxException{ String file= "hdfs://localhost:9000/hw1/customer.tbl"; Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(file), conf); Path path = new Path(file); FSDataInputStream in_stream = fs.open(path); BufferedReader in = new BufferedReader(new InputStreamReader(in_stream)); String s; while ((s=in.readLine())!=null) { System.out.println(s); } in.close(); fs.close(); } }
When I compile the java file ,error as shown blow:
hero:Documents yaopan$ javac HDFSTest.java HDFSTest.java:8: error: package org.apache.hadoop.conf does not exist import org.apache.hadoop.conf.Configuration; ^ HDFSTest.java:10: error: package org.apache.hadoop.fs does not exist import org.apache.hadoop.fs.FSDataInputStream; ^ HDFSTest.java:12: error: package org.apache.hadoop.fs does not exist import org.apache.hadoop.fs.FSDataOutputStream; ^ HDFSTest.java:14: error: package org.apache.hadoop.fs does not exist import org.apache.hadoop.fs.FileSystem;
I know the reason is can not find hadoop jars,how to configure that? ^
原文:https://stackoverflow.com/questions/40566172
最满意答案
我们尚未公布时间表,但是,您应该期望转向下一代基于v3的平台。 如果您正在寻找有关转换应用程序的一些指导,请查看OpenShift在线迁移中心 。 一个适当的通知将会消失。
感谢指向令人困惑的链接,我们将清理那些。 还要感谢使用OpenShift。
问候,史蒂夫
We haven't announced the timetable yet but yes, you should expect to move to the next generation v3-based platform. If you are looking for some guidance on transitioning your app, you should check out OpenShift Online Migration Center. A proper notice will go out.
Thanks for the pointers to the confusing links, we'll get those cleaned up. Also thanks for using OpenShift.
Regards, Steve
相关问答
更多-
在Openshift Online v3上“路由器不允许路由”(“Route not admitted by a router” on Openshift Online v3)[2022-02-24]
它就是! 我的应用程序终于可以再次访问:路由器花了2天时间来设置我的路由。 我不需要采取任何行动。 但是起始平台仍然遇到困难,因此我将避免任何重新部署,直到状态再次变为绿色。 There it is ! My application is reachable again at last : It took 2 days for the router to setup my route. No action required from my part. But the starter platform is ... -
OpenShift Online v3 + - 添加新路由会出现禁止错误(OpenShift Online v3+ - Adding new route gives forbidden error)[2022-02-08]
这是非支持 (Pro)计划的支持自定义域的含义。 使用入门计划,您无法指定域名。 This is meant by Supports Custom Domains for the non-starter (Pro) plan. With the starter plan, you cannot specify domain names. -
如何在openshift在线运行mosquitto mqtt broker(How to run mosquitto mqtt broker on openshift online)[2023-05-26]
最后我将它用于openshift,尽管配置最简单。 以下是关键步骤: 使用openshift DIY盒式磁带获取websocket支持,该支持公开外部端口8000并在OPENSHIFT_DIY_IP指定的虚拟IP地址OPENSHIFT_DIY_IP由到内部端口8080 。 编译mosquitto,并在config.mk关闭以下所有功能,以避免将大量软件包安装到openshift: WITH_TLS , WITH_TLS_PSK , WITH_THREADING , WITH_BRIDGE , WITH_SR ... -
在Openshift online v3上无法chmod文件:不允许操作(Cannot chmod file on Openshift online v3 : Operation not permitted)[2021-07-11]
无需查看更多详细信息,任何S2I构建器映像都将很乐意使用您自定义提供的run脚本以另一种方式启动应用程序。 在源代码目录中创建.s2i/bin/ (请注意点),将run脚本放入其中并在OpenShift中重建应用程序 - 它将在部署时自动使用您的自定义run脚本。 这是在OpenShift中使用自定义命令启动应用程序的首选方法。 关于您的直接问题,有一个非常简单的原因,您无法更改脚本的权限:您尝试修改已部署的窗格中的权限,而不是构建器窗格。 部署的pod使用不同的UID运行,通常在100000000的范围内 ... -
我无法再访问OpenShift Online Starter控制台(I can no longer access OpenShift Online Starter console)[2023-04-24]
如果您没有项目,或者没有部署的豆荚,那么该帐户将被退役。 如果发生这种情况,您可以重新创建您的帐户。 如果您仍然遇到登录问题,那么您可以使用以下联系表单: https://help.openshift.com/forms/community-contact.html 报告任何问题。 如果这是一个短暂的问题,我会建议继续重新尝试。 您还可以在以下位置找出群集中是否存在任何当前问题: https://status.starter.openshift.com/ If you have no project, or ... -
PayPal与OpenShift Online集成 - SSL IPN问题(PayPal integration with OpenShift Online — SSL IPN Issue)[2024-02-15]
这条线很可疑: $cert = __DIR__ . "./cacert.pem"; 基本上你会得到像$ cert equaling /home/path./cacert.pem这样的东西,我很确定这不是你想要的,为什么你得到ssl错误,它找不到证书。 这可以纠正为: $cert = __DIR__ . "/cacert.pem"; 将cacert.pem存储在$ OPENSHIFT_DATA_DIR中也可能更好,并将其引用为: $cert = getenv("OPENSHIFT_DATA_DIR")." ... -
Openshift:在迁移到Onlive V3时创建容器时出错(Openshift: Error creating container in migration to Onlive V3)[2023-01-15]
EBS卷类型只能在OpenShift集群中一次安装在一个节点上。 如果将Java和MySQL作为可以放在不同节点上的独立应用程序,那么就无法对两者进行挂载。 该错误警告您这一点。 对于Java和MySQL同时使用单个EBS卷的唯一方法是让它们在同一个pod的单独容器中运行。 您还需要确保将部署策略设置为“重新创建”而不是“滚动”,因为滚动会导致在旧实例仍然存在的情况下创建新实例,同时会出现同样的问题,因为新旧可能位于不同的节点上。 简而言之,OpenShift在线入门版没有为您提供足够的持久性卷来执行您要执 ... -
OpenShift v3上的大熊猫(Pandas on OpenShift v3)[2022-06-14]
这将是两件事之一。 编译Pandas是一个巨大的记忆力,可能是因为编译器遇到了一些病态的情况。 或者,此时生成的图像的大小超过内部限制,因此耗尽分配的磁盘空间。 如果它是内存,则需要增加分配给构建窗格的内存。 默认情况下,在线这是512Mi。 要增加限制,您需要从Web控制台编辑构建配置的YAML / JSON,或使用oc edit从命令行oc edit 。 对于YAML,您需要添加以下内容: resources: limits: memory: 1Gi 这是设置字段: $ oc ... -
我们尚未公布时间表,但是,您应该期望转向下一代基于v3的平台。 如果您正在寻找有关转换应用程序的一些指导,请查看OpenShift在线迁移中心 。 一个适当的通知将会消失。 感谢指向令人困惑的链接,我们将清理那些。 还要感谢使用OpenShift。 问候,史蒂夫 We haven't announced the timetable yet but yes, you should expect to move to the next generation v3-based platform. If you a ...
-
在OpenShift Online上部署时,您无法控制应用程序空闲。 定价页面显示24小时后免费计划将自动闲置,而铜牌和白银计划永远不会闲置。 这样做是因为OpenShift Online处理多租户的方式,如果你能够空闲你的应用程序,它也意味着你可以闲置你的邻居应用程序。 When deploying on OpenShift Online, you do not have control over your application idling. The pricing page shows that f ...