热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Centos7搭建Hadoop2.X伪分布式环境并运行wordcountMapReduce示例

1.下载Hadoop在Apache的Hadoop项目界面找到hadoop的hadoop下载地址http:hadoop.apache.orgreleases.html因

1. 下载Hadoop

在 Apache的 Hadoop项目界面找到hadoop的 hadoop下载地址
http://hadoop.apache.org/releases.html
因为直接从Apache官方下载文件速度很慢,所以在表格下面选择别的镜像站地址。
在弹出的界面中会推荐一个下载速度很快的国内镜像站。
这里写图片描述

这里写图片描述
选择其中某个版本的hadoop下载,因为现在市面上绝大部分的学习资料都是以hadoop 2.x 为基础,所以推荐大家下载hadoop 2.x的版本。
没有安装图形界面的系统可以直接在命令行中使用下面的wget命令下载文件

wget http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz

2. 配置ssh免密码登录

以下操作均在root用户中进行,centos7 可以在命令行中使用 su 命令,输入密码后进入root用户。并且默认centos系统中已经正确的配置好了java环境

- 进入当前用户目录,找到 .ssh 文件夹

cd ~      //切换到当前用户的用户目录下
ls -all   //查看当前用户目录下的所有文件

查看当前用户的目录下是否有 .ssh 文件夹,如果没有就自己创建一个
这里写图片描述

- 生成私钥和公钥

cd .ssh                 
ssh-keygen -t rsa           // 生成公钥和私钥,期间系统会询问密钥的保存位置,直接一路回车确认即可
cp id_rsa.pub authorized_keys           // 复制公钥

这里写图片描述

  • 验证ssh免密码登录是否成功
ssh localhost           //ssh登录本机,第一次登录可能需要输入一次密码,退出之后再登录就不需要了
exit

这里写图片描述

如果在输入ssh localhost之后出现 报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
这是因为ssh公钥验证失败导致的错误,这个错误的解决办法可以参照别人的博客:

以root用户远程登录Linux报错:Permission denied

ssh 公钥认证报错:Permission denied解决

3. 安装配置Hadoop

以下操作均在root用户中进行,centos7 可以在命令行中使用 su 命令,输入密码后进入root用户。并且默认centos系统中已经正确的配置好了java环境

- 解压Hadoop源文件

tar -xzvf hadoop-2.7.6.tar.gz           //解压Hadoop安装包
mv hadoop-2.7.6 /opt                    // 将解压后的安装包移动到别的地方,方便管理。

- 配置hadoop环境变量

vim /etc/profile            //配置系统变量,配置之后可在全局任意地方使用Hadoop命令

打开文件之后,在文件的最后面添加hadoop的配置信息

export HADOOP_HOME=/opt/hadoop-2.7.6            //这个地方记得修改成自己Hadoop安装目录的地址
export PATH=$HADOOP_HOME/bin:$PATH               

使配置文件生效

source /etc/profile                             

之后可以输入命令验证配置是否正确生效
这里写图片描述

- 修改hadoop配置文件

修改 /opt/hadoop-2.7.6/etc/hadoop/ 下面的hadoop配置文件 hadoop-env.sh 、hdfs-site.xml 、 core-site.xml 这三个文件

cd /opt/hadoop-2.7.6/etc/hadoop/                //切换到Hadoop配置文件所在的目录

1 . hadoop-env.sh

将文件中的

export JAVA_HOME=${JAVA_HOME}

修改为

export JAVA_HOME=/opt/java/jdk1.8.0_171 //把原来的相对地址更改为绝对地址

2 . hdfs-site.xml

补充最后的属性:

<configuration>
        <property>
                <name>dfs.replicationname>
                <value>1value>
        property>
configuration>

3 . core-site.xml
在文件的最后补充:

<configuration>
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://localhost:9000value>
    property>
configuration>

- 启动hadoop

