头歌Educoder——大数据Hadoop开发环境搭建

头歌Educoder——大数据Hadoop开发环境搭建文章目录第 1 关 配置开发环境 JavaJDK 的配置任务描述相关知识下载 JDK 解压配置环境变量测试编程要求实现代码第 2 关 配置开发环境 Hadoop 安装与伪分布式集群搭建任务描述相关知识下载 Hadoop 配置 Hadoop 环境设置 SSH 免密登录 hadoop env sh 配置 yarn env sh 配置 core site xml 配置 hdfs site xml 文件配置 mapred site xml 文件配置 yarn site xml 配置创建文件夹将 Hadoop 添加到环境变量中验证格式化启动 Hadoop 编程要求

第1关:配置开发环境 – JavaJDK的配置

任务描述

本关任务:配置JavaJDK

相关知识

配置开发环境是我们学习一门IT技术的第一步,Hadoop是基于Java开发的,所以我们学习Hadoop之前需要在Linux系统中配置Java的开发环境。

下载JDK

前往Oracle的官网下载JDK: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

预览大图

我们可以先下载到本地,然后从Windows中将文件传入到虚拟机中。 也可以复制链接地址,在Linux系统中下载,不过复制链接地址不能直接下载,因为Oracle做了限制,地址后缀需要加上它随机生成的随机码,才能下载到资源。

img

所以我们可以点击下载,然后暂停,最后在下载管理中复制链接地址就可以在Linux系统中下载啦。

img

因为JDK的压缩包有大概200M,所以我们已经在平台中为你下载好了JDK,不用你再去Oracle的官网去下载了,如果你要在自己的Linux系统中安装,那么还是需要下载的。

我们已经将JDK的压缩包放在系统的/opt目录下了,在命令行中切换至该目录下即可。

解压

首先在右侧命令行中创建一个/app文件夹,我们之后的软件都将安装在该目录下。 命令:mkdir /app

然后,切换到/opt目录下,来查看一下提供的压缩包。

img

可以看到我们已经帮你下载好了JDKHadoop的安装文件。

现在我们解压JDK并将其移动到/app目录下。

tar -zxvf jdk-8u171-linux-x64.tar.gzmv jdk1.8.0_171/ /app

可以切换到/app目录下查看解压好的文件夹。

img

配置环境变量

解压好JDK之后还需要在环境变量中配置JDK,才可以使用,接下来就来配置JDK。 输入命令:vim /etc/profile 编辑配置文件;

在文件末尾输入如下代码(不可以有空格):

img

然后,保存并退出。

最后:source /etc/profile使刚刚的配置生效。

测试

最后我们可以测试一下环境变量是否配置成功。 输入:java -version 出现如下界面代表配置成功。

img

编程要求

根据上述步骤完成Java开发环境的配置即可。

注意:因为下次再开启实训,环境会重置,所以最好的方式是一次性通过所有关卡。


开始配置JDK吧,go on

实现代码

mkdir /app

cd /opt

tar -zxvf jdk-8u171-linux-x64.tar.gz

mv jdk1.8.0_171/ /app

vim /etc/profile

光标移动到文件末尾
i

JAVA_HOME=/app/jdk1.8.0_171
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

按esc键

冒号shift+:

wq

source /etc/profile

输入:java -version 出现如下界面代表配置成功。

image-20210311180356512

第2关:配置开发环境 – Hadoop安装与伪分布式集群搭建


任务描述

本关任务:安装配置Hadoop开发环境。

相关知识

下载Hadoop

我们去官网下载:http://hadoop.apache.org/ 在平台上已经帮你下载好了(在/opt目录下),这里只是展示一下下载步骤。

img img img

输入wget下载Hadoop

wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

如果是生产环境就需要验证文件的完整性,在这里就偷个懒了。

由于解压包有大概300M,所以我们已经预先帮你下载好了,切换到/opt目录下即可看到。

接下来解压Hadoop的压缩包,然后将解压好的文件移动到/app目录下。

img

我们来切换到app目录下修改一下hadoop文件夹的名字。

img

提示:如果出现文件解压大小限制的情况,可以使用 ulimit -f 1000000 命令来解除限制。

配置Hadoop环境

接下来我们开始配置Hadoop开发环境。 咱们来搭建一个单节点的集群,配置一个伪分布式,为什么不做分布式呢? 其实分布式的配置和伪分布式差不多,只是分布式机器增加了而已,其他没什么两样,所以作为Hadoop学习我们搭建伪分布式要更好一点,不过后期我们会搭建真正的分布式环境。 好了,开始吧。你可以和我一起来,也可以看官方文档:http://hadoop.apache.org/docs/r3.1.0/hadoop-project-dist/hadoop-common/SingleCluster.html

