kaldi的egs/sitw实验调试过程(ssh.pl并行两台机器)
本实验在两台机器上运行。(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并行两台机器)相关推荐
- 关于SSH服务|两台机器之间建立免密通道
ssh:用在linux或者unix的远程控制服务协议 sshd占用22端口 在linux系统下面/etc/ssh文件中 sshd_config文件是服务器端的配置 ssh_config是客户端的配置 ...
- 打通两台机器的ssh功能
为什么80%的码农都做不了架构师?>>> 打通两台机器的ssh功能主要方便每次登录时候不用每次都需要输入密码,对于多台服务器这已经是必备了. 前提:机器需要安装ssh,详细安装 ...
- github ssh密钥_如何使用SSH密钥在一台机器上管理多个GitHub帐户
github ssh密钥 The need to manage multiple GitHub accounts on the same machine comes up at some point ...
- SSH配置(局域网两台ubuntu主机传输数据),scp or rsync命令
一:主机SSH 配置 本地主机和目的主机 需要安装ssh服务: sudo apt-get install ssh openssh-server 1.查看ssh服务的状态 输入以下命令: sudo se ...
- ssh 到另一台机器执行命令
#!/bin/bashpath=/home/game/glory_deepfm1/AP/rec1ssh -p30022 -Tq game@35.232.215.169 > /dev/null 2 ...
- Go运行时bug调试过程解析
原文:Debugging an evil Go runtime bug 作者:Hector Martin 翻译:雁惊寒 摘要:本文讲述了作者通过对硬件.内核进行分析来调试程序bug的整个过程.以下是译 ...
- 【网络通信与信息安全】之深入解析两台主机之间的通信过程和原理
一.前言 本文通过在 Docker 容器中执行命令,来深入了解两台主机之间的通信过程.阅读完本文,您将熟悉以下内容: Docker 的基本操作: 创建 socket 并发送 HTTP 请求: 路由表. ...
- ssh连接另一台主机
对SSH状态进行查看: sudo service ssh status 如果没有显示,则安装以下命令 sudo apt install openssh-server 两台机器上都安装后,通过ssh & ...
- Kaldi学习笔记:01(kaldi/egs/sitw/v1)run.sh解析
kaldi学习笔记-01-sitw 简介 脚本修改 run.sh 简介 研究生阶段入坑了说话人识别方向,最近在学习如何使用Kaldi提取i-vector进行说话人识别,在这里记录一下学习的笔记. 这次 ...
最新文章
- SQL SERVER 2008 创建,删除,添加表的主键
- 一次编译libmono.so的记录
- 使用vbscript脚本调用web服务
- go语言buffio与继承
- 物体检测轻松上手:精度与速度实现兼得
- js将文字填充与canvas画布再转为图片
- Asp.Net WebForm生命周期的详解
- 变形监测期末复习_寒假即将来临,中小学期末考试时间是什么时候?
- 在Content provider实现中使用SQLiteOpenHelper
- git 本地 更新到 仓库 仅仅 操作系统课程设计
- bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
- 凸优化学习笔记(五):凸优化算法、无约束优化算法、有约束优化算法
- 如何用Python脚本从文件读取数据?
- C#Winform使用火狐firefox内核GeckoWebBrowser
- matlab求极限分布,中心极限定理的Matlab演示
- 计算机启动时滴滴两声,电脑开机时出现滴滴两声后,不能开机,怎么回事。
- 五子棋 java 棋盘变大_【java求助!】我的五子棋棋盘怎么加边框~!!??
- webservice:com.sun.xml.internal.ws.server.ServerRtException: [failed to localize]
- 便捷的oh-my-zsh
- airpods pro是按压还是触摸_使用AirPods Pro一个月后,我是这么看待它的
热门文章
- js循环nodelist_js循环nodelist
- 解决windbg无法加载ntdll符号的问题
- TP5分页使用方法说明
- mysql口径,分析跑数口径与表内在关系逻辑
- 爸爸去哪儿第三季之刘诺一8.28第八期
- 联盛德W800开发板|SDK|make menuconfig|工具链|本地命令行编译|Windows11|msys|清华源|(4)、联盛德W800开发板命令行编译指南
- 国产W806 I2C硬件模块
- FusionCloud 桌面云时钟同步方案介绍
- Android lua编辑工具,Lua脚本编辑器app下载-Lua脚本编辑器手机版下载 v1.0.2_5577安卓网...
- Simulink基础【2】- PID控制器