因为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.)这一点我差一点就入坑了,刚开始我不死心就翻文档,发现了这句话。
hadoop安装环境搭建
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.dir</name>
<value>file:/D:/hadoop2.5.2/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
1.3编辑hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<name>dfs.namenode.name.dir</name>
<value>file:/D:/hadoop2.5.2/tmp/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/D:/hadoop2.5.2/tmp/datanode</value>
</property>
</configuration>
1.4编辑slaves文件
查看文件中是否有localhost没有的话,添加localhost。
1.5编辑mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
1.6编辑yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
接下的启动hadoop和linux中一样,唯一有不同的地方,就是启动hadoop 后会弹出4个cmd窗口,这个窗口不能关闭,关闭会导致hadoop停止。
hbase安装
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.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.master</name>
<value>localhost:60000</value>
</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文件查看不了。但是程序运行没有问题,我也不知道怎么解决这个问题。所以这种方案果断放弃。