设置SSH免密登录

在之后操作集群的时候我们需要经常登录主机和从机,所以设置SSH免密登录时有必要的。

输入如下代码:

 ssh-keygen -t rsa -P ''

生成无密码密钥对,询问保存路径直接输入回车,生成密钥对:id_rsa和id_rsa.pub,默认存储在~/.ssh目录下。 接下来:把id_rsa.pub追加到授权的key里面去。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

然后修改权限:

chmod 600 ~/.ssh/authorized_keys

接着需要启用RSA认证,启动公钥私钥配对认证方式:
vim /etc/ssh/sshd_config 如果提示权限不足在命令前加上sudo; 修改ssh配置:

RSAAuthentication yes # 启用 RSA 认证PubkeyAuthentication yes # 启用公钥私钥配对认证方式AuthorizedKeysFile %h/.ssh/authorized_keys # 公钥文件路径

img

重启SSH(在本地自己的虚拟机中可以重启,在平台不可以重启哦,也不需要,重启了你就连接不上命令行了!)

service ssh restart

好了准备工作已经做完了,我们要开始修改Hadoop的配置文件了,总共需要修改6个文件。分别是:

  • hadoop-env.sh;
  • yarn-env.sh ;
  • core-site.xml;
  • hdfs-site.xml;
  • mapred-site.xml;
  • yarn-site.xml。

我们一个一个接着来配置吧!

hadoop-env.sh 配置

两个env.sh文件主要是配置JDK的位置

提示:如果忘记了JDK的位置了,输入 echo $JAVA_HOME就可以看到哦。

首先我们切换到hadoop目录下

cd /app/hadoop3.1/etc/hadoop/

编辑 hadoop-env.sh在文件中插入如下代码:

# The java implementation to use.  #export JAVA_HOME=${JAVA_HOME}  export JAVA_HOME=/app/jdk1.8.0_171
yarn-env.sh 配置

编辑yarn-env.sh 插入如下代码:

export JAVA_HOME=/app/jdk1.8.0_171

img

core-site.xml配置

这个是核心配置文件我们需要在该文件中加入HDFSURINameNode的临时文件夹位置,这个临时文件夹在下文中会创建。 在文件末尾的configuration标签中添加代码如下:


      
  
      
      
      
      
       
        
        
          fs.default.name 
         
        
          hdfs://localhost:9000 
         
        
          HDFS的URI,文件系统://namenode标识:端口号 
         
        
        
        
          hadoop.tmp.dir 
         
        
          /usr/hadoop/tmp 
         
        
          namenode上本地的hadoop临时文件夹 
         
        
        
hdfs-site.xml文件配置

replication指的是副本数量,我们现在是单节点,所以是1


      
  
      
      
      
      
       
        
        
          dfs.name.dir 
         
        
          /usr/hadoop/hdfs/name 
         
        
          namenode上存储hdfs名字空间元数据 
         
        
        
        
          dfs.data.dir 
         
        
          /usr/hadoop/hdfs/data 
         
        
          datanode上数据块的物理存储位置 
         
        
        
        
          dfs.replication 
         
        
          1 
         
        
        
mapred-site.xml文件配置

      
  
      
      
      
      
       
        
        
          mapreduce.framework.name 
         
        
          yarn 
         
        
      
yarn-site.xml配置

      
  
      
      
      
      
       
        
        
          yarn.nodemanager.aux-services 
         
        
          mapreduce_shuffle 
         
        
        
        
          yarn.resourcemanager.webapp.address 
         
        
          192.168.2.10:8099 
         
        
          这个地址是mr管理界面的 
         
        
        
创建文件夹

我们在配置文件中配置了一些文件夹路径,现在我们来创建他们,在/usr/hadoop/目录下使用hadoop用户操作,建立tmphdfs/namehdfs/data目录,执行如下命令:

mkdir -p /usr/hadoop/tmp mkdir /usr/hadoop/hdfs mkdir /usr/hadoop/hdfs/data mkdir /usr/hadoop/hdfs/name
将Hadoop添加到环境变量中
vim /etc/profile

在文件末尾插入如下代码:

img

最后使修改生效:source /etc/profile

验证

现在配置工作已经基本搞定,接下来只需要完成:1.格式化HDFS文件、2.启动hadoop、3.验证Hadoop 即可。

