知识点
相关文章
更多最近更新
更多Java访问Hadoop编译和运行遇到的各类问题和解决方案
2019-03-28 13:01|来源: 网络
Java访问Hadoop编译和运行遇到的各类问题和解决方案:
问题1:
在javac编译时,老是缺少依赖的类,
解决方案:
所以我之后写了一个脚本,将所有的.jar文件都加载到CLASSPATH变量中,就ok了。
问题2:
而实际操作中出现文件操作的权限不足。因为用hadoop shell放进去的默认权限是rw-r--r--,所以作为程序对象就没有操作权限。
解决方案:
java之之前加上sudo权限即可。如果还是不行,那只好:/bin/hadoop fs -chmod 777 文件名
我的shell脚本是这样写的。(jardir是我先将所有的jar文件cp到了该目录)
#!/bin/sh
FILES=/usr/local/hadoop/jardir/*
v=""
for f in $FILES
do
v1=${f}
v2=${v1}:${v}
v=${v2}
done
echo "$v"
v2="."
v=${v}${v2}
sudo javac -classpath ${v} CopyFile.java
sudo java -classpath ${v} CopyFile
之后只用运行:
sh build.sh
即可
下面附上我的java代码:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
public class CopyFile {
public static void main(String[] args) throws Exception {
Configuration conf=new Configuration();
conf.set("fs.default.name","hdfs://localhost:9000");
conf.set("hadoop.job.ugi","hadoop,hadoop");
FileSystem hdfs=FileSystem.get(conf);
//本地文件
Path src =new Path("t.txt");
//HDFS为止
Path dst =new Path("/my/b.txt");
hdfs.copyFromLocalFile(src, dst);
System.out.println("Upload to"+conf.get("fs.default.name"));
FileStatus files[]=hdfs.listStatus(dst);
for(FileStatus file:files)
System.out.println(file.getPath());
boolean b=hdfs.delete(new Path("/my/t.txt"));
System.out.println("b="+b);
hdfs.close();
}
}
更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
相关问答
更多-
求一篇企业信息安全的论文,要求有具体的问题,分析过程,和解决方案![2022-08-22]
-
求JAVA quartz 解决方案[2024-03-14]
既然是固定时间间隔执行任务,直接用SimpleTrigger就好了,用CronTrigger根本不是用来描述固定时间间隔的。 -
看起来升级过程的某些部分刚刚删除了此菜单选项。 在nithins链接到这个问题后 ,我按照作者创建的说明重新创建了Recent Projects and Solutions菜单项。 对于后代,这些步骤是(在Visual Studio 2012中执行): 在“工具”菜单下,单击“ 自定义...” 单击“ 命令”选项卡。 将下拉列表中的菜单栏选择选项更改为文件 。 单击“ 添加新菜单” 。 单击修改选择 ,重命名为最近的项目和解决方案。 在菜单栏下拉列表下,选择文件| 最近的项目和解决方案 单击添加命令... ...
-
阶段B到阶段D包括为每个体系结构域定义基线和目标体系结构,并确定基线和目标之间的差距。 在D阶段结束时,您应该有四组架构定义和四组缺口分析。 阶段E涉及将已识别的差距合并到工作包中。 这些集体是机会。 基线(当前)体系结构和目标(未来)体系结构之间的差距是机会。 然后,您将这些要求纳入路线图并草拟实施计划,这就是解决方案要素。 希望能帮助到你。 Phases B through D involve defining the baseline and target architectures for each ...
-
在Hadoop中实现故障注入有哪些解决方案[关闭](What are the solutions to implementing the fault-injection in Hadoop [closed])[2022-01-03]
Hadoop实际上有一个故障注入框架。 看到这个 。 Hadoop actually has a fault injection framework. See this. -
无法编译解决方案?(Cannot compile solution?)[2022-11-22]
using BusinessLayer;添加using BusinessLayer; 在应用程序的顶部,如果您已经这样做,那么尝试清理并重建解决方案。 还要确保库和控制台应用程序都具有相同的.net框架版本,例如两者都是4.0而不是其中一个4.0客户端配置文件... Add using BusinessLayer; in the top of your application, if you already did that, then try to clean and rebuild the soluti ... -
如何将我的解决方案纳入Windows Problemm报告和解决方案(How To Get My Solutions Into Windows Problemm Reports and Solutions)[2024-01-03]
本文介绍如何为Windows XP设置OCA,我相信这些步骤仍适用于Windows Vista和Windows 7。 事实证明,OCA的当前名称是“ WinQual ”。 官方网站在这里 。 This article shows how to set up OCA for Windows XP, I believe that the steps still apply for Windows Vista and Windows 7. It turns out that the current name fo ... -
所以我把一切都搞定了,这就是我现在如何调用MSBuild:
... -
Java验证程序和解决方案(Java verifier and resolution)[2022-08-23]
内存中的java对象被填充并对齐至少16个字节长,因此在仅包含int字段的类中有一些未使用的空间。 如果向A添加更多字段,则可能会覆盖其他对象的存储空间,但这可能也不会导致立即崩溃,尤其是在这样一个立即退出的短应用程序中。 通过声明这样的类,您可以获得更多乐趣: public class A { int[] a = new int[1]; } public class B { int a = 0x01020304; } public class Test { public sta ...