我正在使用YARN环境运行spark程序,带有选项--master yarn-cluster
.
当我打开一个spark应用程序的应用程序主人时,我Scheduler Delay
在一个阶段看到了很多.其中一些甚至超过10分钟.我想知道它们是什么以及为什么需要这么长时间?
更新:通常在执行程序真正开始执行任务之前,像aggregateByKey这样的操作会花费更多的时间(即调度程序延迟).为什么?
我是一个团队,其中一些开发人员正在使用Eclipse,其他人正在使用IntelliJ 12.1.3,所有这些都在Windows 7下.Eclipse用户注意到.java文件属性的差异.使用cygwin的ls命令可以看到特定的更改:可执行位在用户,组和其他上设置.是什么导致这个?有没有办法告诉IntelliJ不要嘲笑这个位?
利用TDD驱逐线程安全代码的好方法是什么?例如,假设我有一个工厂方法,它使用延迟初始化来创建一个类的一个实例,然后返回它:
private TextLineEncoder textLineEncoder;
...
public ProtocolEncoder getEncoder() throws Exception {
if(textLineEncoder == null)
textLineEncoder = new TextLineEncoder();
return textLineEncoder;
}
Run Code Online (Sandbox Code Playgroud)
现在,我想以良好的TDD方式编写测试,迫使我使这段代码成为线程安全的.具体来说,当两个线程同时调用此方法时,我不想创建两个实例并丢弃一个实例.这很容易做到,但我怎样才能编写一个让我这样做的测试?
我在Java中问这个问题,但答案应该更广泛适用.
我是Java的nio包的新手,我无法弄清楚如何从一个目录到另一个目录中获取文件.我的程序应该根据某些条件读取目录及其子目录和进程文件.我可以使用Files.walkFileTree获取所有文件但是当我尝试移动它们时,我得到一个java.nio.file.AccessDeniedException.
如果我尝试复制它们,我会收到DirectoryNotEmptyException.我无法在Google上找到任何帮助.我确信必须有一种简单的方法将文件从一个目录移动到另一个目录,但我无法弄清楚.
这是我正在尝试获取DirectoryNotEmptyException:
private static void findMatchingPdf(Path file, ArrayList cgbaFiles) {
Iterator iter = cgbaFiles.iterator();
String pdfOfFile = file.getFileName().toString().substring(0, file.getFileName().toString().length() - 5) + ".pdf";
while (iter.hasNext()){
Path cgbaFile = (Path) iter.next();
if (cgbaFile.getFileName().toString().equals(pdfOfFile)) {
try {
Files.move(file, cgbaFile.getParent(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在遍历文件列表,尝试将.meta文件与同名的.pdf匹配.找到匹配后,我将元数据文件移动到包含pdf的目录.
我得到此异常:sun.nio.fs.WindowsFileSystemProvider中的sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:372)中的java.nio.file.DirectoryNotEmptyException:C:\ test\CGBA-RAC\Part-A .move(WindowsFileSystemProvider.java:287)位于cgba.rac.errorprocessor的cgba.rac.errorprocessor.ErrorProcessor.findMatchingPdf(ErrorProcessor.java:149)的java.nio.file.Files.move(Files.java:1347).错误处理器.matchErrorFile(ErrorProcessor.java:81)at cgba.rac.errorprocessor.ErrorProcessor.main(ErrorProcessor.java:36)
昨天我重构了我的项目,我改变了我的包的布局(我将一些包移到了另一个包中,创建了新的包等).但是现在,当我尝试运行JUnit测试时,我会得到NoSuchMethodError
重构后更改名称的方法.此外,当我更改方法中的其他代码时,IDEA仍然运行旧代码..我试图在文件菜单中运行"无效缓存",我也尝试重新启动计算机 - 没有结果.哪里可以有问题?
编辑:昨天移动包后IDEA没有正确更改.java
文件中的包声明,所以我手动更改了它们
当我在cassandra中创建表条目时以及blob类型是一个不错的选择时,我试图更好地理解设计决策选择.
我意识到我真的不知道何时选择blob作为数据类型,因为我不确定blob到底是什么(或者缩写代表什么).因此,我决定阅读以下有关数据类型blob的文档:
http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/blob_r.html
斑点
Run Code Online (Sandbox Code Playgroud)Cassandra 1.2.3 still supports blobs as string constants for input (to allow smoother transition to blob constant). Blobs as strings are
现已弃用,不久将不再受支持.如果您使用字符串作为blob,请更新客户端代码以切换到blob常量.blob常量是由0xX +定义的十六进制数,其中hex是十六进制字符,例如[0-9a-fA-F].例如,0xcafe.
Run Code Online (Sandbox Code Playgroud)Blob conversion functions A number of functions convert the native types into binary data (blob). For every <native-type> nonblob type supported by CQL3, the
typeAsBlob函数接受类型为type的参数,并将其作为blob返回.相反,blobAsType函数采用64位blob参数并将其转换为bigint值.例如,bigintAsBlob(3)为0x0000000000000003,blobAsBigint(0x0000000000000003)为3.
我得到的是它只是一个很长的十六进制/二进制.但是,当我将它用作潜在表的列类型以及它如何比其他类型更好或更差时,我并不欣赏.此外,通过一些属性可能是一个很好的方法来弄清楚blob有什么好处.
有人将应用程序从GWT 1.5升级到GWT 1.6吗?我想听听你是否有一个你喜欢的策略,或者你是否需要一个策略.
显然,我可以阅读升级文档.只是想知道是否有人完成升级并点击任何陷阱.
我正在尝试在示例应用程序中运行GWT单元测试.我跑了
cmd /c /java/gwt-windows-1.6.4/webAppCreator.cmd -out gwttasks com.gwttasks.GwtTasks
在junit-4.5.jar中复制到lib目录中,并将其添加到类路径中.
冉:
cmd /c /java/gwt-windows-1.6.4/junitCreator.cmd -junit lib/junit-4.5.jar -module com.gwttasks.GwtTasks -eclipse GwtTasks com.gwt tasks.unit.GwtJunit
当我尝试运行任何生成的cmd文件(例如GwtJunit-hosted.cmd)或任何启动文件时,我收到以下错误.我见过的所有网页都说将测试源添加到类路径中,但它已经存在,所以这不是问题所在.有人见过这个吗?
com.google.gwt.junit.JUnitFatalLaunchException: The test class 'com.gwttasks.unit.GwtJunit' was not found in module 'com.gwttasks.GwtTasks'; no compilation unit for that type was seen at com.google.gwt.junit.JUnitShell.checkTestClassInCurrentModule(JUnitShell.java:390) at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:626) ...
我有一些Hadoop映射,并减少覆盖受保护方法的类.声纳标记这些:
Unused protected method
Plugin: squid Key: UnusedProtectedMethod
Run Code Online (Sandbox Code Playgroud)
我知道Sonar中有一个解决方案可以解决这个问题,而且在某些时候我的组织会使用带有该修复的版本.与此同时,我想禁用警告.我试过了:
@SuppressWarnings("UnusedProtectedMethod")
Run Code Online (Sandbox Code Playgroud)
和
@SuppressWarnings("SQUID.UnusedProtectedMethod")
Run Code Online (Sandbox Code Playgroud)
无济于事.
@SuppressWarnings适用于PMD问题,@ edu.umd.cs.findbugs.annotations.SuppressWarnings(value ="blah")适用于findbugs问题.鱿鱼问题还有其他变种,还是只是不支持?
我更改了很多文件,我意识到我的方法不好。所以,我想尝试另一种方法。在这种情况下,我知道两种解决方案:
我正在寻找的是以某种方式保存我当前的更改(不丢失我当前的更改),然后丢弃一些我不想要的更改,同时保留其余更改。在这种情况下,如果我意识到我的第二种方法也不起作用,那么我只需要切换到以前的状态。
有这样的功能吗?