一:安装及配置Hadoop
1:利用MAC中homebrew下载hadoop(也可以去官方下载hadoop.tar.gz)
$ brew install Hadoop
2:配置ssh免密码登录,用dsa密钥认证来生成一对公钥和私钥:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
3:将生成的公钥加入到用于认证的公钥文件中:
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
4:接下来测试一下是否配置成功
$ ssh localhost
二:配置Hadoop文件
/usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/
core-site.xml文件配置如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml配置如下;
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml配置如下:
<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>
以上过程需要注意的是如果mapred-site.xml文件不存在,需要自己创建(可以复制一下mapred-site.xml.template文件再进行修改)
添加环境变量:vim ~/.bash_profile 添加内容
export HADOOP_HOME=/usr/local/Cellar/hadoop/2.10.1
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存后执行:source ~/.bash_profile
三:运行Hadoop样例程序
此部分内容主要参考自Setting up Hadoop 2.6 on Mac OS X Yosemite
- 进入Hadoop的目录,以mac系统为例目录为
cd /usr/local/Cellar/hadoop/2.8.1/libexec
然后格式化文件系统: bin/hdfs namenode -format
- 启动NameNode和DataNode的守护进程。
$ sbin/start-dfs.sh
- 启动ResourceManager和NodeManager的守护进程。
$ sbin/start-yarn.sh
如果报这个错误:
localhost: /usr/local/Cellar/hadoop/2.10.1/bin/hdfs: line 319: /Library/Internet/bin/java: No such file or directory-
修改/usr/local/Cellar/hadoop/2.10.1/etc/hadoop/hadoop-env.sh
改成自己的javahome路径
- 访问localhost:50070和localhost:8088测试是否正常
-
创建hdfs目录:
$ bin/hdfs dfs -mkdir -p /user/robin/input
- 拷贝一些文件到input目录:
$ bin/hdfs dfs -put etc/hadoop input
- 运行样例: (下面命令中的hadoop版本号是2.8.1,根据你自己的hadoop版本修改版本号)
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar grep input output 'dfs[a-z.]+'
-
在localhost:50070中的Utilities标签下找到/user/robin目录,下载part-r-00000文件,可以看到其中内容如下所示:
4 dfs.class 4 dfs.audit.logger 3 dfs.server.namenode. 2 dfs.period 2 dfs.audit.log.maxfilesize 2 dfs.audit.log.maxbackupindex 1 dfsmetrics.log 1 dfsadmin 1 dfs.servers 1 dfs.replication 1 dfs.file