(一)maven的引入和MapReduce初次接触

一、Maven的引入

       想用MapReduce编程,需要引入hadoop的jar包

       Maven的作用:导包的新技术,包和包之间是有依赖关系的,帮助我们管理依赖(即导包),是一款项目构建工具,帮助我们标准化项目结构,帮我们打包

       Maven的使用:

              ①安装maven:不用安装,IDEA和新版本的Eclipse已经集成maven了,而且IDEA为在校学生提供了一年的免费使用,可以通过校园邮件申请。

              ②创建一个maven项目

              ③配置依赖关系(通过配置文件)

二、IDEA--Maven集成开发环境的使用

       (Ⅰ)IDEA的基本使用

              配置JDK:File-ProjectStructure-SDKs-"+"-JDK-选择JDK安装目录-OK-Apply

              更改字体:File-Settings-Editor-Font -Size

              更改主题:File-Settings-Appearance-Theme,也可以自己从网上下载主题

              下载远程仓库的索引:

      (Ⅱ)Maven Project

       1.maven项目的目录结构:

              

       2.maven的三点坐标:用三个参数来锁定唯一的一个项目

              ①groupid      组id,相当于包名,一般是公司域名的倒写

             ②artifactid    构件id,相当于类名,代表项目名称

              ③version       版本

       3.pom.xml配置文件(Project Object Model)

              编写依赖(导包)

 

              <dependencies>

                      <dependency>

                                <groupId>mysql</groupId>

                                <artifactId>mysql-connector-java</artifactId>

                                <version>5.1.6</version>

                      </dependency>

             </dependencies>

              一个dependencies里可以写多个dependency

       3.库:maven通过maven的库对所有的依赖进行管理

              分类:

                   ①本地库

                       本地库默认在C:\Users\HR\.m2\repository

                        修改:通过maven的配置文件

                           将settings.xml文件中<localRepository>标签中的内容改为新库的路径,File-Settings-Build,Execution,Deployment-Build Tools-Maven-Usersettings file(或者直接在右侧maven视图中,点最后一个扳手的图标),选择settings.xml文件所在的位置,就可以看到下面的Local repository会随着自动更改了

                   ②远程库:

                     maven有全球的中央仓库,会通过pom文件解析项目中需要的jar包去本地库引用,如果本地库没有,自动从中央仓库下载

              最容易出现的问题: maven的问题几乎只有一个——库的问题。库在复制的时候可能会文件损坏导致maven无法使用或者在下载的时候网络中断导致下载文件缺失。

              简单粗暴解决办法:把库删了重新下

       4.maven的生命周期:maven的很多功能都是插件形式的,包括生命周期

              clean:清除所有生成的资源,即删除target目录

              validate:

              compile:对maven项目进行编译,如果成功说明编译没有问题,编译后的字节码文件在target-classes下

              test:用于集成测试,一般和junit结合,会测试test目录下的代码

              package:打包,将maven项目中的所有代码打成jar包,放在target下  

              verify:

              install:用于将打好的jar包安装到本地库      

              site:

              deploy:用于将打好的jar包安装到远程库(私服)

              每个生命周期执行前都会将之前所有的生命周期执行一次

 

三、MR的基本运行机制

       MapReduce并行的计算框架

       map和reduce是计算的两个阶段:map将数据以键值对的形式传给reduce,reduce拿到数据后将相同的键合并,组成值的集合

四、MapReduce的HelloWorld

1.windows下配置MR运行

       ①把log4j.properties放到项目的resource目录下,可以看到更详细的提示信息

       ②要在环境变量中配置HADOOP_HOME,注意:配置完成后重启IDEA才能生效

         未配置环境变量出现的错误如下图:

 

       ③要在hadoop安装路径的bin下添加winutils.exe(未添加出现的错误在上图中同一位置)

       ④在C:\Windows\System32下添加hadoop.dll文件

         缺dll文件会出现的错误如下图:

 

2.MR的编程:

              ①添加hadoop的依赖 2.6.1 

             <properties>

                     <hadoop.version>2.6.1</hadoop.version>

                  </properties>

                   <dependencies>

                            <dependency>

                                       <groupId>org.apache.hadoop</groupId>

                                <artifactId>hadoop-common</artifactId>

                                       <version>2.6.1</version>

                            </dependency>

                            <dependency>

                                       <groupId>org.apache.hadoop</groupId>

                                       <artifactId>hadoop-hdfs</artifactId>

                                       <version>${hadoop.version}</version>

                            </dependency>

                            <dependency>

                                       <groupId>org.apache.hadoop</groupId>

                                       <artifactId>hadoop-client</artifactId>

                                       <version>${hadoop.version}</version>

                            </dependency>

                         </dependencies>       

              ②需要写两个类用于完成Map和Reduce两个阶段的任务,关于Map阶段的类需要继承Mapper类,关于Reduce阶段的类要继承Reducer类

              ③提交MR任务(只有少量数据没有集群,只是在windows下测试,原理和代码是真的)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值