webdevqa.jp.net

FUSEエラー:トランスポートエンドポイントが接続されていません

Fuseファイルシステムを実装しようとしています。私はこのエラーを受け取っています:

mountDirにアクセスできません:トランスポートエンドポイントが接続されていません

これはプログラムの関連部分です。 MirrorDirMountDirの2つのディレクトリがあり、すべてのコードと同じディレクトリに存在します。私はこのようなプログラムを呼び出しています:

./myFS -o nonempty -o allow_other MirrorDir MountDir

誰かが私が間違っていることを見ることができますか?

static struct Fuse_operations xmp_oper = {
    .getattr    = xmp_getattr,
    .readdir    = xmp_readdir,
    .open       = xmp_open,
    .read       = xmp_read,
};

int main(int argc, char *argv[]) {
    int Fuse_stat;
    char* mirrorDir;

    mirrorDir = malloc(sizeof(strlen(argv[argc-2]+1)));
    if (mirrorDir == NULL) {
        perror("main calloc");
        abort();
    }

    // Pull the rootdir out of the argument list and save it in my internal data
    mirrorDir = realpath(argv[argc-2], NULL);

    argv[argc-2] = argv[argc-1];
    argv[argc-1] = NULL;
    argc--;

    // turn over control to Fuse
    fprintf(stderr, "about to call Fuse_main\n");   
    Fuse_stat = Fuse_main(argc, argv, &xmp_oper, mirrorDir);
    fprintf(stderr, "Fuse_main returned %d\n", Fuse_stat);
    return Fuse_stat;
}
52
Alex

これは通常、ファイルシステムのクラッシュによりマウントディレクトリがマウントされたままになっていることが原因です。マウントポイントの親ディレクトリに移動し、fusermount -u YOUR_MNT_DIR

これでうまくいかない場合は、Sudo umount -l YOUR_MNT_DIR

98
Jonathan Brown

Sshファイルシステム(sshfsコマンドライン)をマウントし、マウントしたままにして、同じ問題が発生しました、fusermount -u YOUR_MNT_DIRは私の問題を解決しました。ありがとう

12
user2997418

/ etc/hostsをチェックして、マスターノードが完全修飾名であることを確認できます。詳細については https://community.cloudera.com/t5/CDH-Manual-Installation/Setting-the-NameNode-port-8020-to-listen-outside-of-localhost/td-p/2257 および Hadoopエコシステム用のhostsファイルの設定方法

0
Thiago Mata

親ディレクトリに移動して、戻ってください。私のために働きました。

0
mavesonzini