百度人脸识别使用指南-私有化部署安装部署问题 | ||||||||||||||||||
产品推荐: 1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>; 2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>> 3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>> 4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>> 点击这里申请百度智能云特邀VIP帐号,立即体验人脸识别>>> 百度人脸识别使用指南-私有化部署安装部署问题 在私有化部署过程中遇到的部署相关问题,可以查看此文档进行解决。 单机部署问题安装[人脸数据库服务]1、数据库连接失败,报错: Can't connect to local Mysql server through socket '/home/dil-face/databus5535/tmp/mysql.sock' 解决方案: 1)终止databus进程: ps j -A |grep databus5535|grep -v "grep" 终止databus相关进程及其父进程
终止后请再次执行 ps j -A |grep databus5535|grep -v "grep" 核实,确保进程杀干净 2)卸载databus # 删除idl-face用户及其家目录,用于清理mysql底层数据 userdel -r idl-face 3)修改启动脚本 进入部署包内 original/package/Applications/face-server/project-conf/ # 通过sed命令将sleep 40s替换为sleep 140s sed -i 's/sleep 40s/sleep 140s/g' mysql_start.sh 修改后如下图所示: 4)重新部署数据库服务 bash mysql_start.sh
-------------------------------出现下面结果表示安装mysql成功------------------------------ 1. databus start 2. 190506 15:08:17 mysqld_safe Logging to '/home/idl-face/databus5535/log/mysql.err'. 3. 190506 15:08:17 mysqld_safe Starting mysqld daemon with databases from /home/idl- 4. face/databus5535/var 5. databus init start 6. databus grant ... 7. databus init start 8. databus init finish 2、数据库服务无法自动部署,如何进行手动部署并设置服务开机自动启动? (1)首先以root用户创建idl-face新用户 useradd idl-face
passwd 用户自定义 (2)解压original/package/Applications/face-server目录下的basepkg.tar.gz安装包,里面有databus5535目录,将其移到: /home/idl-face/databus5535/ (目录固定,不能为其他目录) mv ./databus5535 /home/idl-face/ (3)创建一个给mysql用的日志目录 /var/log/mariadb,并赋为 777 权限,并对 /home/idl-face/databus5535/ 赋权 mkdir -p /var/log/mariadb
chmod 777 /var/log/mariadb -R chown -R idl-face.idl-face /home/idl-face/databus5535/ (4)切换到idl-face用户 su idl-face (5)进入databus5535目录 cd /home/idl-face/databus5535/bin/ (6)启动服务 nohup ./mysqld_safe --defaults-file=../etc/my.cnf & (7)初始化数据库 cd /home/idl-face/databus5535/ bin/mysql -uroot -p'Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh' --default-character-set=utf8 < sql/database_and_grant.sql
bin/mysql -uroot -p'Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh' --default-character-set=utf8 < sql/face.sql (8)检查数据库是否启动成功 ps -ef | grep mysql (9)将数据库启动加入开机启动 vim /etc/rc.local
加入bash /home/idl-face/databus5535/sh/mysql_boot.sh (10)将idl-face用户禁用登录 (非常重要) 执行完成安装后,请一定要将idl-face用户禁用登录
方法:
1、切换到root用户
2、usermod -s /sbin/nologin idl-face 3、安装数据库报错error while loading shared libraries :libncurses.so.5…… 报错为缺少对应的libncurses.so.5
可以yum install libncurses.so.5或者yum install libncurses.so.*进行安装
之后ps -ef | grep mysql 查看数据库进程id kill掉
再执行userdel -r idl-face 将对应用户及文件删除
之后执行一键部署脚本或者手动部署即可 一键鉴权和人脸服务在一键安装鉴权服务和人脸识别服务过程中主要会出现以下几类问题,大家可以根据实际部署中遇到的问题进行排查解决。 (一)检查服务器环境
环境检查问题及解决方案
(二)安装Docker1.Docker安装过程中发生冲突 Docker需要使用从百度下载的安装部署包中的Docker,如果您本地已有Docker,需要确认Docker是否可以卸载。(如果Docker中已经装了服务就先保存下来移植到新建的部署包中的Docker中) 2.docker启动失败, Failed to program NAT chain: ZONE_CONFLICT: 'docker0' already bound to a zone 问题现象: 通过journalctl -u docker --no-pager 命令发现发现docker报错 failed to start daemon: Error initializing network controller: Error creating
default "bridge" network: Failed to program NAT chain: ZONE_CONFLICT: 'docker0'
already bound to a zone 解决方案: 该报错是因为防火墙的区域冲突,导致创建虚拟网络失败。解决方案如下: firewall-cmd --zone=trusted --remove-interface=docker0
firewall-cmd --reload
请参考 修改docker的默认存储路径
出现需要安装依赖的版本比系统自带版本低的情况,导致安装失败,详细报错如下 --> 解决依赖关系完成
错误:软件包:libsemanage-python-2.5-8.el7.x86_64 (Local_yum) 需要:libsemanage = 2.5-8.el7
已安装: libsemanage-2.5-14.el7.x86_64 (@anaconda) libsemanage = 2.5-14.el7
可用: libsemanage-2.5-8.el7.x86_64 (Local_yum) libsemanage = 2.5-8.el7
错误:软件包:audit-libs-python-2.7.6-3.el7.x86_64 (Local_yum) 需要:audit-libs(x86-64) = 2.7.6-3.el7
已安装: audit-libs-2.8.5-4.el7.x86_64 (@anaconda) audit-libs(x86-64) = 2.8.5-4.el7
可用: audit-libs-2.7.6-3.el7.x86_64 (Local_yum) audit-libs(x86-64) = 2.7.6-3.el7
错误:软件包:policycoreutils-python-2.5-17.1.el7.x86_64 (Local_yum) 需要:policycoreutils = 2.5-17.1.el7
已安装: policycoreutils-2.5-34.el7.x86_64 (@anaconda) policycoreutils = 2.5-34.el7
可用: policycoreutils-2.5-17.1.el7.x86_64 (Local_yum) policycoreutils = 2.5-17.1.el7
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest 2021-10-21 13:58:19,993 - 7100 - install - INFO - subprocess finished,cmd : ['yum', 'install', '-y', 'docker-ce'] 解决方案: 服务器联网条件下,则可以通过在线安装解决。 yum -y install docker-ce 如果yum安装 docker-ce 返回 no package docker-ce available,请使用如下方法解决: # 安装yum管理工具 yum install -y yum-utils # yum添加软件源 yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo # 刷新缓存 yum makecache fast # 安装docker-ce yum install docker-ce (三)安装Nvidia驱动
问题现象: 执行 python install.py install nvidia 报错如下图 解决方案:
yum install "kernel-devel-uname-r == $(uname -r)" 2)安装的时候在安装命令后面加上内核文件所在目录: python install.py in nvidia --kernel-source-path=/usr/src/kernels/内核文件目录
# 假如 uname -r 返回 3.10.0-1160.59.1.el7.x86_64 # 可下载对应的rpm包 kernel-devel-3.10.0-1160.59.1.el7.x86_64.rpm 进行安装 yum -y install kernel-devel-3.10.0-1160.59.1.el7.x86_64.rpm # 重新安装nvidia驱动 python install.py in nvidia --kernel-source-path=/usr/src/kernels/3.10.0-1160.59.1.el7.x86_64 2.出现ERROR: The Nouveau kernel driver is currently in use by your system 安装nvidia的过程中需要禁用nouveau,这个步骤需要重启才能生效。如果安装脚本执行完之后,最后的输出如下: 则需要重启机器。然后重新执行安装脚本即可。
如果当前服务器已经安装>17.06.2 版本的docker, 通过python2 install.py inall 或 python2 install.py in nvidia 安装nvidia-docker2 的话 一般会遇到与现有docker版本冲突的问题。 解决方案: 如果服务器可以联网的话,可以yum来在线安装 yum install -y nvidia-docker2 如果yum安装 nvidia-docker2 返回 no package nvidia-docker2 available,请使用如下方式解决: distribution=$(source /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
yum clean expire-cache
yum install -y nvidia-docker2
systemctl restart docker (四)安装人脸服务
问题现象: 执行python install.py inall 后报错 face-server 安装失败,请尝试执行 cd /home/baidu/work/face-server/project-conf/ && bash multi_docker_start.sh 解决方案: 请复制该命令手工执行,查看命令返回结果 cd /home/baidu/work/face-server/project-conf/ && bash multi_docker_start.sh 1)如果返回数据库连接失败 # 重新安装数据库 ps -ef | grep mysql # 找到对应的数据库进程kill 掉,或者pkill -u idl-face userdel -r idl-face # 删除用户及家目录 cd original/package/Applications/face-server/project-conf/ && bash mysql_start.sh # 重新执行安装脚本 iptables -I INPUT -p tcp --dport 5535 -j ACCEPT #(该步骤在部署mysql时有要求用户手动执行,避免遗漏,再次执行一遍) # 重新手动安装人脸服务 cd /home/baidu/work/face-server/project-conf/ && bash multi_docker_start.sh
# 手动load 人脸镜像 docker load -i /home/baidu/work/face-server/docker.tar # 重新手动安装人脸服务 cd /home/baidu/work/face-server/project-conf/ && bash multi_docker_start.sh 3)如果返回报错:“can not find nvidia-smi” # 一般是nvidia安装有问题,可执行重新安装 python install.py rm nvidia && python install in nvidia # 重新手动安装人脸服务 cd /home/baidu/work/face-server/project-conf/ && bash multi_docker_start.sh 4)如果返回报错:“docker: error response from daemon: network easypack not found“ # 手动创建network,名称为easypack docker network create --driver bridge easypack # 重新手动安装人脸服务 cd /home/baidu/work/face-server/project-conf/ && bash multi_docker_start.sh
问题现象: 执行 docker ps -a 发现 face-service-0-0 容器状态为created 解决方案: 可以执行 docker inspect ${人脸容器名} 进一步查看顶部报错信息,如 返回 “network easypack not found”,可执行 docker network create --driver bridge easypack
docker restart face-service-0-0 多机部署问题私有化多机部署出现问题请提交工单联系百度人员咨询解决。 文件下载问题md5值校验失败将部署包里refs.txt文件中下载失败的文件对应的md5改成- |