格式化

在使用Hadoop之前我们需要格式化一些hadoop的基本信息。 使用如下命令:

hadoop namenode -format

出现如下界面代表成功:

img

启动Hadoop

接下来我们启动Hadoop

start-dfs.sh

输入命令应该会出现如下图界面:

img

这个是表示启动没成功,是因为root用户现在还不能启动hadoop,我们来设置一下就可以了。

/hadoop3.1/sbin路径下: cd /app/hadoop3.1/sbin。 将start-dfs.shstop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bashHDFS_DATANODE_USER=rootHADOOP_SECURE_DN_USER=hdfsHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.shstop-yarn.sh顶部也需添加以下:

#!/usr/bin/env bashYARN_RESOURCEMANAGER_USER=rootHADOOP_SECURE_DN_USER=yarnYARN_NODEMANAGER_USER=root

再次启动start-dfs.sh,最后输入命令 jps 验证,出现如下界面代表启动成功:

img

之后如果你是图形化界面,可以在你虚拟机的图形化界面中打开火狐浏览器输入:http://localhost:9870/ 或者在windows机器上输入http://虚拟机ip地址:9870/ 也可以访问hadoop的管理页面。

img

好了到了这一步Hadoop就安装完成了。

编程要求

根据上述步骤,配置好Hadoop开发环境,点击评测即可。

提示:如果出现文件解压大小限制的情况,可以使用 ulimit -f 1000000 命令来解除限制。


开始你的任务吧,祝你成功!

实现代码

判断JDK有没有安装:输入 echo $JAVA_HOME就可以看到哦

image-20210311174301404

窗口出现则表示JDK已经安装,可以进行下面的步骤。

如果没有安装,则先进行第一关的代码安装JDK

代码:

cd /opt
tar -zxvf hadoop-3.1.0.tar.gz -C /app
cd /app
mv hadoop-3.1.0/ hadoop3.1

提示:如果出现文件解压大小限制的情况,可以使用 ulimit -f 1000000 命令来解除限制。

ssh-keygen -t rsa -P ''
回车
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
vim /etc/ssh/sshd_config

在文件中找到这三个

image-20210311181748162

找到之后,移动光标

i

删掉开头的 # 和下图内容相同

image-20210311181920700

cd /app/hadoop3.1/etc/hadoop/

vim hadoop-env.sh

i


# The java implementation to use.  
#export JAVA_HOME=${JAVA_HOME}  
export JAVA_HOME=/app/jdk1.8.0_171

按esc键

冒号,shift+:

wq

image-20210311182228892

vim yarn-env.sh

i

export JAVA_HOME=/app/jdk1.8.0_171

按esc键

冒号,shift+:

wq

image-20210311182749110

vim core-site.xml

在文件末尾的configuration标签中添加代码如下:
 
        
  
        
        
        
        
         
         
           fs.default.name 
          
         
           hdfs://localhost:9000 
          
         
           HDFS的URI,文件系统://namenode标识:端口号 
          
          

        
  
        
        
        
        
         
         
           hadoop.tmp.dir 
          
         
           /usr/hadoop/tmp 
          
         
           namenode上本地的hadoop临时文件夹 
          
          

按esc键

冒号,shift+:

wq

image-20210311183029273

vim hdfs-site.xml

在文件末尾的configuration标签中添加代码如下:

        
  
        
        
        
        
         
         
           dfs.name.dir 
          
         
           /usr/hadoop/hdfs/name 
          
         
           namenode上存储hdfs名字空间元数据 
          
          

        
  
        
        
        
        
         
         
           dfs.data.dir 
          
         
           /usr/hadoop/hdfs/data 
          
         
           datanode上数据块的物理存储位置 
          
          

        
  
        
        
        
        
         
         
           dfs.replication 
          
         
           1 
          
          

按esc键

冒号,shift+:

wq

image-20210311183234608

vim mapred-site.xml

在文件末尾的configuration标签中添加代码如下:

        
  
        
        
        
        
         
         
           mapreduce.framework.name 
          
         
           yarn 
          
        

按esc键

冒号,shift+:

wq

image-20210311183353326

vim yarn-site.xml

在文件末尾的configuration标签中添加代码如下:

        
  
        
        
        
        
         
         
           yarn.nodemanager.aux-services 
          
         
           mapreduce_shuffle 
          
          

        
  
        
        
        
        
         
         
           yarn.resourcemanager.webapp.address 
          
         
           192.168.2.10:8099 
          
         
           这个地址是mr管理界面的 
          
          

