开发环境 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.