系统是Mac OS X 10.10.4版本
1.配置好JAVA环境
使用java -version检验安装的版本我用的java 1.8.0版本
设置好JAVA_HOME环境变量,我的是
2.设置ssh无密码访问
ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost 可以无密码登录则说明成功
3.获取hadoop
官网地址:http://hadoop.apache.org/releases.html
公司生产环境使用的是2.4.1,官网上已经找不到这么老版本的下载链接了,因此我下载的2.5.2版本
下载完成后解压缩
设置HADOOP_HOME环境变量
4.如果是单节点模式,则无需其他额外配置了,可以运行wordcount来试下
随便在~/in目录下放点文件,~/out不需要事先创建否则运行时会报错
hadoop jar /usr/local/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount ~/in ~/out
如果要以伪分布式方式运行则需要修改配置文件,2.5.2版本配置文件在$Hadoop_Home/etc/hadoop目录下
修改core-site.xml文件,默认的临时目录在重启后会删除
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.5.2/tmp</value>
</property>
</configuration>
修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.5.2/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.5.2/hdfs/data</value>
<final>true</final>
</property>
</configuration>
复制mapred-site.xml.template文件,重命名为mapred-site.xml,添加如下配置启用yarn框架
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml文件
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
格式化namenode
bin/hdfs namenode -format 或者使用已经废弃的 /bin/hadoop namenode -format
启动hadoop
sbin/start-dfs.sh 以及 sbin/start-yarn.sh 或者使用已经废弃的 bin/start-all.sh
在伪分布式模式下运行wordcount,需要把待统计的文件上传到HDFS,比如放入/input目录下,然后运行
hadoop jar /usr/local/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount /input /out
在Mac上报错Exception from container-launch: ExitCodeException exitCode=127:
查看logs/userlogs下相应作业的日志,打开stderr发现里面的内容是/bin/bash: /bin/java: No such file or directory
Hadoop默认检查/bin/java路径下的java,可是Mac的Java不是装这里的,它的路径是/usr/bin/java
建立一个软链接即可:sudo ln -s /usr/bin/java /bin/java