按esc键

冒号,shift+:

wq

image-20210311183520033

mkdir -p /usr/hadoop/tmp 

mkdir /usr/hadoop/hdfs 

mkdir /usr/hadoop/hdfs/data 

mkdir /usr/hadoop/hdfs/name

vim /etc/profile

文件末尾插入以下代码:
#set Hadoop Enviroment
export HADOOP_HOME=/app/hadoop3.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

按esc键

冒号,shift+:

wq

source /etc/profile

image-20210311183918092

hadoop namenode -format

cd /app/hadoop3.1/sbin

vim start-dfs.sh

i

回车键换行

在文件顶部添加以下参数:
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

按esc键

冒号,shift+:

wq

image-20210311184210673

vim stop-dfs.sh

i

回车键换行

在文件顶部添加以下参数:
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

按esc键

冒号,shift+:

wq

image-20210311184210673

vim start-yarn.sh

i

回车键换行

在文件顶部添加以下参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

按esc键

冒号,shift+:

wq

image-20210311184604962

vim stop-yarn.sh

i

回车键换行

在文件顶部添加以下参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

按esc键

冒号,shift+:

wq

image-20210311184604962

start-dfs.sh

jps

出现以下内容则成功,快测评吧

image-20210311184753319


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202302.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:27
下一篇 2026年3月20日 上午7:27


相关推荐

  • ifndef/define/endif使用详解

    ifndef/define/endif使用详解想必很多人都看过 头文件中的 nbsp ifndef define endif nbsp 防止该头文件被重复引用 但是是否能理解 被重复引用 是什么意思 是不能在不同的两个文件中使用 include 来包含这个头文件吗 如果头文件被重复引用了 会产生什么后果 是不是所有的头文件中都要加入 ifndef define endif nbsp 这些代码 nbsp nbsp 其实 被重复引用 是指一个头文件在同一个 cpp 文件中

    2026年3月26日
    2
  • javaweb酒店管理系统设计与实现_java餐饮管理系统源码

    javaweb酒店管理系统设计与实现_java餐饮管理系统源码前言学习java这段时间以来,给我的感觉是非常枯燥和乏味的,因为学习编程这个过程就是这样,除此之外我是自学,所以遇到问题只能自己上网找资料,或者看一些大佬的文章来解决问题。不过学习过程中让我接触到了这样一个非常有趣的项目:酒店管理系统的小型项目,实现了一些功能,废话不多说看题目。题目为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能要求:该系统的用户是:酒店前台。 酒店使用一个二维数组来模拟。“Room[][]room;”…

    2025年12月3日
    6
  • 后台接口文档模板

    后台接口文档模板文档模板 接口名称 gt method HTTP ip port path 参数 参数名称 描述 example 非必填项 枚举值 如果是枚举类型 参数名称 描述 example 必填项响应 响应类型 响应示例代码 example 测试接口 get

    2026年3月18日
    2
  • 挖矿脚本真的凶残!!

    挖矿脚本真的凶残!!事因:阿里突然发短信说我的阿里云服务器上面有挖矿程序!!!!!,顿时一惊,所以登陆到服务器。1.我用了top命令查看系统目前系统性能结果发现有个叫-bash的进程占用了99%的资源2.接下来我用kill-921252然后等一会又发现了这个脚本继续在占用资源,然后百度了下说这个挖矿可能有定时任务3.然后就采用了crontab-l查看定时任务列表果然有个定时任…

    2022年7月13日
    21
  • 神经网络学习–用卷积神经网络进行图像识别「建议收藏」

    神经网络学习–用卷积神经网络进行图像识别「建议收藏」卷积神经网络特别适合处理像图片、视频、音频、语言文字等,这些与相互位置有一定关系的数据。卷积神经网络(ConvolutionalNerualNetwork,CNN)为什么计算机可以处理图片–因为在计算机语言中图片可以用数字化,用四维数组来表示既然卷积神经网络可以处理图片,那么我们就要理解图片在计算机语言中是如何表达的。图片其实是“点阵”图,由一个个点按照一定的顺序组合而成,那我们就可以联想到一个概念–数组。图片可以分为三类:纯黑白图片、灰度图片、彩色图片关于图片数字化,以最.

    2022年6月1日
    41
  • java 日志处理[通俗易懂]

    java各日志组件介绍common-logging(同时也称JCL)  common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging,common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-loggi…

    2022年4月16日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号