** Hadoop框架基础(二)

上一节我们讨论了如何对hadoop进行基础配置已经运行一个简单的实例,接下来我们尝试使用eclipse开发。

** maven安装

简单介绍:maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理。

1、maven下载地址

链接:http://pan.baidu.com/s/1c2AD9cc 密码:1pvo

2、普通用户权限下解压maven到modules目录,如图:

 
 

3、配置maven环境变量

切换到root用户下,使用命令:# vi /etc/profile,添加如图内容:

 
 

保存退出后,使用source /etc/profile命令使之生效

4、创建maven依赖包位置

使用命令:

$ mkdir /home/z/.m2/

解释:maven的默认依赖包会在该目录下,手动创建一个,一会便于把已经下载好的离线包放进去

离线包下载地址:

链接:http://pan.baidu.com/s/1kUXjEYz 密码:typ7

将该包上传到虚拟机系统后,使用命令:

$ tar -zxf /opt/softwares/repository.tar.gz -C /home/z/.m2,解压后如图:

 
 

** eclipse 安装

简单介绍:微笑:)

1、eclipse下载地址

链接:http://pan.baidu.com/s/1kVBLgKR 密码:0ypf

2、普通用户权限下解压eclipse到modules目录,如图:

 
 

3、打开eclipse

注意,此时打开eclipse必须在虚拟机系统中的终端打开(或手动双击图标打开),不可使使用SecureCRT打开。

打开方式:进入到eclipse的安装目录,使用命令:

./eclipse,如图:

 
 

回车后,即可打开,工作空间你随便选个位置即可。我这边默认使用:

/home/z/workspace该位置作为我默认的工作空间。

4、eclipse简单配置

eclipse界面中依次点击--Window--Preferences,如图:

 
 

指定maven路径,通过点击add按钮,选择你的maven安装目录,如图:

 
eclipse的其他设置,如字体大小,行号等等,不在本节讲解,请自行查阅

** 使用eclipse创建maven项目

进行如图操作:

 
 

下一步

 
 

下一步

 
 

完成如图

 
 

修改pom.xml配置

1、修改junit的版本号,从3.8.1改为4.10

2、添加hadoop依赖

修改后如图:

 
 

创建src/main/resource目录

解释:

1、用于存放core-site.xml、hbase-site.xml等,以便于开发,创建后如图:

(因为开发时有时需要读取这些xml文件的配置)

 
 
 
 

2、拷贝core-site.xml到该目录下,使用命令:

$ cp /opt/modules/hadoop-2.5.0/etc/hadoop/core-site.xml /home/z/workspace/hdfs/src/main/resource/

之后在eclipse中刷新该目录,如图:

 
 
 
 

3、创建一个PutHdfs类

编写如下代码,便可以通过控制台展示出上一节的words.txt文档中的内容,后面会稍微解释代码内容

 
 
 
 

解释:

1、Configuration是一个配置对象,可以用来动态设置类似core-site.xml中的属性,通过查看源码,看到它默认加载的配置文件为:

 
 

2、FileSystem是一个文件系统管理对象,它可以用来操作hdfs文件系统中的文件,比如删除hdfs中的某个文件,读取,写入,等等。

3、剩下的内容只要有点Java基础,基本都能够看懂了,方法中都有对应的注释,读者可以点进去查看理解。

尖叫提示:

相关API文档:http://hadoop.apache.org/docs/r2.5.2/api/index.html

** 总结

这一节主要讲解如何通过eclipse来运行一个简单的操作文件系统中文件的demo,请熟练其配置方式。


个人微博:http://weibo.com/seal13

QQ大数据技术交流群(广告勿入):476966007


