求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
 
 
     
   
    全部     工程实例     标准规范     名校讲义     知识库    
 
 

Hadoop教程
Hadoop大数据解决方案
Hadoop介绍快速入门
Hadoop安装
Hadoop HDFS入门
MapReduce简介和入门
Hadoop程序入门实践
理解 MapReducer
MapReduce计数器和连接
MapReduce程序连接数据
Flume和Sqoop
Pig & Hive介绍
OOZIE 五分钟入门学习
 
 

Hadoop程序入门实践

    您可以捐助,支持我们的公益事业。

金额: 1元 10元 50元

姓名:

邮件:

电话:

公司:

说明:

认证码: 验证码,看不清楚?请点击刷新验证码 必填



 
 捐助

问题陈述:

找出销往各个国家商品数量。

输入: 我们的畋输入数据集合是一个 CSV 文件, Sales2014.csv

前提条件:

1.本教程是在Linux上开发 - Ubuntu操作系统

2.已经安装了Hadoop(本教程使用版本2.7.1)

3.系统上已安装了Java(本教程使用 JDK1.8.0)。

在实际操作过程中,使用的用户是'hduser_“(此用户使用 Hadoop)。

yiibai@ubuntu:~$ su hduser_

步骤:

1.创建一个新的目录名称是:MapReduceTutorial

hduser_@ubuntu:~$ sudo mkdir MapReduceTuorial

授予权限

hduser_@ubuntu:~$ sudo chmod -R 777 MapReduceTutorial

下载相关文件:下载 Java 程序文件,拷贝以下文件:SalesMapper.java, SalesCountryReducer.java 和 SalesCountryDriver.java 到 MapReduceTutorial 目录中,

检查所有这些文件的文件权限是否正确:

如果“读取”权限缺少可重新再授予权限,执行以下命令:

yiibai@ubuntu:/home/hduser_/MapReduceTutorial$ sudo chmod +r *

2.导出类路径

hduser_@ubuntu:~/MapReduceTutorial$ export CLASSPATH="$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.1.jar:
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.7.1.jar:
$HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.1.jar:
~/MapReduceTutorial/SalesCountry/*:$HADOOP_HOME/lib/*"  
hduser_@ubuntu:~/MapReduceTutorial$

3. 编译Java文件(这些文件存在于目录:Final-MapReduceHandsOn). 它的类文件将被放在包目录:

hduser_@ubuntu:~/MapReduceTutorial$ javac -d . 
SalesMapper.java SalesCountryReducer.java SalesCountryDriver.java

安全地忽略此警告:

此编译将创建一个名称与Java源文件(在我们的例子即,SalesCountry)指定包名称的目录,并把所有编译的类文件在里面,因此这个目录要在编译文件前创建。

接下来:

创建一个新的文件:Manifest.txt

hduser_@ubuntu:~/MapReduceTutorial$ vi Manifest.txt

添加以下内容到文件中:

Main-Class: SalesCountry.SalesCountryDriver

SalesCountry.SalesCountryDriver 是主类的名称。请注意,必须键入回车键,在该行的末尾。

下一步:创建一个 jar 文件

hduser_@ubuntu:~/MapReduceTutorial$ $JAVA_HOME/bin/jar cfm ProductSalePerCountry.jar Manifest.txt SalesCountry/*.class

检查所创建的 jar 文件,结果如下:

6. 启动 Hadoop

hduser_@ubuntu:~$ $HADOOP_HOME/sbin/start-dfs.sh 
 hduser_@ubuntu:~$ $HADOOP_HOME/sbin/start-yarn.sh

7. 拷贝文件 Sales2014.csv 到 ~/inputMapReduce

hduser_@ubuntu:~$ mkdir inputMapReduce 
 hduser_@ubuntu:~$ cp MapReduceTutorial/Sales2014.csv ./inputMapReduce/Sales2014.csv

现在使用以下命令来拷贝 ~/inputMapReduce 到 HDFS.

hduser_@ubuntu:~$ $HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/inputMapReduce /

我们可以放心地忽略此警告。验证文件是否真正复制没有?

hduser_@ubuntu:~$ $HADOOP_HOME/bin/hdfs dfs -ls /inputMapReduce

8. 运行MapReduce 作业

hduser_@ubuntu:~$ $HADOOP_HOME/bin/hadoop jar ProductSalePerCountry.jar 
/inputMapReduce /mapreduce_output_sales

这将在 HDFS 上创建一个输出目录,名为mapreduce_output_sales。此目录的文件内容将包含每个国家的产品销售。

9. 结果可以通过命令界面中可以看到

hduser_@ubuntu:~$ $HADOOP_HOME/bin/hdfs dfs -cat /mapreduce_output_sales/part-00000

结果也可以通过 Web 界面看到,打开 Web 浏览器,输入网址:http://localhost:50070/dfshealth.jsp ,结果如下:

现在选择 'Browse the filesystem' 并导航到 /mapreduce_output_sales 如下:

打开 part-r-00000 ,如下图所示:

下载后,查看结果内容。


 


    您可以捐助,支持我们的公益事业。

金额: 1元 10元 50元

姓名:

邮件:

电话:

公司:

说明:

认证码: 验证码,看不清楚?请点击刷新验证码 必填



 
 捐助