(一)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项目的目录结构:

              (一)maven的引入和MapReduce初次接触_第1张图片

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

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

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

              ③version       版本

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

              编写依赖(导包)

              

                      

                                mysql

                                mysql-connector-java

                                5.1.6

                     

             

              一个dependencies里可以写多个dependency

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

              分类:

                   ①本地库

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

                        修改:通过maven的配置文件

                           将settings.xml文件中标签中的内容改为新库的路径,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:

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

三、MR的基本运行机制

       MapReduce并行的计算框架

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

四、MapReduce的HelloWorld

1.windows下配置MR运行

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

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

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

(一)maven的引入和MapReduce初次接触_第2张图片

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

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

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

(一)maven的引入和MapReduce初次接触_第3张图片

2.MR的编程:

              ①添加hadoop的依赖 2.6.1 

            

                     2.6.1

                 

                  

                           

                                       org.apache.hadoop

                                hadoop-common

                                       2.6.1

                           

                           

                                       org.apache.hadoop

                                       hadoop-hdfs

                                       ${hadoop.version}

                           

                           

                                       org.apache.hadoop

                                       hadoop-client

                                       ${hadoop.version}

                           

                                

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

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



你可能感兴趣的:(hadoop)