作者:Z尽际
链接:https://www.jianshu.com/p/5265216ef648
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Hadoop框架基础(二)的更多相关文章

  1. Hadoop 框架基础(四)

    ** Hadoop 框架基础(四) 上一节虽然大概了解了一下 mapreduce,徒手抓了海胆,不对,徒手写了 mapreduce 代码,也运行了出来.但是没有做更深入的理解和探讨. 那么…… 本节目 ...

  2. Hadoop框架基础(五)

    ** Hadoop框架基础(五) 已经部署了Hadoop的完全分布式集群,我们知道NameNode节点的正常运行对于整个HDFS系统来说非常重要,如果NameNode宕掉了,那么整个HDFS就要整段垮 ...

  3. Hadoop框架基础(三)

    ** Hadoop框架基础(三) 上一节我们使用eclipse运行展示了hdfs系统中的某个文件数据,这一节我们简析一下离线计算框架MapReduce,以及通过eclipse来编写关于MapReduc ...

  4. Hadoop框架基础(一)

    ** Hadoop框架基础(一)     学习一个新的东西,传统而言呢,总喜欢漫无目的的扯来扯去,比如扯扯发展史,扯扯作者是谁,而我认为这些东西对于刚开始接触,并以开发为目的学者是没有什么帮助的,反而 ...

  5. TP框架基础 (二) ---空控制器和空操作

    通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...

  6. Hive框架基础(二)

    * Hive框架基础(二) 我们继续讨论hive框架 * Hive的外部表与内部表 内部表:hive默认创建的是内部表 例如: create table table001 (name string , ...

  7. HBase框架基础(二)

    * HBase框架基础(二) 上一节我们了解了HBase的架构原理和模块组成,这一节我们先来聊一聊HBase的读写数据的过程. * HBase的读写流程及3个机制 HBase的读数据流程: 1.HRe ...

  8. PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

    一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...

  9. django 基础框架学习 (二)

    Django框架基础-02 Django缓存cookie 1.说明        当我们服务器在响应数据的同时,希望写⼊⼀些缓存数据到客户端        我们可以选择在响应的同时,将要写⼊到客户端的 ...

随机推荐

  1. moveToThread的根本目的还是为了处理QObject的事件循环(如果为空指针的话,当前对象的所有的事件都不处理了),看官方说明就知道了

    Changes the thread affinity for this object and its children. The object cannot be moved if it has a ...

  2. Windows环境下通过Git来管理自己的Android代码

    前面已经介绍了在Windows下使用git工具来下载Android的源代码,Windows环境下通过Git得到Android源代码,这里记录我使用git工具来管理我自己的代码,git是一种分布式的项目 ...

  3. MySQL学习(六)——自定义连接池

    1.连接池概念 用池来管理Connection,这样可以重复使用Connection.有了池,我们就不用自己来创建Connection,而是通过池来获取Connection对象.当使用完Connect ...

  4. ARM的六大类指令集---LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM

    http://blog.csdn.net/u013477200/article/details/50723555

  5. 【原创】Apache服务器500错误失去响应的问题解决

    某生产网站部署在Apache上,使用tomcat集群,偶尔网站失去响应,查看首页发现无法打开,页面假死,出现过多次,查看apache的日志,发现经常出现以下提示: [Fri Dec :: ] [war ...

  6. http_build_query 字符串拼接

    http_build_query 字符串拼接 产生一个urlencode之后的请求字符串. 1.将数组转化成url问号(?)后的字符串 <?php $date=array( 'name'=> ...

  7. unserialize反序列化错误的解决办法

    1. UTF-8编码解决反序列化出错问题 function mb_unserialize($serial_str) { $serial_str = str_replace("\r" ...

  8. swift中高阶函数map、flatMap、filter、reduce

    Swift相比于Objective-C又一个重要的优点,它对函数式编程提供了很好的支持,Swift提供了map.filter.reduce这三个高阶函数作为对容器的支持. 1 map:可以对数组中的每 ...

  9. class-metaclass-Class vs. type

    In some languages, classes are only a compile-time feature (new classes cannot be declared at runtim ...

  10. Mathab和Python的numpy中的数组维度

    Matlab和Python的numpy在维度索引方面的不同点: 1.索引的起始点不同:Matlab起始位置的索引为1,Python为0. 2.索引的括号不同:Matlab中元素可以通过小括号表示索引, ...