因为nutch存储需要hadoop和hbase,所以先把hadoop和hbase安装起来。
网上有许多通过Cygwin来搭建hadoop开发环境其实没有必要,在hadoop官方文档中已经说hadoop2.x版本的hadoop没有必要也不支持Cygwin。官方文档(Do not attempt to run the installation from within Cygwin. Cygwin is neither required nor supported.)这一点我差一点就入坑了,刚开始我不死心就翻文档,发现了这句话。
1、Starting a Single Node (pseudo-distributed) Cluster
1.1首先编辑hadoop-env.cmd ,把下列内容添加到文件末尾
set HADOOP_PREFIX=c:\deploy #hadoop安装根目录
set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
set YARN_CONF_DIR=%HADOOP_CONF_DIR%
set PATH=%PATH%;%HADOOP_PREFIX%\bin
1.2编辑core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dirname>
<value>file:/D:/hadoop2.5.2/tmpvalue>
property>
<property>
<name>fs.default.namename>
<value>hdfs://localhost:9000value>
property>
configuration>
1.3编辑hdfs-site.xml
<configuration>
<property>
<name>dfs.replicationname>
<value>1value>
property>
<name>dfs.namenode.name.dirname>
<value>file:/D:/hadoop2.5.2/tmp/namenodevalue>
property>
<property>
<name>dfs.datanode.name.dirname>
<value>file:/D:/hadoop2.5.2/tmp/datanodevalue>
property>
configuration>
1.4编辑slaves文件
查看文件中是否有localhost没有的话,添加localhost。
1.5编辑mapred-site.xml
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapred.job.trackername>
<value>hdfs://localhost:9001value>
property>
1.6编辑yarn-site.xml
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
接下的启动hadoop和linux中一样,唯一有不同的地方,就是启动hadoop 后会弹出4个cmd窗口,这个窗口不能关闭,关闭会导致hadoop停止。
1.编辑hbase-env.cmd
添加set JAVA_HOME=D:\PROGRA~1\jdk #如果java安装路径在program file文件夹下,不能直接复制路径,要把program file替换成PROGRA~1,否则报错。
2.编辑hbase-site.xml
<property>
<name>hbase.rootdirname>
<value>hdfs://localhost:9000/hbasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>falsevalue>
property>
<property>
<name>hbase.mastername>
<value>localhost:60000value>
property>
如果启动hbase之后,
报log4j:Could not find value for key log4j.appender.DRFAS的错误
编辑log4j.properties,添加以下代码
log4j.appender.DRFAS=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRFAS.File=${hbase.log.dir}/hbase.security.DRFAS.log
log4j.appender.DRFAS.layout=org.apache.log4j.PatternLayout
log4j.appender.DRFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
上面同样在hadoop和hbase启动之后,都会弹出cmd窗口,这个窗口不能关闭,关闭之后,相应的服务程序就会关闭。这个地方我也不知道解决办法。希望知道的同学能在评论里告诉我!^_^
一段时间后…….
经过后来自己的测试并不能行得通,因为运行环境是window,而hadoop,hbase,nutch涉及到对文件的操作时linux和window的命令不同,导致报错!异常烦恼。例如hadoop 的 /bin/hdfs dfs -ls 查看hdfs文件查看不了。但是程序运行没有问题,我也不知道怎么解决这个问题。所以这种方案果断放弃。