Hadoop3.0大数据处理学习(Haddop介绍、部署、Hive部署)

2023年 9月 2日 83.2k 0

Hadoop3.0快速入门

学习步骤:

  • 三大组件的基本理论和实际操作
  • Hadoop3的使用,实际开发流程
  • 结合具体问题,提供排查思路
  • 开发技术栈:

    • Linux基础操作、Sehll脚本基础
    • JavaSE、Idea操作
    • MySQL

    Hadoop简介

    Hadoop是一个适合海量数据存储与计算的平台。是基于Google的GoogleFS、Map Reduce、BigTable实现的。

    分布式存储介绍

    image.png

    image.png

    分布式计算介绍

    • 移动数据:数据 -> 计算程序
    • 移动计算:计算程序 -> 数据
    • 分布式计算:各个节点局部计算 -> 第二阶段汇总程序

    image.png

    Hadoop三大核心组件

    image.png

    HDFS(分布式存储系统)

    架构分析:

    • HDFS负责海量数据的分布式存储。
    • 支持主从架构,主节点支持多个NameNode,从节点支持多个DataNode。
    • NameNode负责接收用户请求,维护目录系统的目录结构。DataNode主要负责存储数据。

    MapReduce(分布式计算框架)

    架构分析:

    • MapReduce是一个编程模型,主要负责海量数据计算,主要由两个阶段组成:Map和Reduce。
    • Map阶段是一个独立的程序,会在很多个节点上同时执行,每个节点处理一部分数据。
    • Reduce节点也是一个独立的程序,在这先把Reduce理解为一个单独的聚合程序即可。

    Yarn(资源管理与调度)

    架构分析:

    • 主要负责集权资源的管理和调度,支持主从架构,主节点最多可以有2个,从节点可以有多个。
    • 主节点(ResourceManager)进程主要负责集群资源的分配和管理。
    • 从节点(NodeManager)主要负责单节点资源管理。

    大数据生态圈

    image.png

    Hadoop安装部署

    Hadoop发行版介绍

    • 官方版本:Apache Hadoop,开源,集群安装维护比较麻烦
    • 第三方发行版:Cloudera Hadoop(CDH),商业收费,使用Cloudera Manager安装维护比较方便
    • 第三方发行版:HortonWorks(HDP),开源,使用Ambari安装维护比较方便。

    伪分布式集群安装部署(使用1台Linux虚拟机安装伪分布式集群)

    1. 静态IP设置

    192.168.56.101

    2. 主机名设置(临时、永久)

    cent7-1

    3. hosts文件修改(配置IP与主机名映射关系)

    cent7-1 localhost

    4. 关闭防火墙(临时、永久)

    systemctl status firewalld.service
    systemctl stop firewalld
    systemctl status firewalld.service
    

    5. ssh免密登录

    ssh-keygen -t rsa
    cd /root
    cd .ssh/
    cat id_rsa
    cat id_rsa.pub >> authorized_keys
    ssh cent7-1
    

    6. JDK1.8安装

    tar -zxvf jdk-8u191-linux-x64.tar.gz 
    vi /etc/profile
    source /etc/profile
    
    # profile配置内容
    export JAVA_HOME=/home/jdk8
    export PATH=.:$JAVA_HOME/bin:$PATH
    

    7. Hadoop伪分布式安装

    # 解压Hadoop
    tar -zxvf hadoop-3.2.4.tar.gz 
    # 进入配置文件目录
    cd /home/hadoop-3.2.4/etc/hadoop
    
    vi core-site.xml 
    
    vi hdfs-site.xml 
    
  • 配置core-site.xml
  • 
      fs.defaultFS
      hdfs://cent7-1:9000
      true
    
    
      hadoop.tmp.dir
      /home/hadoop_repo
    
    
  • 配置hdfs-site.xml
  • 
    
       dfs.replication
       1
    
    
  • 配置hdfs-site.xml
  • 
    
        mapreduce.framework.name
        yarn
    
    
  • 配置yarn-site.xml
  • 
    
     yarn.nodemanager.aux-services
     mapreduce_shuffle
    
    
    
      yarn.nodemanager.env-whitelist
      JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    
    
  • 配置 hadoop-env.sh
  • export JAVA_HOME=/home/jdk8
    export HADOOP_LOG_DIR=/home/hadoop_repo/logs/hadoop
    
  • 初始化hdfs
  • # 在Hadoop的目录下执行以下命令,
    bin/hdfs namenode -format
    

    看到以下内容说明执行成功!注意:hdfs格式化只能执行一次,如果失败需要删除文件夹后再进行格式化。
    image.png

    启动

    [root@cent7-1 hadoop-3.2.4]# sbin/start-all.sh
    Starting namenodes on [cent7-1]
    ERROR: Attempting to operate on hdfs namenode as root
    ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
    Starting datanodes
    ERROR: Attempting to operate on hdfs datanode as root
    ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
    Starting secondary namenodes [cent7-1]
    ERROR: Attempting to operate on hdfs secondarynamenode as root
    ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
    Starting resourcemanager
    ERROR: Attempting to operate on yarn resourcemanager as root
    ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
    Starting nodemanagers
    ERROR: Attempting to operate on yarn nodemanager as root
    ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
    # 提示缺少hdfs、yarn的用户信息
    
  • 配置start-dfs.sh、stop-dfs.sh
  • vi sbin/start-dfs.sh
    vi sbin/stop-dfs.sh 
    #增加配置
    HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    
  • 配置
  • vi sbin/start-yarn.sh 
    vi sbin/stop-yarn.sh 
    #增加配置
    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root
    
  • 再次启动
  • [root@cent7-1 hadoop-3.2.4]# sbin/start-all.sh 
    WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
    Starting namenodes on [cent7-1]
    上一次登录:三 8月 30 19:05:12 CST 2023从 192.168.56.1pts/1 上
    Starting datanodes
    上一次登录:三 8月 30 21:02:51 CST 2023pts/0 上
    localhost: Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
    Starting secondary namenodes [cent7-1]
    上一次登录:三 8月 30 21:02:56 CST 2023pts/0 上
    Starting resourcemanager
    上一次登录:三 8月 30 21:03:49 CST 2023从 192.168.56.1pts/3 上
    Starting nodemanagers
    上一次登录:三 8月 30 21:04:13 CST 2023pts/0 上
    [root@cent7-1 hadoop-3.2.4]# jps
    10146 NameNode
    10386 DataNode
    10883 SecondaryNameNode
    11833 ResourceManager
    12954 Jps
    12155 NodeManager
    # 展示除了jps外的五个Hadoop组件进程表示启动成功
    
  • 浏览器确认启动成功
    • 访问HDFS:http://192.168.56.101:9870/
      image.png
    • 访问Hadoop:http://192.168.56.101:8088/
      image.png
  • 停止

    sbin/stop-all.sh
    

    分布式集群安装部署(使用3台Linux虚拟机安装分布式集群)

    客户端节点安装介绍

    HIVE安装部署

    mysql安装部署

    yum install mysql
    

    hive下载与部署

    apache-hive-hive-3.1.3安装包下载_开源镜像站-阿里云 (aliyun.com)
    source /etc/profile

    export HIVE_HOME=/home/hive
    export PATH=$HIVE_HOME/bin:$PATH
    

    配置hive/conf/hive-site.xml文件

      
      
            javax.jdo.option.ConnectionURL  
            jdbc:mysql://cent7-1:3306/hive?createDatabaseIfNotExist=true&useSSL=false  
      
      
            javax.jdo.option.ConnectionDriverName
            com.mysql.jdbc.Driver  
      
      
            javax.jdo.option.ConnectionUserName
            hdp  
      
      
            javax.jdo.option.ConnectionPassword
            admin  
      
    
    
            hive.server2.authentication
            CUSTOM
    
    
    
            hive.server2.custom.authentication.class
            com.ylw.CustomHiveServer2Auth
      
    
       hive.server2.custom.authentication.file
       /home/hive/user.pwd.conf
    
    
    
            hive.jdbc_passwd.auth.root
            admin
      
    
            hive.metastore.port
            9083
            Hive metastore listener port
    
    
            hive.server2.thrift.port
            10000
            Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.
    
    
            
      hive.server2.thrift.max.worker.threads
      200
    
    
            hive.metastore.local
            false
            controls whether to connect to remote metastore server or open a new metastore server in Hive Client JVM
    
    
            hive.server2.transport.mode
            binary
            
             Expects one of [binary, http].
             Transport mode of HiveServer2.
            
    
     
    

    启动与停止hive

    nohup hive --server metastore &
    nohup hive --service hiveserver2 &
    jps
    #看到是否有两个runJar ,如果有说明启动成功
    # 查看端口占用
    netstat -anop |grep 10000
    ps -aux|grep hive
    

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论