Hadoop wordcount程序是经典的hadoop入门测试程序,主要根据给出一堆文件file1、file2...,统计出file1、file2...中单词出现的次数。
我们在单机上测试运行这个程序,我的测试系统是Mac OS。
1 下载hadoop包,地址:
2 安装到任意目录,我安装在 /usr/local, 解压。
3 配置环境变量:
vi /etc/profile
将下面ADD进去。
#export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
export HADOOP_HOME=/usr/local/hadoop-2.2.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4 新建namenode、datanode目录,目录路径随便指定。
mkdir -p /urs/local/hadoop/mnode/namenode
mkdir -p /urs/local/hadoop/mnode/dataname
5 开始配置hadoop文件(xml):
a)进入Hadoop文件配置目录,cd /usr/local/hadoop/etc/hadoop
b) 更改 hadoop-env.sh
把JAVA_HOME指定:export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
c)更改 yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
d)更改 core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
e)更改 hdfs-site.xml
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/mnode/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/mnode/datanode</value>
</property>
f)更改 mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6 格式化NameNode:
hadoop namenode -format
7 启动
start-all.sh
8 查看所有JAVA进程:
Jps
此时可以看到如下:
2234 Jps
1989 ResourceManager
2023 NodeManager
1856 DataNode
2060 JobHistoryServer
1793 NameNode
2049 SecondaryNameNode
9 此时可以查看hadoop的运行状态:
查看 NameNode ::50070/
查看 ResourceManager: :8088/cluster
10 新建一个文件夹用于存放原始数据(随便指定):
mkdir /Usrs/apple/hadoop/tmp
然后在此目录下,新建两个文件:file1、file2, 编辑file1: hello world, 编辑file2: hello hadoop,保存。
11 拷贝到HDFS
hadoop dfs -copyFromLocal /Users/apple/hadoop/tmp/ /in
(或者:hadoop fs -put /Users/apple/hadoop/tmp/ /input)
查看输入目录:hadoop fs -ls /
12 RUN
首先进入example目录:cd /usr/local/hadoop/share/hadoop/mapreduce
然后run:hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount /in /out
13 查看程序运行结果:
hadoop fs -cat /out/part-r-00000
hadoop 1
hello 2
world 1