• 【大数据】hadoop安装部署(学习笔记)


    一、集群组成概述

    Hadoop集群包括两个集群:HDFS集群、YARN集群

    两个集群逻辑上分离、通常物理上在一起

    两个集群都是标准的主从架构集群

    HDFS集群(分布式存储):

    • 主角色:NameNode
    • 从角色:DataNode
    • 主角色辅助角色:SecondaryNameNode

    YARN集群(资源管理调度):

    • 主角色:ResourceManager
    • 从角色:NodeManager

    MapReduce是计算框架、代码层面的组件 没有集群之说

    二、集群模式安装

    1、Hadoop源码编译

    安装包、源码包下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/

    源码本地编译用途:匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO需要调用系统本地库

    2、集群角色规划

    根据软件工作特性和服务器硬件资源情况合理分配

    • 资源上有抢夺冲突的,尽量不要部署在一起
    • 工作上需要互相配合的。尽量部署在一起

    3、服务器环境配置

    # 主机名 
    cat /etc/hostname
    
    # hosts映射
    vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.88.151 node1.itcast.cn node1
    192.168.88.152 node2.itcast.cn node2
    192.168.88.153 node3.itcast.cn node3
    
    # JDK 1.8安装  上传 jdk-8u241-linux-x64.tar.gz到/export/server/目录下
    cd /export/server/
    tar zxvf jdk-8u241-linux-x64.tar.gz
    
    	#配置环境变量
    	vim /etc/profile
    	
    	export JAVA_HOME=/export/server/jdk1.8.0_241
    	export PATH=$PATH:$JAVA_HOME/bin
    	export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    	
    	#重新加载环境变量文件
    	source /etc/profile
    
    # 集群时间同步
    ntpdate ntp5.aliyun.com
    
    # 防火墙关闭
    firewall-cmd --state	#查看防火墙状态
    systemctl stop firewalld.service  #停止firewalld服务
    systemctl disable firewalld.service  #开机禁用firewalld服务
    
    # ssh免密登录(只需要配置node1至node1、node2、node3即可)
    
    	#node1生成公钥私钥 (一路回车)
    	ssh-keygen  
    	
    	#node1配置免密登录到node1 node2 node3
    	ssh-copy-id node1
    	ssh-copy-id node2
    	ssh-copy-id node3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    4、Hadoop的安装

    上传Hadoop安装包到node1 /export/server

    hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
    
    tar zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
    
    • 1
    • 2
    • 3

    修改配置文件(配置文件路径 hadoop-3.3.0/etc/hadoop)

    1、hadoop-env.sh

    #文件最后添加
    export JAVA_HOME=/export/server/jdk1.8.0_241
    
    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 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、core-site.xml

    
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://node1:8020value>
    property>
    
    
    <property>
        <name>hadoop.tmp.dirname>
        <value>/export/data/hadoop-3.3.0value>
    property>
    
    
    <property>
        <name>hadoop.http.staticuser.username>
        <value>rootvalue>
    property>
    
    
    <property>
        <name>hadoop.proxyuser.root.hostsname>
        <value>*value>
    property>
    
    <property>
        <name>hadoop.proxyuser.root.groupsname>
        <value>*value>
    property>
    
    
    <property>
        <name>fs.trash.intervalname>
        <value>1440value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    3、hdfs-site.xml

    
    <property>
        <name>dfs.namenode.secondary.http-addressname>
        <value>node2:9868value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、mapred-site.xml

    
    <property>
      <name>mapreduce.framework.namename>
      <value>yarnvalue>
    property>
    
    
    <property>
      <name>mapreduce.jobhistory.addressname>
      <value>node1:10020value>
    property>
     
    
    <property>
      <name>mapreduce.jobhistory.webapp.addressname>
      <value>node1:19888value>
    property>
    
    <property>
      <name>yarn.app.mapreduce.am.envname>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
    property>
    
    <property>
      <name>mapreduce.map.envname>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
    property>
    
    <property>
      <name>mapreduce.reduce.envname>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    5、yarn-site.xml

    
    <property>
    	<name>yarn.resourcemanager.hostnamename>
    	<value>node1value>
    property>
    
    <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
    property>
    
    
    <property>
        <name>yarn.nodemanager.pmem-check-enabledname>
        <value>falsevalue>
    property>
    
    
    <property>
        <name>yarn.nodemanager.vmem-check-enabledname>
        <value>falsevalue>
    property>
    
    
    <property>
      <name>yarn.log-aggregation-enablename>
      <value>truevalue>
    property>
    
    
    <property>
        <name>yarn.log.server.urlname>
        <value>http://node1:19888/jobhistory/logsvalue>
    property>
    
    
    <property>
      <name>yarn.log-aggregation.retain-secondsname>
      <value>604800value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    6、workers

    node1.itcast.cn
    node2.itcast.cn
    node3.itcast.cn
    
    • 1
    • 2
    • 3

    7、分发同步hadoop安装包

    cd /export/server
    
    scp -r hadoop-3.3.0 root@node2:$PWD
    scp -r hadoop-3.3.0 root@node3:$PWD
    
    • 1
    • 2
    • 3
    • 4

    8、将hadoop添加到环境变量(3台机器)

    vim /etc/profile
    
    export HADOOP_HOME=/export/server/hadoop-3.3.0
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    source /etc/profile
    
    
    #别忘了scp给其他两台机器哦
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5、Hadoop目录结构

    目录说明
    binHadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop
    etcHadoop配置文件所在的目录
    include对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序
    lib包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用
    libexec各个服务对用的shel1配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息
    sbinHadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本
    shareHadoop各个模块编译后的 jar包所在的目录,官方自带示例

    6、HDFS初始化

    首次启动HDFS时,必须对其进行格式化操作。

    format本质上是初始化工作,进行HDFS清理和准备工作

    hdfs namenode -format
    
    • 1

    如果多次format,除了造成数据丢失外,还会导致hafs集群主从角色之间互不识别。通过删除所有机器hadoop.tmp.dir目录重新format解决

    三、集群启停命令

    1、手动逐个进程启停

    每台机器上每次手动启动关闭一个角色进程,可以精准控制每个进程启停,避免群起群停

    HDFS集群

    #hadoop2.x版本命令
    hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
    
    #hadoop3.x版本命令
    hdfs --daemon start|stop namenode|datanode|secondarynamenode
    
    • 1
    • 2
    • 3
    • 4
    • 5

    YARN集群

    #hadoop2.x版本命令
    yarn-daemon.sh start|stop resourcemanager|nodemanager
    
    #hadoop3.x版本命令
    yarn --daemon start|stop resourcemanager|nodemanager
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、shell脚本一键启停

    在node1上,使用软件自带的shell脚本一键启动

    前提:配置好机器之间的SSH免密登录和workers文件

    start-dfs.sh
    
    start-yarn.sh
    
    • 1
    • 2
    • 3

    3、进程状态、日志查看

    启动完毕之后可以使用 jps命令查看进程是否启动成功

    Hadoop启动日志路径:/export/server/hadoop-3.3.0/logs/

    四、Web UI

    HDFS集群:http://node1:9870/

    YARN集群:http://node1:8088/

    五、Hadoop初体验

    1、HDFS

    HDFS本质就是一个文件系统

    有目录树结构 和Linux类似,分文件、文件夹

    2、MapReduce+YARN

    执行Hadoop官方自带的MapReduce案例,评估圆周率r的值。

    cd /export/server/hadoop-3.3.0/share/hadoop/mapreduce/
    hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 4
    
    • 1
    • 2
  • 相关阅读:
    function+bind实现多态(松耦合)
    luogu-P1462 通往奥格瑞玛的道路 && ybt-修建道路【最短路+二分】
    Day15--加入购物车实现加入购物车的功能
    go ants源码分析
    力扣:611. 有效三角形的个数
    Android修行手册-POI操作Excel文档
    【信号去噪】基于变分贝叶斯卡尔曼滤波器实现信号滤波附matlab代码
    这道题自己出的,有人会吗(我写了代码,有大佬帮我debug吗)
    基础安全:CSRF攻击原理与防范
    Flink协调器Coordinator及自定义Operator
  • 原文地址:https://blog.csdn.net/wmh1024/article/details/133623328