本实验在两台机器上运行。(172.16.46.105和172.16.46.108)

1. 按照kaldi官网的parallel部分的doc进行配置,需要将cmd.sh中的queue.pl改成ssh.pl

2. 需要在当前运行脚本的目录下创建.queue/machines文件,其中每一行是能够连接的机器的名字或者ip

问题与解决:

1. .queue/machines在脚本的当前目录下,即我在egs/sitw/v1下面运行脚本,所以.queue/machines也在此目录下

2. .queue/machines中不需要写主机的ip,我开始写了结果要求我输入主机的密码。。。真是坑,所以最终..queue/machines文件中的内容只有一行:172.16.46.108

3. 注意在这之前把NFS配置好,是两台机器都能通过同一个directory访问到相应的数据,当然必须还要把免密码登陆的功能配置好,我这里把两方的免密ssh登陆都配置完了。

4. 运行的时候发现错误:

ssh_exchange_identification: read: Connection reset by peer
ssh_exchange_identification: read: Connection reset by peer
ssh_exchange_identification: Connection closed by remote host
ssh_exchange_identification: Connection closed by remote host
ssh_exchange_identification: Connection closed by remote host
ssh_exchange_identification: Connection closed by remote host

。。。。。。。

这是因为ssh的最大连接数超过限制了,因为多进程并行开的连接数很多,默认的最大连接数只有10。解决办法:

vi /etc/ssh/sshd_config
把#MaxStartups 10 的注释去掉
修改10为更大的数值
重启sshd服务
service sshd restart

这里为了保险我把两个机器的操作都做了一遍。

5. 之后出现让我自己输入105的机器的密码的问题,这是因为我把.queue/machines中写多了一行105的ip,因为看ssh.pl中的说明可能需要带上自己的主机的ip,但是这里发现错误了,删除了105这一行就正确了。

6. 继续运行,仍然报错,现在是sox not found的情况,因为代码中flac格式的音频文件用到了sox软件来转码。所以安装sox软件即可解决。

7.还有一个开始就出现的问题是,两个机器分别作用到一部分文件上,此时权限出现了问题,暂时的办法是每一个stage都加上chmod 777的命令,但是还不知道能不能全部运行通,目前还在调试过程中。

8. 终于跑起来了,但是查看进程发现只有108的机器在计算,说明.queue/machines还是应该把两个机器的ip都写上,但是写上仍然报错说需要输入105的密码

9. 最终解决:使用105生成新的ssh的密玥对,然后上传到自己即105,上面,这样就相当于实现了105登陆105,,,这个功能没啥用,但是kaldi的这个ssh就要这样做才行,奇葩的设计。。。。吐槽100年。。。。此时因为生成了新的密玥对,所以又要重新上传到108,否则108不能无密码登陆到105了,但是之前108上传的自己的密玥到105没被更改,所以仍然可以105登陆到108.

命令过程是:

ssh-keygen -t rsa
ssh-copy-id jyh@172.16.46.105

ssh-copy-id jyh@172.16.46.105

10. 运行过程中出现文件权限问题,因为两台机器产生的文件对彼此的权限存在问题,此时直接在代码中加chmod命令有问题,因为不知道啥时候脚本会对哪些文件进行什么处理。此时使用umask。具体配置如下:

umask一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置,由于profile的读取有一定的顺序: 
/etc/profile->$HOME/.profile->$HOME/.bash_profile,所以在.profile里面设置的umask会被后面的profile覆盖了,推荐设置在$HOME/.bash_profile

我在$HOME/.bashrc中配置:umask 000(这里只需要输入3位即可,此时显示为四位,第一位表示属主,不是权限位,此时的权限对应的时文件666,文件夹777)

然后source .bashrc以此使其生效即可。

11.仍然还有权限问题,估计是之前生成的文件没有清空导致的,现在删除之前生成的文件重新从第一步开始跑程序,还是一样的有权限问题,没办法了只有修改对D盘上面的jyh的目录执行chmod 777命令了,D盘本身是有读写权限的,所以不用更改D目录的权限。再试一遍,好吧放弃了,那就手动运行到了按回车,这样总比一台机器快。

12.无法忍受一直要求我yes和no的询问,所以最终决定解决掉该问题,我想了一下是nfs设置可能有问题,经过查询终于解决了,问题是因为nfs的用户映射不对,我现在改成用户映射到jyh上面,这样108创建的文件对于105来说就属于jyh这个用户,这样105的jyh就可以删除文件和修改文件了。具体做法:

修改/etc/exports文件中的内容为home/jyh/D *(rw,anonuid=1001,anongid=1001,all_squash,sync,no_subtree_check),其中的1001分别指映射的用户和属组,这里即为jyh用户的属组以及id,可以通过id命令查看用户的这些信息

