nutch on hadoop 遇到 ls: 无法访问data/segments: 没有那个文件或目录
2014-04-09 10:46
513 查看
将nutch部署在hadoop上运行
在generator完成之后,提示:
打开HDFS查看,发现明明有这个目录存在。
百思不得其解
在各种百度,google无解之后,想到了查看nutch的源码。
查看了一下crawl脚本的文件内容:
试了一下
于是我在脚本中加了
于是发现...输出了local
再认真研读脚本选择mode的代码
仔细一看自己的命令...
bin/crawl ....
应该是用 ./crawl 才能让脚本正常检测到 nutch .job那个文件。
进入bin,并将命令改成
即可正常运行。
Linux不会,不熟,真可怕...(脚本写得差,真可怕...脚本都不输出一些关键信息来帮助程序员判断。哎...)
bin/crawl hdfs://localhost:9000/user/hadoop/urls data http://localhost:8983/solr/ 1
在generator完成之后,提示:
ls: 无法访问data/segments/: 没有那个文件或目录 Operating on segment : Fetching :
打开HDFS查看,发现明明有这个目录存在。
百思不得其解
在各种百度,google无解之后,想到了查看nutch的源码。
查看了一下crawl脚本的文件内容:
# determines whether mode based on presence of job file mode=local if [ -f ../*nutch-*.job ]; then mode=distributed fi ...... if [ $mode = "local" ]; then SEGMENT=`ls $CRAWL_PATH/segments/ | sort -n | tail -n 1` else SEGMENT=`hadoop fs -ls $CRAWL_PATH/segments/ | grep segments | sed -e "s/\//\\n/g" | egrep 20[0-9]+ | sort -n | tail -n 1` fi echo "Operating on segment : $SEGMENT"
试了一下
hadoop fs -ls $CRAWL_PATH/segments/ | grep segments | sed -e "s/\//\\n/g" | egrep 20[0-9]+ | sort -n | tail -n 1在终端上运行结果正确。然后我就怀疑是模式就选错了mode,即mode的值是local而非distributed。
于是我在脚本中加了
echo $mode
于是发现...输出了local
再认真研读脚本选择mode的代码
# determines whether mode based on presence of job file mode=local if [ -f ../*nutch-*.job ]; then mode=distributed fi发现,mode选择distributed的条件是,父目录中有 nutch .job 这个文件。
仔细一看自己的命令...
bin/crawl ....
应该是用 ./crawl 才能让脚本正常检测到 nutch .job那个文件。
进入bin,并将命令改成
./crawl hdfs://localhost:9000/user/hadoop/urls data http://localhost:8983/solr/ 1
即可正常运行。
Linux不会,不熟,真可怕...(脚本写得差,真可怕...脚本都不输出一些关键信息来帮助程序员判断。哎...)
相关文章推荐
- ls: 无法访问/usr/sbin/smartctl: 没有那个文件或目录
- Hive在spark2.0.0启动时无法访问../lib/spark-assembly-*.jar: 没有那个文件或目录的解决办法
- Hive在spark2.0.0启动时无法访问../lib/spark-assembly-*.jar: 没有那个文件或目录的解决办法
- bash文件无法运行,提示没有那个文件或目录的解决方法
- CentOS下Mysql,无法找到mysql.h头文件(致命错误:mysql/mysql.h:没有那个文件或目录)
- ubuntu编译android,遇到asm/byteorder.h:没有那个文件或目录
- tar (child): jdk-7u71-linux-x64.tar.gz:无法 open: 没有那个文件或目录
- 乱码文件夹 rm 无法删除...": 没有那个文件或目录
- tail:无法打开“+54”读取数据:没有那个文件或目录
- 无法执行子进程 “Mozilla” (没有那个文件或目录)
- ubuntu编译android2.2.1,遇到asm/byteorder.h:没有那个文件或目录
- 解决debian JDK无法安装问题提示./install.sfx.: 没有那个文件或目录
- Ubuntu下安装android studio的时候,无法进入图形界面--/usr/lib/jdk1.8.0_60/jre/lib/i386/libawt_xawt.so: libXtst.so.6: 无法打开共享对象文件: 没有那个文件或目录
- rm 无法删除没有那个文件或目录
- Linux安装vsftp:install: 无法创建普通文件“/usr/local/man/man8/vsftpd.8”:没有那个文件或目录
- linux下用gcc编译c程序时遇到的问题: error: stdio.h: 没有那个文件或目录
- ubuntu cp: 无法获取”/boot/initrd.img-3.13.0-100-generic” 的文件状态(stat): 没有那个文件或目录
- Ubuntu 解决 shell ./ 没有那个文件或目录 而ls有 的方法
- tar: bzip2:无法 exec: 没有那个文件或目录
- 安装redis时遇到zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录