我正在尝试创建或打开一个文件来存储HDFS中的一些输出,但是当我exists在下面的代码片段的倒数第二行调用方法时,我得到一个NullPointerException :
DistributedFileSystem dfs = new DistributedFileSystem();
Path path = new Path("/user/hadoop-user/bar.txt");
if (!dfs.exists(path)) dfs.createNewFile(path);
FSDataOutputStream dos = dfs.create(path);
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
java.lang.NullPointerException
at org.apache.hadoop.dfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:390)
at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:667)
at ClickViewSessions$ClickViewSessionsMapper.map(ClickViewSessions.java:80)
at ClickViewSessions$ClickViewSessionsMapper.map(ClickViewSessions.java:65)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:47)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)
at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2209)
Run Code Online (Sandbox Code Playgroud)
问题是什么?
是否可以使用sed来更改选项卡(或任何其他文本)的背景颜色,以便,例如,我可以运行如下所示的内容?
somefunction | sed -e 's/(some pattern)/(set bg color)\1(unset bg color)/g'
Run Code Online (Sandbox Code Playgroud) 如果其他开发人员在提交到trunk之前将其本地分支推送到共享远程存储库(共享,备份或集中存储它们以便从多台计算机访问),我是否可以轻松地仅获取自己的分支或选择性地删除本地引用他人的远程分支?如果没有,有没有办法只在gitk中显示远程分支的子集,所以我可以看到我的分支相对于我的远程分支的位置,但没有其他人的远程分支混乱的图形?
我试图创建一个Future[List[Int]]从List[Future[Int]]使用指定的ExecutionContext.但是,我收到关于类型的第二个隐式参数cbf的错误CanBuildFrom.我不完全理解CanBuildFrom参数的目的,当我尝试省略它时,我遇到错误,如下所示:
- not enough arguments for method sequence: (implicit cbf: scala.collection.generic.CanBuildFrom[List[scala.concurrent.Future[Int]],Int,List[Int]]
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下,并提出解决方案吗?这是我当前的测试代码,它遇到上述编译错误:
val my: List[Future[Int]] = Future.successful(1) :: Future.successful(2) :: Future.successful(3) :: Nil
val zz: Future[List[Int]] = Future.sequence(my)(ec)
Run Code Online (Sandbox Code Playgroud) java中是否有一个thrift的标准库,可以促进许多正在发出的rpc的tcp连接的重用。似乎 thrift 不支持单个连接上的管道请求(尽管如果我错了请纠正我),但是当一个 rpc 完成时能够重用 thrift tcp 连接似乎会非常有益。我怎样才能最轻松地实现这一目标?
可能重复:
将整数除以3的最快方法是什么?
假设红利适合单个记忆单词,并且您可以使用除除法之外的所有标准指令.
有没有一个好的解决方案来执行类似的搜索
find . -name "*.*" | xargs grep "some text"
Run Code Online (Sandbox Code Playgroud)
但由于离线索引,搜索速度要快得多。支持通配符或轻型正则表达式会很好,但即使由于离线预处理而可以运行得非常快的原始文本搜索也很棒。
在bash函数中我写的是我通过ssh启动多个远程命令,并让它们在不同的后台进程中运行.这些过程中的每一个都会产生许多行文本,这些行被合并在一起然后进行排序.我的问题是有时这些线混合在一起.即一行开始打印,在该行完成打印之前,另一行开始在同一行上打印.
我的问题是什么是最简单的方法,使这个打印输出原子,以便各个线不混合在一起(穿插整条线是好的 - 我只是想让列排成一行)?我有一个想法是保存每个并行后台进程的输出,然后按顺序合并它们,但是我无法使它工作(如果我知道如何正确地执行它,这个方法对我来说应该很好).作为参考,这里是我正在尝试编写的脚本类型的概述:
foo() {
(
pids=()
for x in "$@"
do
(
ssh $x 'some-high-latency-command-with-200-lines-of-data-output'
) &
pids+=( $! )
done
for x in "${pids[@]}"
do
wait $x
done
) 2> /dev/null
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过类似下面的命令编译一个使用两个jar文件(trove和apache commons集合)的java源文件
javac -cp ~/.m2/repository/gnu/trove/trove/3.0.0/trove-3.0.0.jar:~/git-workspace/grid/libs/commons-collections-3.2.1.jar $(find . -name TimeJavaCode.java)
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,公共代码没有被成功包含,并且在我使用commons库时出现编译错误.如果我颠倒了导入的顺序,那么在我使用trove时会出现编译错误.我已经尝试导出到变量以及单引号和双引号cp字符串无效(在这种情况下,没有导出成功,并且存在编译错误的trove和commons).
我已经看过以下的问题:
包括两个罐子的正确方法是什么?
我是Netty的新手,我正在使用它来创建一个简单的http代理服务器,它接收来自客户端的请求,将请求转发给另一个服务器,然后将响应复制回原始请求的响应.一个额外的要求是我能够支持超时,因此如果代理服务器花费太长时间来响应,代理将自行响应并关闭与代理服务器的连接.
我已经使用Jetty实现了这样的应用程序,但是使用Jetty我需要使用太多的线程来阻止入站请求被阻止(这是一个使用非常少的内存或CPU的轻量级应用程序,但代理服务器的延迟是足够高,突发流量导致代理服务器排队,或需要太多线程).
根据我的理解,我可以使用Netty构建一个管道,其中每个阶段执行少量计算,然后释放它的线程并等待数据准备好执行管道中的下一个阶段.
我的问题是,这样的应用程序有一个简单的例子吗?到目前为止,我对基本的Netty教程的服务器代码进行了简单的修改,但它缺乏对客户端的所有支持.我看到了netty客户端教程,但我不确定如何混合两者中的代码来创建一个简单的代理应用程序.
public static void main(String[] args) throws Exception {
ChannelFactory factory =
new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool());
ServerBootstrap bootstrap = new ServerBootstrap(factory);
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
public ChannelPipeline getPipeline() {
return Channels.pipeline(
new HttpRequestDecoder(),
new HttpResponseEncoder(),
/*
* Is there something I can put here to make a
* request to another server asynchronously and
* copy the result to the response inside
* MySimpleChannelHandler?
*/
new MySimpleChannelHandler()
);
}
});
bootstrap.setOption("child.tcpNoDelay", true);
bootstrap.setOption("child.keepAlive", true);
bootstrap.bind(new InetSocketAddress(8080));
}
private …Run Code Online (Sandbox Code Playgroud)