上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Linux实战——Hadoop安装部署

guduadmin14小时前

大数据集群(Hadoop生态)安装部署

简介

1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

2)主要解决,海量数据的存储和海量数据的分析计算问题。

三类组件

  • Hadoop HDFS:提供分布式海量数据存储能力

  • Hadoop YARN:提供分布式集群资源管理能力

  • Hadoop MapReduce:提供分布式海量数据计算能力

    前置要求

    • 请确保完成了集群化环境前置准备
    • 即:JDK、SSH免密、关闭防火墙、配置主机名映射等前置操作

      JDK、防火墙配置

      集群化环境前置准备、SSH免密、关闭防火墙、配置主机名映射

      Hadoop集群角色

      Hadoop生态体系中总共会出现如下进程角色:

      1. Hadoop HDFS的管理角色:Namenode进程(仅需1个即可(管理者一个就够))
      2. Hadoop HDFS的工作角色:Datanode进程(需要多个(工人,越多越好,一个机器启动一个))
      3. Hadoop YARN的管理角色:ResourceManager进程(仅需1个即可(管理者一个就够))
      4. Hadoop YARN的工作角色:NodeManager进程(需要多个(工人,越多越好,一个机器启动一个))
      5. Hadoop 历史记录服务器角色:HistoryServer进程(仅需1个即可(功能进程无需太多1个足够))
      6. Hadoop 代理服务器角色:WebProxyServer进程(仅需1个即可(功能进程无需太多1个足够))
      7. Zookeeper的进程:QuorumPeerMain进程(仅需1个即可(Zookeeper的工作者,越多越好))

      角色和节点分配

      角色分配如下:

      1. node1:Namenode、Datanode、ResourceManager、NodeManager、HistoryServer、WebProxyServer、QuorumPeerMain
      2. node2:Datanode、NodeManager、QuorumPeerMain
      3. node3:Datanode、NodeManager、QuorumPeerMain

      Linux实战——Hadoop安装部署,image-20221026202935745,第1张

      安装

      调整虚拟机内存

      如上图,可以看出node1承载了太多的压力。同时node2和node3也同时运行了不少程序

      为了确保集群的稳定,需要对虚拟机进行内存设置。

      请在VMware中,对:

      1. node1设置4GB或以上内存
      2. node2和node3设置2GB或以上内存

      大数据的软件本身就是集群化(一堆服务器)一起运行的。

      现在我们在一台电脑中以多台虚拟机来模拟集群,确实会有很大的内存压力哦。

      Zookeeper集群部署

      Zookeeper集群部署

      Hadoop集群部署

      1. 下载Hadoop安装包、解压、配置软链接

        # 1. 下载
        wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
        # 2. 解压
        # 请确保目录/export/server存在
        tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/
        # 3. 构建软链接
        ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
        
      2. 修改配置文件:hadoop-env.sh

        Hadoop的配置文件要修改的地方很多,请细心

        cd 进入到/export/server/hadoop/etc/hadoop,文件夹中,配置文件都在这里

        修改hadoop-env.sh文件

        此文件是配置一些Hadoop用到的环境变量

        这些是临时变量,在Hadoop运行时有用

        如果要永久生效,需要写到/etc/profile中

        # 在文件开头加入:
        # 配置Java安装路径
        export JAVA_HOME=/export/server/jdk
        # 配置Hadoop安装路径
        export HADOOP_HOME=/export/server/hadoop
        # Hadoop hdfs配置文件路径
        export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
        # Hadoop YARN配置文件路径
        export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
        # Hadoop YARN 日志文件夹
        export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
        # Hadoop hdfs 日志文件夹
        export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
        # Hadoop的使用启动用户配置
        export HDFS_NAMENODE_USER=root
        export HDFS_DATANODE_USER=root
        export HDFS_SECONDARYNAMENODE_USER=root
        export YARN_RESOURCEMANAGER_USER=root
        export YARN_NODEMANAGER_USER=root
        export YARN_PROXYSERVER_USER=root
        
      3. 修改配置文件:core-site.xml

        如下,清空文件,填入如下内容

        
        
        
        
        
          
            fs.defaultFS
            hdfs://node1:8020
            
          
          
            io.file.buffer.size
            131072
            
          
        
        
      4. 配置:hdfs-site.xml文件

        
        
        
        
        
            
                dfs.datanode.data.dir.perm
                700
            
          
            dfs.namenode.name.dir
            /data/nn
            Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.
          
          
            dfs.namenode.hosts
            node1,node2,node3
            List of permitted DataNodes.
          
          
            dfs.blocksize
            268435456
            
          
          
            dfs.namenode.handler.count
            100
            
          
          
            dfs.datanode.data.dir
            /data/dn
          
        
        
      5. 配置:mapred-env.sh文件

        # 在文件的开头加入如下环境变量设置
        export JAVA_HOME=/export/server/jdk
        export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
        export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
        
      6. 配置:mapred-site.xml文件

        
        
        
        
        
          
            mapreduce.framework.name
            yarn
            
          
          
            mapreduce.jobhistory.address
            node1:10020
            
          
          
            mapreduce.jobhistory.webapp.address
            node1:19888
            
          
          
            mapreduce.jobhistory.intermediate-done-dir
            /data/mr-history/tmp
            
          
          
            mapreduce.jobhistory.done-dir
            /data/mr-history/done
            
          
        
          yarn.app.mapreduce.am.env
          HADOOP_MAPRED_HOME=$HADOOP_HOME
        
        
          mapreduce.map.env
          HADOOP_MAPRED_HOME=$HADOOP_HOME
        
        
          mapreduce.reduce.env
          HADOOP_MAPRED_HOME=$HADOOP_HOME
        
        
        
      7. 配置:yarn-env.sh文件

        # 在文件的开头加入如下环境变量设置
        export JAVA_HOME=/export/server/jdk
        export HADOOP_HOME=/export/server/hadoop
        export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
        export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
        export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
        export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
        
      8. 配置:yarn-site.xml文件

        
        
        
        
        
            yarn.log.server.url
            http://node1:19888/jobhistory/logs
            
        
          
            yarn.web-proxy.address
            node1:8089
            proxy server hostname and port
          
          
            yarn.log-aggregation-enable
            true
            Configuration to enable or disable log aggregation
          
          
            yarn.nodemanager.remote-app-log-dir
            /tmp/logs
            Configuration to enable or disable log aggregation
          
        
          
            yarn.resourcemanager.hostname
            node1
            
          
          
            yarn.resourcemanager.scheduler.class
            org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
            
          
          
            yarn.nodemanager.local-dirs
            /data/nm-local
            Comma-separated list of paths on the local filesystem where intermediate data is written.
          
          
            yarn.nodemanager.log-dirs
            /data/nm-log
            Comma-separated list of paths on the local filesystem where logs are written.
          
          
            yarn.nodemanager.log.retain-seconds
            10800
            Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.
          
          
            yarn.nodemanager.aux-services
            mapreduce_shuffle
            Shuffle service that needs to be set for Map Reduce applications.
          
        
        
      9. 修改workers文件

        # 全部内容如下
        node1
        node2
        node3
        
      10. 分发hadoop到其它机器

      # 在node1执行
      cd /export/server
      scp -r hadoop-3.3.0 node2:`pwd`/
      scp -r hadoop-3.3.0 node3:`pwd`/
      
      1. 在node2、node3执行

        # 创建软链接
        ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
        
      2. 创建所需目录

        • 在node1执行:

          mkdir -p /data/nn
          mkdir -p /data/dn
          mkdir -p /data/nm-log
          mkdir -p /data/nm-local
          
        • 在node2执行:

          mkdir -p /data/dn
          mkdir -p /data/nm-log
          mkdir -p /data/nm-local
          
        • 在node3执行:

          mkdir -p /data/dn
          mkdir -p /data/nm-log
          mkdir -p /data/nm-local
          
        • 配置环境变量

          在node1、node2、node3修改/etc/profile

          export HADOOP_HOME=/export/server/hadoop
          export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
          

          执行source /etc/profile生效

        • 格式化NameNode,在node1执行

          hadoop namenode -format
          

          hadoop这个命令来自于:$HADOOP_HOME/bin中的程序

          由于配置了环境变量PATH,所以可以在任意位置执行hadoop命令哦

        • 启动hadoop的hdfs集群,在node1执行即可

          start-dfs.sh
          # 如需停止可以执行
          stop-dfs.sh
          

          start-dfs.sh这个命令来自于:$HADOOP_HOME/sbin中的程序

          由于配置了环境变量PATH,所以可以在任意位置执行start-dfs.sh命令哦

        • 启动hadoop的yarn集群,在node1执行即可

          start-yarn.sh
          # 如需停止可以执行
          stop-yarn.sh
          
        • 启动历史服务器

          mapred --daemon start historyserver
          # 如需停止将start更换为stop
          
        • 启动web代理服务器

          yarn-daemon.sh start proxyserver
          # 如需停止将start更换为stop
          
      验证Hadoop集群运行情况
      1. 在node1、node2、node3上通过jps验证进程是否都启动成功

      2. 验证HDFS,浏览器打开:http://node1:9870

        创建文件test.txt,随意填入内容,并执行:

        hadoop fs -put test.txt /test.txt
        hadoop fs -cat /test.txt
        
      3. 验证YARN,浏览器打开:http://node1:8088

        执行:

        # 创建文件words.txt,填入如下内容
        itheima itcast hadoop
        itheima hadoop hadoop
        itheima itcast
        # 将文件上传到HDFS中
        hadoop fs -put words.txt /words.txt
        # 执行如下命令验证YARN是否正常
        hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /words.txt /output
        

网友评论

搜索
最新文章
热门文章
热门标签