开发环境 mac os
Hadoop版本:hadoop-1.2.1
分3步,Step1安装Hadoop平台;Step2查看Hadoop启动;Step3测试Hadoop例程
Step1:安装Hadoop平台,
设置环境变量
在实际启动Hadoop之前,有三个文件需要进行配置。
但在这之前,我们需要设置一下几个类似Windows的环境变量,方便以后在命令行敲命令。
export HADOOP_HOME=/users/billy/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
配置hadoop-env.sh
在Hadoop->conf目录下,找到hadoop-env.sh,打开编辑进行如下设置:
export JAVA_HOME=/library/Java/Home(去掉注释)
export HADOOP_HEAPSIZE=2000(去掉注释)
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"(去掉注释)
注意第三个配置在OS X上最好进行配置,否则会报“Unable to load realm info from SCDynamicStore”。
配置core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/users/billy/hadoop/tmp/hadoop-${user.name}</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>2</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>2</value>
</property>
</configuration>
Step2:参考我上传的书《从零开始学习hadoop》
启动Hadoop
1)cd ~/usr/hadoop/hadoop-1.2.1
2)./bin/hadoop namenode -format"
3) "./bin/start-all.sh"
4)“jps”
检查各进程是否运行,这时,应该看到有 6 个 java 虚拟机的进程,分别是 Jps, NameNode, SecondaryNameNode,DataNode, JobTracker, TaskTracker,看到 6 个是对的,表明启动成功
或者使用web方式查看集群的工作情况(以此次配置为例):在浏览器中输入http://192.168.1.110:50070以及http://192.168.1.110:50030,这里的地址192.168.1.110根据个人不同,在前面格式化namenode的时候注意看log,其中输出了你的ip,是bin/hadoop namenode -format,在输出信息的最后~~
Step3:测试Hadoop
1) "cd ~/usr/hadoop/hadoop-1.2.1"
2)"./bin/hadoop fs -put README.txt readme.txt"
将当前目录下的 README.txt 放到 hadoop 进行测试,这个 README.txt 是 Hadoop 的介绍文件,这里用它做测试。这条命令将 README.txt 文件复制到 Hadoop 的分布式文件系统 HDFS,重命名为 readme.txt。
3)"./bin/hadoop jar hadoop-examples-1.2.1.jar wordcount readme.txt output"
运行 hadoop 的 examples 的 wordcount,测试 hadoop 的执行。这条语句用 Hadoop 自带的 examples 里的
wordcount 程序,对 readme.txt 进行处理,处理后的结果放到 HDFS 的 output 目录。8.4 "./bin/hadoop fs -cat output/part-r-00000"
这条命令查看处理结果, part-r-00000 文件存放 wordcount 的运行结果,cat 命令将文件内容输出到屏幕,显示字符的统计结果。这是一个简单的字符统计,wordcount 只是做了简单的处理,所以会看到单词后面有标点符号。
看到最后结果,全部搞定~~
另外格外注意:一开始在安装过程中遇到datanode无法启动的情况,发现环境配置的时候没有配置完整,mac下默认的/tmp文件夹是隐身的...查看log发现是/tmp文件夹下data文件夹权限问题,修改来修改去没解决,最后按照本文重新配置了下几个XML文件,自己定义了个/tmp文件夹,就解决了问题..问题好像是:WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /tmp/hadoop-pjw/dfs/data, expected: rwxr-xr-x, while actual: rwx---rwx
2014-04-05 20:27:37,161 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.