小编use*_*487的帖子

java jstack工具内存不足或附加权限不足

我真的很困惑:在我的Windows 2008r2中,我有一个Windows服务,实际上它是一个以SYSTEM用户身份运行的java进程.现在,我将Jstack原始用于该服务.但它发生错误:

 insufficient memory or insufficient privilege to attach
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用Jstack的选项-F,它可以很好地工作.我查看了jdk的源代码,它使用了一个BugSpotAgent类来完成上面的操作.

我想知道我无法原始使用Jstack的根本原因,是SYSTEM用户权限问题吗?我也尝试使用PsExec.exe(一个工具)来原始运行我的Jstack(这意味着我将使用SYSTEM用户运行Jstack),但它仍然无法工作.

你能帮助我吗?

感谢和问候!

java memory privilege jstack

7
推荐指数
1
解决办法
7533
查看次数

hadoop2.2.0追加文件发生AlreadyBeingCreatedException

我遇到了关于hadoop2.2.0追加操作的问题.我通过HDFS java API将一些字节附加到hdfs文件.首先,如果在附加操作之前文件不存在,我将创建目标文件,代码如下:

String fileUri = "hdfs://hadoopmaster:9000/in/append_test.txt";
// create the hdfs file, if not exists
HdfsClient.createPathIfNotExist(fileUri);
// do 5 times append operation
for (int i=0; i<5; i++){
    HdfsClient.appendTo(fileUri, ("append content"+i).getBytes("UTF-8"));
}
Run Code Online (Sandbox Code Playgroud)

createPathIfNotExist函数:

Path p = null;
FileSystem fs = null;
try {
    fs = FileSystem.get(URI.create(uri), conf);
    p = new Path(uri);
    if (!fs.exists(p)) {
    if (uri.charAt(uri.length() - 1) == '/'){ //create a directory
        if(fs.mkdirs(p)){
               // create successfully
            }
        }else{ //create a file
        FSDataOutputStream fos = fs.create(p);
            fos.close();
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java hadoop append

5
推荐指数
1
解决办法
4383
查看次数

标签 统计

java ×2

append ×1

hadoop ×1

jstack ×1

memory ×1

privilege ×1