码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Hadoop】在云服务器上部署Hadoop2.7.1伪分布式集群


    文章目录

    • 一、准备Hadoop压缩包并安装
      • 1、安装Hadoop
        • (1)准备好hadoop压缩包
        • (2)安装hadoop
        • (3)查看是否安装成功
      • 2、将hadoop添加到环境变量
        • (1)在文件末尾添加以下内容
        • (2)保存文件,刷新配置
    • 二、伪分布式配置文件设置
      • 1、修改 `hadoop-env.sh`
      • 2、修改`core-site.xml`
      • 3、修改`hdfs-site.xml`
      • 4、拷贝`mapred-site.xml.template`文件内容并命名为`mapred-site.xml `
      • 5、修改`mapred-site.xml`
      • 6、修改 `yarn-site.xml`
    • 三、启动Hadoop集群
      • 1、关闭防火墙
      • 2、格式化HDFS(namenode)第一次使用时要格式化
      • 3、启动HDFS
      • 4、启动YARN
      • 5、访问HDFS的WEB管理页面
      • 6、访问YARN的WEB管理页面
      • 7、停止HDFS和YARN服务
    • 四、遇到问题
      • NameNode启动报错:Cannot assign requested address
      • 重新格式化HDFS
            • (1)删除残留文件
            • (2)手动创建配置文件
            • (3)重新格式化

    我用到的资源

    • 华为云轻量服务器一台
      img-XoUqom0N-1669783034330
    • CentOS8
    • JDK1.8
    • Haddop-2.7.1.tar.gz
    • SecureCRT(用来远程连接)



    一、准备Hadoop压缩包并安装


    1、安装Hadoop

    (1)准备好hadoop压缩包

    image-20221129193925158


    (2)安装hadoop

    tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local # 将hadoop安装到/usr/local目录下
    
    • 1

    image-20221129194246510


    (3)查看是否安装成功

    /usr/local/hadoop-2.7.1/bin/hadoop version # 因为没有设置软链接,所以只能通过bin来查看
    
    • 1
    Hadoop 2.7.1
    Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a
    Compiled by jenkins on 2015-06-29T06:04Z
    Compiled with protoc 2.5.0
    From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
    This command was run using /usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20221129200341812



    2、将hadoop添加到环境变量

    vim /etc/profile
    
    • 1

    (1)在文件末尾添加以下内容

    export HADOOP_HOME=/usr/local/hadoop-2.7.1
    # PATH在安装jdk时已经设置,这里需要添加上HADOOP的路径
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    • 1
    • 2
    • 3

    image-20221129210103494


    (2)保存文件,刷新配置

    # 刷新配置文件
    source /etc/profile
    # 测试是否生效
    hadoop version
    
    • 1
    • 2
    • 3
    • 4

    image-20221129210243717




    二、伪分布式配置文件设置

    先进入haoop的配置文件目录

     cd /usr/local/hadoop-2.7.1/etc/hadoop/ #/usr/local/hadoop-2.7.1为我的Hadoop的安装路径
    
    • 1

    image-20221129195039476


    1、修改 hadoop-env.sh

    修改文件中的export JAVA_HOME=${JAVA_HOME},将JAVA_HOME设置为你JDK的路径

    vim  hadoop-env.sh
    
    • 1
    export JAVA_HOME=/usr/local/java/jdk1.8.0_341
    
    • 1

    image-20221129201246376


    2、修改core-site.xml

    vim core-site.xml
    
    • 1

    在文件末尾的之间添加以下内容

    注意:这里的地址千万别用外网地址,因为云服务器中只有一块内网网卡,外网地址是服务商分配的

    
    <property>
    <name>fs.defaultFSname>
    <value>hdfs://192.168.0.109:9000value>
    property>
    
    <property>
    <name>hadoop.tmp.dirname>
    <value>/usr/local/hadoop-2.7.1/tmpvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Wk8xcZR-1669779228261)(../MDimages/Hadoop%E4%BC%AA%E5%88%86%E5%B8%83%E5%BC%8F%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2_images/image-20221130105228595.png)]


    3、修改hdfs-site.xml

    vim hdfs-site.xml
    
    • 1

    在文件末尾的之间添加以下内容

    
    <property>
    <name>dfs.replicationname>
    <value>1value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    4、拷贝mapred-site.xml.template文件内容并命名为mapred-site.xml

    # 拷贝
    cp mapred-site.xml.template mapred-site.xml
    
    • 1
    • 2

    image-20221129204611336


    5、修改mapred-site.xml

    vim mapred-site.xml
    
    • 1

    在文件末尾的之间添加以下内容

    
    <property>
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    img-Vo3uimgk-1669779228264


    6、修改 yarn-site.xml

    vim yarn-site.xml
    
    • 1

    在文件末尾的之间添加以下内容

    
    <property>
    <name>yarn.resourcemanager.hostnamename>
    <value>192.168.0.109value>
    property>
    
    <property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述




    三、启动Hadoop集群

    1、关闭防火墙

    # Hadoop启动需要使用很多端口,如果不关闭防火墙会出现无法连接的问题
    systemctl stop firewalld
    
    • 1
    • 2

    注意:需要root权限才能关闭

    在这里插入图片描述



    2、格式化HDFS(namenode)第一次使用时要格式化

    hadoop namenode -format
    
    • 1

    image-20221129210901762


    3、启动HDFS

    # 启动hdfs
    start-dfs.sh
    #注意在启动过程要多次输入yes和root的密码
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    # 查看当前进程
    jps
    
    • 1
    • 2

    image-20221129225507696


    4、启动YARN

    # 启动YARN
    start-yarn.sh
    
    • 1
    • 2

    image-20221129230433932

    # 查看当前进程
    jps
    
    • 1
    • 2

    image-20221129230344998

    当DFS和YARN的进程都启动时,应存在5个进程

    ResourceManager
    SecondaryNameNode
    DataNode
    NodeManager
    NameNode
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5、访问HDFS的WEB管理页面

    启动Hadoop后,通过访问50070端口可以进入HDFS的管理页面
    在这里插入图片描述


    6、访问YARN的WEB管理页面

    启动Hadoop后,通过访问8088端口可以进入YARN的管理页面
    在这里插入图片描述


    7、停止HDFS和YARN服务

    image-20221129235220382




    四、遇到问题


    NameNode启动报错:Cannot assign requested address

    当我启动HDFS服务后发现少了一个NameNode进程,于是查看日志文件发现报BindException ,通过百度发现,原来是因为我在core-site.xml文件中设置的defaultFS值是外网IP,而云服务器只有一块内网网卡,外网IP是设置在云服务提供商的公网网关的,通过NAT技术映射到内网网卡上,所以NameNode无法访问该地址。
    在这里插入图片描述

    解决办法:

    将defaultFS值设置为服务器的内网IP


    重新格式化HDFS

    NameNode在第一次格式化失败后,需要删除格式化失败残留文件,才能重新进行格式化

    (1)删除残留文件
    rm -rf /usr/local/hadoop-2.7.1/tmp          # 删除hdfs缓存文件
    rm -rf /usr/local/hadoop-2.7.1/dfs/name		# 删除NameNode缓存目录
    rm -rf /usr/local/hadoop-2.7.1/dfs/data		# 删除DataNode婚车目录
    rm -rf /usr/local/hadoop-2.7.1/logs			# 删除日志文件
    
    • 1
    • 2
    • 3
    • 4
    (2)手动创建配置文件
    mkdir -p /usr/local/hadoop-2.7.1/tmp          	# 创建hdfs缓存文件
    mkdir -p /usr/local/hadoop-2.7.1/dfs/name		# 创建NameNode缓存目录
    mkdir -p /usr/local/hadoop-2.7.1/dfs/data		# 创建DataNode婚车目录
    mkdir -p /usr/local/hadoop-2.7.1/logs			# 创建日志目录
    
    • 1
    • 2
    • 3
    • 4
    (3)重新格式化
    hadoop namenode -format
    
    • 1
  • 相关阅读:
    前后端分离Vue+nodejs酒店公寓客房预订管理系统udr7l-java-php-django-springboot
    vue之tab栏切换
    WPF ContentControl 和 ContentPresenter 之间有什么区别
    二叉树的基本性质与遍历
    谁用谁夸,超好用的电子期刊制作网站
    【GEE】基于GEE进行非监督学习
    [附源码]Python计算机毕业设计Django付费自习室管理小程序
    大数据毕业设计选题推荐-河长制大数据监测平台-Hadoop-Spark-Hive
    Optimize(程序优化)
    Unity 3D 动画系统(Mecanim)|| Unity 3D 人形角色动画(Avatar)
  • 原文地址:https://blog.csdn.net/weixin_45634261/article/details/128112176
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号