您的位置:首页 > 编程语言 > Java开发

Hadoop伪分布模式安装以及在Eclipse中运行第一个MapReduce项目

2015-06-17 18:17 761 查看
伪分布模式. Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

伪分布模式安装前提:单机模式已经安装好,详情请见:单机模式安装

接下来只需要配置即可

1 配置core-site.xml  hdfs-site.xml  mapred-site.xml

core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。

hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。

mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。(注意:hadoop2.7.0中没有这个文件,只需要将mapred-site.xml.template这个文件copy一份命名为 mapred-site.xml即可)。

1)core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
2)hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/datalog1,/usr/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/data1,/usr/hadoop/data2</value>
</property>
</configuration>
3 )mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>


2:启动Hadoop到相关服务,格式化namenode, secondarynamenode, tasktracker:

hadoop@Rev:/usr/hadoop/hadoop2.7.0$ hadoop namenode -format
如果看到下面信息就表明成功!
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at derekUbun/127.0.1.1
************************************************************/
此时会在/usr/hadoop/下生成几个文件夹:



3:启动hadoop

1)接着执行start-all.sh来启动所有服务,包括namenode,datanode,start-all.sh脚本用来装载守护进程。会遇到一个警告

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...using builtin-java classses where applicable 这个可以不用管,如果你觉得很难受,那就查资料吧。

2)用Java的jps命令列出所有守护进程来验证安装成功

hadoop@Rev:/usr/hadoop$ jps
如果出现类似下面这种就是启动成功了

4384 SecondaryNameNode
4676 NodeManger
4008 NameNode
5003 Jps
4541 ResourceManger
4141 DataNode
3)检查运行状态 http://localhost:8088/
(Hadoop中用于监控集群健康状态的Web界面)

至此,hadoop的伪分布模式已经安装成功。接下来我们在eclipse运行第一个MapReduce项目

1:在Ubuntu下安装eclipse 这一步就省略了。去官网上下载合适的安装包即可



2:在eclipse 下安装MapReduce插件


这一步网上有两种方法 一种是自己编译,一种是下载现成的,我选择是后者。


直接去https://github.com/winghc/hadoop2x-eclipse-plugin 下载压缩文件,release文件夹下有 ,我就分享下吧:eclipse—MapReduce插件下载 ,然后进行eclipse插件安装,这里安装方法很多不在详细表述,重启eclipse 会看到在window菜单Preference下搜寻MapReduce 即可出现 ,我们输入hadoop根目录



同时添加Locations



进入进行配置 M/P master 端口号对应mapred-site.xml
DFS Master 端口号对应core-site.xml 完成后点击finish



打开DFS Location 此时刷新 会有相应的Location Name 命名的 DFS 地址 如果报错显示连接失败,建议重新Format 和重启hadoop






3:运行WordCount 例子

1)新建一个MapReduce项目New->Project->Map/Reduce Project 然后将Hadoop自带的WordCount.java 放入项目src中,去掉最上面的package






2) 在usr/hadoop下新建一个input文件夹,里面新建两个文件

textWordCount1内容是: Hello World Bye World

textWordCount2内容是: Hello Hadoop Goodbye Hadoop

然后上传目录到DFS (换做命令行就是如下命令)
hadoop@Rev:/usr/hadoop$ hadoop dfs -copyFromLocal  input




成功后会在dfs下显示input文件夹。

3)运行wordcount,在Run之前进行如下设置Arguments,注意按照dfs地址格式来!



运行的时候会报没有Log4j的警告,但实际已经运行生成,为了能在控制台看到数据运行,我们新建一个log4j.properties 放在项目的src下,里面写如下

# Configure logging for testing: optionally with log file
#\u53EF\u4EE5\u8BBE\u7F6E\u7EA7\u522B\uFF1Adebug>info>error
#debug:\u53EF\u4EE5\u663E\u5F0Fdebug,info,error
#info:\u53EF\u4EE5\u663E\u5F0Finfo,error
#error:\u53EF\u4EE5\u663E\u5F0Ferror

log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=error,appender1

#\u8F93\u51FA\u5230\u63A7\u5236\u53F0
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#\u6837\u5F0F\u4E3ATTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout


这就可以在控制台看到相关信息,然后运行wordcount,结果会生成output目录,里面就会有成功的文件part-r-00000,里面会显示统计的单词和词频



至此就大功告成,欢迎各位CSDN网友指正不足之处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: