ERROR common.AbstractJob: Unexpected SIMILARITY_EUCLIDEAN_DISTANCE while processing Job-Specific Opt

本文记录了使用Mahout的RecommenderJob过程中遇到的问题及解决办法。主要问题是在指定相似性计算方法时出现错误,并且在尝试指定输入目录时收到错误提示。最终通过更改命令参数解决了问题。

在使用mahout的RecommenderJob时遇到上面的问题,调用的命令如下:

bin/hadoop jar lib/mahout-core-0.5.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i input/recommenderjob.txt -o out/recommenderjob --similarityClassname SIMILARITY_EUCLIDEAN_DISTANCE


提示的错误它就说是Unexpected SIMILARITY_EUCLIDEAN_DISTANCE,也不知道是哪里错误,所以就直接把后面的参数删除了,改为下面的:

bin/hadoop jar lib/mahout-core-0.5.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i input/recommenderjob.txt -o out/recommenderjob


结果提示下面的错误:

13/04/09 16:25:05 ERROR common.AbstractJob: No input specified or -Dmapred.input.dir must be provided to specify input directory


并且在最末尾还有这样的提示:

Specify HDFS directories while running on hadoop; else specify local file       
system directories 

怎么会没有输入文件呢? 不是使用-i命令了么?

然后把-i改为 --input命令,然后就直接可以了。

猜测是否是0.5版本的mahout还不支持-i(仅支持--input)? 或者是我的环境配置有问题?

又或者是还有一些基础包没有加进来?

继续跟进中。。。

<think>嗯,用户遇到了一个关于start.sh脚本的错误,显示很多命令找不到,最后还有一个语法错误。我需要仔细分析这些错误的原因,然后给出解决方案。 首先,错误信息里每一行都是“not found”,比如roslaunch livox_ros_driver2 msg_MID360.launch: not found。这可能意味着脚本中的命令无法执行。常见的原因可能是路径问题,或者这些包没有正确安装。另外,第11行出现了语法错误,提示“)”意外的,这说明脚本中存在语法错误,可能是括号不匹配或者拼写错误。 接下来,我需要考虑每个可能的原因。首先检查脚本是否有执行权限,如果没有的话,用户需要用chmod +x start.sh。然后,检查每一行命令是否正确,特别是包名和launch文件是否存在。比如,livox_ros_driver2这个包是否安装正确?或者launch文件的路径是否正确? 另外,环境变量的问题也可能导致roslaunch找不到对应的包。用户是否在正确的ROS工作空间下,并且已经source了setup.bash文件?比如,如果用户用的是catkin workspace,可能需要source devel/setup.bash。 对于第11行的语法错误,用户需要检查该行是否有拼写错误,比如多余的括号或者缺少引号。可能是在编写脚本,不小心输入了错误的符号,比如在变量赋值用了括号,或者if语句的结构不正确。 可能的解决步骤包括:1. 给予执行权限;2. 检查每一行命令是否正确,确认包和launch文件存在;3. 检查环境变量是否正确source;4. 检查第11行的语法错误,修正括号或符号错误。 需要提醒用户逐步排查,从执行权限开始,再到命令的正确性,最后检查语法错误。同,建议用户使用shellcheck工具来检查脚本的语法问题,或者手动检查第11行附近的代码结构。</think>这个错误提示表明你的 `start.sh` 脚本在执行过程中遇到了以下问题: --- ### **错误原因分析** 1. **命令未找到(`not found`)** - 第4-10行报错 `roslaunch` 或 `rosrun` 命令未找到,可能原因: - **ROS环境未正确配置**:未执行 `source /opt/ros/<版本>/setup.bash` 或工作空间的 `devel/setup.bash`。 - **软件包未安装**:如 `livox_ros_driver2`、`fast_lio_localization` 等包未安装或路径错误。 - **权限问题**:脚本或相关文件未赋予可执行权限。 2. **语法错误(`Syntax error: ")" unexpected`)** - 第11行存在语法错误,可能是: - 括号 `)` 未闭合或多余。 - 变量赋值错误(如 `VAR=value` 中间有空格)。 - Shell脚本关键字拼写错误(如 `if`、`then` 不匹配)。 --- ### **逐步解决方案** #### **第一步:检查脚本权限** 确保脚本可执行: ```bash chmod +x start.sh ``` #### **第二步:检查ROS环境** 1. 在终端中手动加载ROS环境(根据你的ROS版本替换 `<版本>`): ```bash source /opt/ros/<版本>/setup.bash source ~/catkin_ws/devel/setup.bash # 若使用自定义工作空间 ``` 2. 验证ROS命令是否可用: ```bash which roslaunch # 应返回路径如 /opt/ros/<版本>/bin/roslaunch ``` #### **第三步:检查软件包安装** 1. 确认所有依赖包已正确安装: ```bash # 示例:检查livox_ros_driver2是否存在 roscd livox_ros_driver2 ``` - 如果提示 `roscd: No such package/stack`,说明包未安装,需通过源码或二进制安装。 2. 检查launch文件路径: - 确认 `msg_MID360.launch`、`localization_MID360.launch` 等文件实际存在于对应包的 `launch` 目录中。 #### **第四步:修复语法错误** 检查脚本第11行附近的代码,常见问题示例: - **错误示例**: ```bash if [ $var = "test" ) ] # 错误:括号不匹配 ``` - **修正后**: ```bash if [ "$var" = "test" ] # 正确:使用方括号闭合 ``` --- ### **补充建议** 1. **逐行调试脚本**: 手动执行脚本中的每一行命令,定位具体失败点: ```bash ./start.sh ``` 2. **使用ShellCheck工具**: 安装 [ShellCheck](https://www.shellcheck.net/) 检查脚本语法: ```bash sudo apt install shellcheck shellcheck start.sh ``` 3. **检查依赖项**: 确保所有ROS包已通过 `rosdep` 安装依赖: ```bash rosdep install --from-paths src --ignore-src -y ``` --- 如果仍有问题,建议提供 `start.sh` 的完整内容和操作系统/ROS版本信息,以便进一步诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值