然后sudo exportfs -rv 重新刷新exports中的信息,使其设置生效即可。

后期其他问题继续append。。。。。

kaldi的egs/sitw实验调试过程(ssh.pl并行两台机器)相关推荐

  1. 关于SSH服务|两台机器之间建立免密通道

    ssh:用在linux或者unix的远程控制服务协议 sshd占用22端口 在linux系统下面/etc/ssh文件中 sshd_config文件是服务器端的配置 ssh_config是客户端的配置 ...

  2. 打通两台机器的ssh功能

    为什么80%的码农都做不了架构师?>>>    打通两台机器的ssh功能主要方便每次登录时候不用每次都需要输入密码,对于多台服务器这已经是必备了. 前提:机器需要安装ssh,详细安装 ...

  3. github ssh密钥_如何使用SSH密钥在一台机器上管理多个GitHub帐户

    github ssh密钥 The need to manage multiple GitHub accounts on the same machine comes up at some point ...

  4. SSH配置(局域网两台ubuntu主机传输数据),scp or rsync命令

    一:主机SSH 配置 本地主机和目的主机 需要安装ssh服务: sudo apt-get install ssh openssh-server 1.查看ssh服务的状态 输入以下命令: sudo se ...

  5. ssh 到另一台机器执行命令

    #!/bin/bashpath=/home/game/glory_deepfm1/AP/rec1ssh -p30022 -Tq game@35.232.215.169 > /dev/null 2 ...

  6. Go运行时bug调试过程解析

    原文:Debugging an evil Go runtime bug 作者:Hector Martin 翻译:雁惊寒 摘要:本文讲述了作者通过对硬件.内核进行分析来调试程序bug的整个过程.以下是译 ...

  7. 【网络通信与信息安全】之深入解析两台主机之间的通信过程和原理

    一.前言 本文通过在 Docker 容器中执行命令,来深入了解两台主机之间的通信过程.阅读完本文,您将熟悉以下内容: Docker 的基本操作: 创建 socket 并发送 HTTP 请求: 路由表. ...

  8. ssh连接另一台主机

    对SSH状态进行查看: sudo service ssh status 如果没有显示,则安装以下命令 sudo apt install openssh-server 两台机器上都安装后,通过ssh & ...

  9. Kaldi学习笔记:01(kaldi/egs/sitw/v1)run.sh解析

    kaldi学习笔记-01-sitw 简介 脚本修改 run.sh 简介 研究生阶段入坑了说话人识别方向,最近在学习如何使用Kaldi提取i-vector进行说话人识别,在这里记录一下学习的笔记. 这次 ...

最新文章

  1. SQL SERVER 2008 创建,删除,添加表的主键
  2. 一次编译libmono.so的记录
  3. 使用vbscript脚本调用web服务
  4. go语言buffio与继承
  5. 物体检测轻松上手:精度与速度实现兼得
  6. js将文字填充与canvas画布再转为图片
  7. Asp.Net WebForm生命周期的详解
  8. 变形监测期末复习_寒假即将来临,中小学期末考试时间是什么时候?
  9. 在Content provider实现中使用SQLiteOpenHelper
  10. git 本地 更新到 仓库 仅仅 操作系统课程设计
  11. bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
  12. 凸优化学习笔记(五):凸优化算法、无约束优化算法、有约束优化算法
  13. 如何用Python脚本从文件读取数据?
  14. C#Winform使用火狐firefox内核GeckoWebBrowser
  15. matlab求极限分布,中心极限定理的Matlab演示
  16. 计算机启动时滴滴两声,电脑开机时出现滴滴两声后,不能开机,怎么回事。
  17. 五子棋 java 棋盘变大_【java求助!】我的五子棋棋盘怎么加边框~!!??
  18. webservice:com.sun.xml.internal.ws.server.ServerRtException: [failed to localize]
  19. 便捷的oh-my-zsh
  20. airpods pro是按压还是触摸_使用AirPods Pro一个月后,我是这么看待它的

热门文章

  1. js循环nodelist_js循环nodelist
  2. 解决windbg无法加载ntdll符号的问题
  3. TP5分页使用方法说明
  4. mysql口径,分析跑数口径与表内在关系逻辑
  5. 爸爸去哪儿第三季之刘诺一8.28第八期
  6. 联盛德W800开发板|SDK|make menuconfig|工具链|本地命令行编译|Windows11|msys|清华源|(4)、联盛德W800开发板命令行编译指南
  7. 国产W806 I2C硬件模块
  8. FusionCloud 桌面云时钟同步方案介绍
  9. Android lua编辑工具,Lua脚本编辑器app下载-Lua脚本编辑器手机版下载 v1.0.2_5577安卓网...
  10. Simulink基础【2】- PID控制器