cd /opt/hadoop-2.7.6/bin                //切换到Hadoop安装目录下的bin目录
hdfs namenode -format                   //第一次启动Hadoop,要格式化namenode,之后再启动就不需要再格式化了
cd /opt/hadoop-2.7.6/sbin               //切换到Hadoop安装目录下的sbin目录
./start-dfs.sh                          //启动Hadoop
jps                                     //查看已经开启的进程,看namenode,datanode是否开启

这里写图片描述
在centos系统的浏览器中输入 http://localhost:50070 查看运行在本机上的hadoop的运行状态
这里写图片描述

4. 配置YARN

修改 /opt/hadoop-2.7.6/etc/hadoop 目录下的YARN配置文件

cd /opt/hadoop-2.7.6/etc/hadoop
mv mapred-site.xml.template mapred-site.xml             //首先复制YARN配置文件

1 . mapred-site.xml
在最后修改:

<configuration>
        <property>
             <name>mapreduce.framework.namename>
             <value>yarnvalue>
        property>
configuration>

2 . yarn-site.xml
在最后修改:

<configuration>
 <property>
  <name>yarn.nodemanager.aux-servicesname>
  <value>mapreduce_shufflevalue>
 property>
 <property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
  <value>org.apache.hadoop.mapred.ShuffleHandlervalue>
 property>
configuration>

运行YARN,验证是否成功

cd /opt/hadoop-2.7.6/sbin
./start-yarn.sh                 //开启YARN
jps

这里写图片描述
在浏览器中输入 http://localhost:8088 查看YARN管理的集群状态
这里写图片描述

5. 运行MapReduce示例(Wordcount)

Wordcount是MapReduce的入门示例程序,相当于我们在学某个编程语言时写的Hello World示例一样。这个程序可以统计某个文件中,各个单词出现的次数。Wordcount程序的jar包已经放置在hadoop安装目录下的 /share/hadoop/mapreduce 文件夹中。
本次我们使用hadoop安装包下自带的几个文件,测试Wordcount程序的运行效果。

cd /opt/hadoop-2.7.6
ls -all 

可以看到在hadoop的安装目录下有几个txt文件,我们使用这几个文件中的某个文件作为Wordcount的测试文件。
这里写图片描述
- 上传文件到HDFS

hadoop fs -mkdir /input                         //在HDFS的根目录下新建 input 目录
hadoop fs -put NOTICE.txt /input                //将本地的NOTICE.txt文件上传到HDFS的 input 目录下
hadoop fs -ls -R /                              //查看文件是否成功上传到HDFS上面

可以看到,已经成功的在本机的HDFS的根目录下创建了 input 文件夹,并将NOTICE.txt文件上传到了HDFS上的 input 文件夹下面。
这里写图片描述

  • 运行Wordcount示例程序

使用hadoop jar 命令, 后面先指定程序虽用jar包的路径,后面是要运行的程序的名称,最后是输入文件和输出路径,这个命令要根据自己本机Hadoop的配置做相应的修改。

hadoop jar /opt/hadoop-2.7.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output                
hadoop fs -ls -R /                              //查看程序运行后产生的文件
hadoop fs -cat /output/part-r-00000             //查看程序最终的运行结果

这里写图片描述
可以看到,在运行Wordcount程序之后,HDFS上面产生了很多的文件,其中 /output/part-r-00000 文件就是程序最终的运行结果。查看该文件可以看到:
这里写图片描述
这说明已经成功的运行了Wordcount示例程序。


推荐阅读
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • Kafka 是由 Apache 软件基金会开发的高性能分布式消息系统,支持高吞吐量的发布和订阅功能,主要使用 Scala 和 Java 编写。本文将深入解析 Kafka 的安装与配置过程,为程序员提供详尽的操作指南,涵盖从环境准备到集群搭建的每一个关键步骤。 ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 本文整理了Java中org.apache.hadoop.mapreduce.lib.input.MultipleInputs.addInputPath()方法的一些代码 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
author-avatar
小熊维尼-b晴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有