安装job-server遇到的一些问题

本文介绍如何在CentOS 6.5上安装并配置Job-Server,包括下载压缩包、解压、设置配置文件等内容。解决启动过程中出现的警告与错误,如Java HotSpot警告和域名解析失败问题。

在centos 6.5下安装job-server:

  1. 下载job-server.tar.gz压缩包,并解压
  2. 修改配置文件settings.sh如下
  3. INSTALL_DIR=/home/spark/job-server //jobserver 解压目录
    LOG_DIR=/var/log/job-server //jobserver log输出目录
    SPARK_VERSION=2.2.1 //spark 版本
    SPARK_HOME=/home/spark //spark安装目录
    SPARK_CONF_DIR=$SPARK_HOME/conf //对应spark配置文件目录
  4. 修改local.conf 配置文件,因为只使用了本机,修改一行即可:
  5. master = "local[4]" // 取消注释
  6. 到这里就安装完成,在job-server解压路径下:
  7. ./server_start.sh // 启动
  8. ./server_stop.sh // 停止
  9. 但是在启动日志中发现报错:Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
    错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: .: .: 域名解析暂时失败
  10. 修改/etc/hosts,添加上面unknownHostException后面的内容:xx
  11. 127.0.0.1 localhost xx
    参考:https://blog.youkuaiyun.com/zqz_qizheng/article/details/54971219
  12. curl 验证:curl http://localhost:8090,可以访问到,表示启动成功。
<think>我们遇到了一个错误:`tar: opt/tpapp/springboot/snail-job-server-exec.jar: Cannot stat: No such file or directory` 这个错误表明在容器内找不到指定的文件或目录。以下是详细的解决步骤: ### 错误原因分析 1. **路径错误**:最可能的原因是容器内路径不正确。注意容器内的路径是相对于容器根目录的。 - 您使用了 `opt/tpapp/...` 而不是 `/opt/tpapp/...`(缺少开头的斜杠)。在容器内,绝对路径必须以 `/` 开头。 2. **文件不存在**:容器内可能确实不存在该文件。 3. **Pod名称或容器状态问题**:Pod可能不存在,或者容器未正常运行。 ### 解决步骤 #### 步骤1:检查容器内文件是否存在 使用 `kubectl exec` 命令验证文件是否存在: ```bash kubectl exec -n neweb snailjob-66fc89b76-zqcts -- ls -l /opt/tpapp/springboot/snail-job-server-exec.jar ``` 如果文件存在,将显示文件详细信息;如果不存在,会提示“No such file or directory”。 **注意**:这里使用了绝对路径 `/opt/tpapp/...`。 #### 步骤2:修正路径(如果步骤1发现文件存在) 在 `kubectl cp` 命令中,容器内的路径必须使用绝对路径(以`/`开头): ```bash kubectl cp -n neweb snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar /opt/tpapp/neweb/app/snailjob/ ``` #### 步骤3:检查Pod状态 确保Pod处于Running状态: ```bash kubectl -n neweb get pod snailjob-66fc89b76-zqcts ``` #### 步骤4:多容器Pod的情况 如果Pod中有多个容器,必须使用 `-c` 指定容器名: ```bash kubectl cp -n neweb -c <容器名> snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar /opt/tpapp/neweb/app/snailjob/ ``` #### 步骤5:检查容器内是否有tar命令 `kubectl cp`依赖容器内的tar命令。如果容器内没有tar,需要安装(例如在基于Alpine的容器中): ```bash kubectl exec -n neweb snailjob-66fc89b76-zqcts -- apk add --no-cache tar ``` ### 完整修正命令示例 假设上述检查都通过,正确命令为: ```bash kubectl cp -n neweb snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar /opt/tpapp/neweb/app/snailjob/ ``` 如果目标目录不存在,先创建: ```bash mkdir -p /opt/tpapp/neweb/app/snailjob/ ``` ### 其他可能错误 如果容器内文件路径包含空格或特殊字符,使用单引号包裹路径(但通常不建议在路径中使用特殊字符): ```bash kubectl cp -n neweb 'snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar' /opt/tpapp/neweb/app/snailjob/ ``` §§相关问题§§ 1. 如何在不登录容器的情况下递归复制整个目录? 2. 当容器内缺少 `tar` 命令时,除了安装还有哪些替代复制方案? 3. 如何将本地文件复制到 Kubernetes Pod 中的指定路径? 4. 使用 `kubectl cp` 复制文件时如何避免覆盖现有文件? 5. 在 Kubernetes 中如何安全地删除 Pod 中的文件? </think> ### 错误原因与解决方案 您遇到的错误 `tar: opt/tpapp/springboot/snail-job-server-exec.jar: Cannot stat: No such file or directory` 表明在容器内找不到指定文件。以下是逐步解决方案: --- ### 1. **验证容器内文件是否存在** ```bash # 列出容器内目录内容 kubectl exec -n neweb snailjob-66fc89b76-zqcts -- ls -l /opt/tpapp/springboot/ # 检查具体文件是否存在 kubectl exec -n neweb snailjob-66fc89b76-zqcts -- test -f /opt/tpapp/springboot/snail-job-server-exec.jar && echo "存在" || echo "不存在" ``` - 如果文件不存在,需重新确认容器内路径 - 如果目录不存在,检查容器镜像的文件结构 --- ### 2. **修正路径格式(关键步骤)** **错误原因**:容器路径缺少开头的 `/` **错误路径**:`opt/tpapp/...` **正确路径**:`/opt/tpapp/...` ```bash kubectl cp -n neweb snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar /opt/tpapp/neweb/app/snailjob/ ``` --- ### 3. **处理多容器Pod** 如果Pod包含多个容器,需指定容器名: ```bash # 先查看Pod中的容器列表 kubectl get pod -n neweb snailjob-66fc89b76-zqcts -o jsonpath='{.spec.containers[*].name}' # 复制时使用-c指定容器 kubectl cp -n neweb -c <容器名> snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar /opt/tpapp/neweb/app/snailjob/ ``` --- ### 4. **处理容器文件系统限制** 如果容器使用只读文件系统或临时存储: ```bash # 检查容器挂载点 kubectl describe pod -n neweb snailjob-66fc89b76-zqcts | grep -A5 "Mounts" # 替代方案:通过临时Pod复制 kubectl create -n neweb deployment tmp-copier --image=alpine -- sleep 3600 kubectl cp tmp-copier-xxxx:/path/... ``` --- ### 5. **完整修复命令示例** ```bash # 创建本地目录(如果不存在) sudo mkdir -p /opt/tpapp/neweb/app/snailjob/ # 使用绝对路径复制 kubectl cp -n neweb snailjob-66fc89b76-zqcts:/opt/tpapp/springboot/snail-job-server-exec.jar /opt/tpapp/neweb/app/snailjob/ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值