使用本地hadoop运行伪分布式程序

云计算 waitig 533℃ 百度已收录 0评论

这篇文章所使用的配置文件和思路基本都来自于官方的文档,在上一篇文章中已经配置完成了几个配置文件,包括hdfs,mapreduce以及yarn。全都配置在了一台服务器,所以运行的是伪分布式的程序。

启动hdfs文件系统

配置core-site.xml

<configuration>
    <property>
        #配置hdfs文件系统的位置和端口,这里使用的是本地
        #依据个人配置而定,使用hostname命令即可。
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>
    </property>

    <property>
        #本地hdfs存放的位置
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0/data/temp</value>
    </property>
</configuration>

配置hdfs-site.xml

<configuration>
    <property>
        #hdfs文件系统的个数,目前我就使用1个,如果不配置就使用默认值3
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

配置完成之后:

  • 格式化文件系统:
bin/hdfs namenode -format
  • 启动namenode进程:
 sbin/hadoop-daemon.sh start namenode
  • 启动datanode进程:
sbin/hadoop-daemon.sh start datanode

:如果不想一个个启动进程,直接使用sbin/start-dfs.sh即可启动

到这本地的hdfs文件系统已经启动完成,使用jps命令查看进程是否运行,启动日志存放在logs文件夹下。我是使用服务器部署,用ip:50070就可以查看可视化界面。

点击查看我的可视化界面:http://47.94.152.46:50070/explorer.html#/

上传测试文件到本地hdfs

//hadoop/wcinput/wc.input

hello world
hello you
ni hao
i love you

将本地文件上传到hdfs文件系统:

  • 在文件系统新建用户文件夹:
bin/hdfs dfs -mkdir /user/xiaoshi/wcinput
  • 上传本地文件到hdfs文件系统:
bin/hdfs dfs -put wcinput/wc.input /user/xiaoshi/wcinput

启动yarn框架

配置yarn-site.xml

<configuration>
    <property>
        #服务名称
        <name>yarn.nodemanager.aux-services</name>
        #mapreduce的核心服务
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        #nodemanager的主机名,现在使用的是本地
        <name>yarn.nodemanager.hostname</name>
        <value>localhost</value>
    </property>
</configuration>

配置mapred-site.xml

<configuration>
    <property>
        #配置用于执行MapReduce的框架,默认是Localhost,现在配置在yarn框架上
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置完成,启动:

  • 启动resoucemanege
sbin/yarn-daemon.sh start resoucemanege
  • 启动nodemanager
sbin/yarn-daemon.sh start nodemanager

:如果不想一个个启动,直接使用sbin/start-yarn.sh启动即可

启动完成之后,可以使用浏览器查看yarn框架的可视化界面,默认为:ip:8088

查看我的yarn可视化界面:http://47.94.152.46:8088/cluster


至此,环境已经搭建完成,下面就来使用hadoop自带的示例来运行一个程序。

我们在前面步骤已经上传了一个wc.input文件到hdfs文件系统,现在我们使用hadoop自带的wordcount来统计一下单词的个数。

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/xiaoshi/wcinput /user/xiaoshi/wcoutput

后面两个路径为文件的输入路径已经处理完结果的输出路径。

在执行的过程中,可以到yarn的可视化界面查看执行情况

执行上述命令之后,得到wcoutput文件夹:

# bin/hdfs dfs -ls -R /user/xiaoshi
drwxr-xr-x   - root supergroup          0 2017-11-22 15:08 /user/xiaoshi/wcoutput
-rw-r--r--   1 root supergroup          0 2017-11-22 15:08 /user/xiaoshi/wcoutput/_SUCCESS
-rw-r--r--   1 root supergroup         44 2017-11-22 15:08 /user/xiaoshi/wcoutput/part-r-00000

part-r-00000即为输出的结果,使用cat命令查看

# bin/hdfs dfs -cat /user/xiaoshi/wcoutput/part-r-00000
hao 1
hello   2
i   1
love    1
ni  1
world   1
you 2

值得一提的是,在统计个数的同时还对单词进行了排序,功能很是强大~~
大功告成。

太阳就要下山了,风还是在不停的嘶吼,而我还在徘徊,何时才能归家。


本文由【waitig】发表在等英博客
本文固定链接:使用本地hadoop运行伪分布式程序
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)