Hadoop安装及使用

article/2025/10/18 11:58:18

1.简介:

  (1)Hadoop项目为可靠、可扩展的分布式计算开发开源软件。

  (2)Hadoop 软件库是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据

           集。它旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。库本身不是

           依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故障,因此在计算机集群之上

           提供高可用性服务,每台计算机都可能容易出现故障。

  (4)Hadoop项目模块:

           Hadoop 分布式文件系统 (HDFS):一种分布式文件系统,提供对程序数据高吞吐量访问 

         (存储)。

           Hadoop YARN:作业调度和集群资源管理的框架(调度)。

           Hadoop MapReduce:基于 YARN 的系统,用于并行处理大型数据集(运算)。

2.官网:

    官网链接:Apache Hadoop

3.准备:

  (3.1)模板虚拟机安装及配置:

              参考:Linux虚拟机_huivictor的博客-CSDN博客

            (1)Centos7系统安装配置:

                     设置日期、软件桌面、内存分区(1g(/boot:启动所需资源)、4g(swap:内存不

                     够了,用硬盘当作成内存,以保持正常运行)、45g(/:根目录))、KDUMP(可

                     在系统崩溃前备份一部分数据,需要分配内存,保存备份数据,段暂不开启,实际开

                     发中可以开启)、网络和主机名( _N)(打开以太网)、SECURITY POLICY(安全策

                     略:默认打开)、设置root账号密码(默认root)

            (2)网络配置: ​ VMware虚拟网络(NAT):(VMware编辑==>选虚拟网络编辑器)

                     如图:

                                        

 

 

                     Window配置:

                   (网络和 Internet\高级网络设置\网络连接,备用DNS服务器表公网解析器)

                      如图:

                      

            (3)修改ip地址: ​

                     修改内容:BOOTPROTO="static"(设置虚拟机ip为静态,默认值为dhcp动态ip) ​

                     添加内容:

               IPADDR=192.168.10.100(主机静态IP地址)        

               GATEWAY=192.168.10.2 (网关IP地址)        

               DNS1=192.168.10.2   (域名解释器IP地址)

                     命令操作:

        #编辑ifcfg-ens33文件(ifcfg-enp0s3)[root@hadoopTemplate ~]$ vim /etc/sysconfig/network-scripts/ifcfg-ens33#查看文件[root@hadoopTemplate ~]$ cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"......BOOTPROTO="static"......DEVICE="ens33"ONBOOT="yes"
​#添加内容IPADDR=192.168.10.100GATEWAY=192.168.10.2DNS1=192.168.10.2

            (4)修改主机名称:

                     修改内容:hadoopTemplate

                     操作命令:

        #编辑hostname文件[root@hadoopTemplate ~]$ vim /etc/hostname#查看文件[root@hadoopTemplate ~]$ cat /etc/hostnamehadoopTemplate

            (5)主机名称映射: ​

                     添加内容:(后续配置三台集群的服务:hadoop101、hadoop102、hadoop103)

               192.168.10.100 hadoopTemplate        

               192.168.10.101 hadoop101               

               192.168.10.102 hadoop102        

               192.168.10.103 hadoop103

                     命令操作:

        #编辑hosts文件[root@hadoopTemplate ~]$ vim /etc/hosts#查看文件[root@hadoopTemplate ~]$ cat /etc/hosts
​        ......192.168.10.100 hadoopTemplate192.168.10.101 hadoop101192.168.10.102 hadoop102192.168.10.103 hadoop103

            (5)主机名称映射: ​

            (6)重启虚拟机:reboot 或 shutdown -r now

            (7)查看虚拟机ip:ip addr

                     如图:

                     

            (8)测试网络:ping www.baidu.com

                     如图:按Ctrl + c 停止访问                  

                 

            (9)Xshell连接虚拟机:

                     Window配置虚拟机(ip对应虚拟机主机名称)映射,注:如Window10由于权限管理

                     较严,修改不成功,可将hosts文件拷到桌面配置,再放入原位置覆盖。

                     添加内容:Window的hosts文件位置:C:\Windows\System32\drivers\etc

        192.168.10.100 hadoopTemplate192.168.10.101 hadoop101192.168.10.102 hadoop102192.168.10.103 hadoop103

                     测试:使用Xshell连接虚拟机(主机:IP 改成 虚拟机主机名称)

  (3.2)模板虚拟机环境的配置:

            (1)检查网络:

                     命令操作:

        #检查是否正常上网[root@hadoopTemplate ~]$ ping www.baidu.com#安装epel-release:提供高质量软件包,相当于添了一个第三方源[root@hadoopTemplate ~]$ yum install -y epel-release#注意:如虚拟机安装的Centos7系统是最小系统版,#还需要安装如下工具(桌面标准版不用)#工具包集合,包含ifconfig 等命令[root@hadoopTemplate ~]$ yum install -y net-tools#安装编辑器[root@hadoopTemplate ~]$ yum install -y vim#文件传输rsync安装(注:传输的服务器双方都需安装)[root@hadoopTemplate ~]$ yum -y install rsync#ntp服务安装:hadoop集群时间同步设置时使用[root@hadoopTemplate ~]$ yum install -y ntp

            (2)防火墙:

                     命令操作:

        #关闭防火墙[root@hadoopTemplate ~]$ systemctl stop firewalld#关闭防火墙开机自启[root@hadoopTemplate ~]$ systemctl disable firewalld.service#查看防火墙状态[root@hadoopTemplate ~]$ systemctl status firewalld

            (3)创建用户:(参考:Linux虚拟机) ​

                     创建普通用户,并修改普通用户的密码

                     命令:useradd 用户名、passwd 用户名(注:记一下密码)

            (4)创建目录:

                   (配置hui普通用户,在hui用户下,可使用sudo+命令=root权限的任意命令)

                     命令操作:

        #opt目录下创建文件夹:软件解压文件存储位置[root@hadoopTemplate ~]$ mkdir /opt/module[root@hadoopTemplate ~]$ mkdir /opt/software#修改所属用户和所属组:软件压缩包存储位置[root@hadoopTemplate ~]$ chown 用户名:用户名 /opt/module[root@hadoopTemplate ~]$ chown 用户名:用户名 /opt/software

            (5)卸载自带JDK:

                   (注:如果你的虚拟机安装的Centos7系统是最小化安装,则无需执行这一步)

                     命令操作:

      #查看是否有自带jdk[root@hadoopTemplate ~]$ rpm -qa | grep -i java#卸载虚拟机自带jdk[root@hadoopTemplate ~]$ rpm -qa | grep -i  java | xargs -n1 rpm -e --nodeps

                     注:rpm -qa: 查询所安装的所有rpm软件包 ​

                            grep -i: 忽略大小写 ​

                            xargs -n1: 每次只传一个参数 ​

                            rpm -e --nodeps:强制卸载

            (6)重启虚拟机:reboot 或 shutdown -r now

  (3.3)克隆模板虚拟机及设置:(注:克隆时,先关闭克隆的模板虚拟机,选择完全克隆)

            (1) 修改主机ip地址:

                      修改内容:IPADDR=192.168.10.101(主机静态IP地址,根据添加ip映射名称配置)

                      命令操作:

         #编辑ifcfg-ens33文件(ifcfg-enp0s3)   [root@hadoopTemplate ~]$ vim /etc/sysconfig/network-scripts/ifcfg-ens33#查看文件[root@hadoopTemplate ~]$ cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"......BOOTPROTO="static"......DEVICE="ens33"ONBOOT="yes"
​#修改内容IPADDR=192.168.10.101......

            (2)修改主机名称:

                     修改内容:hadoop101(根据添加ip映射名称配置)

                     命令操作:

        #编辑hostname文件[root@hadoopTemplate ~]$ vim /etc/hostname #查看文件[root@hadoopTemplate ~]$ cat /etc/hostnamehadoop101

            (3)重启虚拟机:reboot 或 shutdown -r now

            (4)查看主机名称配置成功:

         [root@hadoopTemplate ~]$ hostnamehadoop101

            (5)检查是否正常上网:ping www.baidu.com

  (3.4)安装软件及配置的环境:

            (1)将jdk1.8、hadoop-3.1.3软件压缩包通过Xftp上传至Linux虚拟机的/opt/software目录

            (2)解压文件:

                     命令操作:

        #切换到新创建的用户账号(su 用户名 或 直接以新账号连接虚拟机)[root@hadoopTemplate ~]$ su hui 密码:#进入software软件压缩包存放目录[hui@hadoopTemplate root]$ cd /opt/software #进入software软件压缩包存放目录(直接以新账号连接虚拟机)[hui@hadoopTemplate ~]$ cd /opt/software #查看文件:ll 或 ls[hui@hadoopTemplate software]$ ll总用量 474692-rw-rw-r--. 1 hui hui 338075860 9月  26 15:57 hadoop-3.1.3.tar.gz-rw-rw-r--. 1 hui hui 148003999 9月  26 15:57 jdk-8u331-linux-x64.tar.gz
​#解压文件到指定目录(-C:解压到指定目录)[hui@hadoopTemplate software]$ tar -zxvf JDK压缩包 -C /opt/module[hui@hadoopTemplate software]$ tar -zxvf hadoop压缩包 -C /opt/module#进入module软件解压文件存放目录[hui@hadoopTemplate software]$ cd ../module/#查看解压文件[hui@hadoopTemplate module]$ ll总用量 0drwxr-xr-x. 9 hui hui 149 9月  12 2019 hadoop-3.1.3drwxr-xr-x. 8 hui hui 273 3月  10 2022 jdk1.8.0_331

            (3)环境配置:将jdk、hadoop环境配置到Linux虚拟机PATH系统变量上

                     编辑my_env.sh文件:

                     编辑内容如下:(注:export表全局生效,$属性表获取对应值)

        #JAVA_HOME环境配置export JAVA_HOME=/opt/module/jdk1.8.0_331export PATH=$PATH:$JAVA_HOME/bin#HADOOP_HOME环境配置export HADOOP_HOME=/opt/module/hadoop-3.1.3export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbin

                     命令操作:

        #编辑my_env.sh文件[hui@hadoopTemplate ~]$ sudo vim /etc/profile.d/my_env.sh#查看文件[hui@hadoopTemplate ~]$ cat /etc/profile.d/my_env.sh

                     保存退出时出现如下错误:权限不足问题

                   (解决:不保存退出,加上sudo+编辑命令再执行即可)

        "/etc/profile.d/my_env.sh"                       "/etc/profile.d/my_env.sh" E212: 无法打开并写入文件请按 ENTER 或其它命令继续

            (4)重新加载profile文件:source /etc/profile

            (5)检查环境配置是否成功:java、hadoop,echo $PATH(查看本机环境变量)

            (6)hadoop安转目录:目录文件分析

        bin(重点命令:hdfs、mapred、yarn)etc(提供大量配置信息,重点:进入hadoop目录core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers)include(C语言头文件)lib(native:本地动态链接库,后面hadoop增加压缩功能使用,重新编译源码)libexecLICENSE.txt(扩展)NOTICE.txt (扩展)README.txt (扩展)sbin(重要:(start-dfs.sh: hadoop专门启动集群的命令start-yarn.sh:hadoop启动资源调度器的命令)这两个命令经常使用mr-jobhistory-daemon.sh:启动list服务器hadoop-daemon.sh:单节点启动(偶尔用一下))share(doc:各种说明文档,hadoop:mapreduce目录中有由官方提供的案例)
​

4.使用:

  (4.1)由官网可知:有三种运行模式 ​

            (1)本地(数据存于服务器本地):测试偶尔用一下 ​

            (2)伪分布式集群(数据存于服务器HDFS):少部分企业使用 ​

            (3)完全分布式集群(数据存于服务器HDFS,多台服务器工作):

                     企业大量使用(开发重点)

  (4.2)本地运行模式:

              编辑内容:任意拼音或英文,如:abc abc、aa、bbb

              目标:统计每次出现的次数

            (hadoop处理过程:输入文本=>mapreduce=>输出统计清单)

              命令操作:(编辑完,按Esc,接着输入 :wq! 保存退出,:q! 不保存退出)

    #进入hadoop101安转目录[hui@hadoop101 ~]$ cd /opt/module/hadoop-3.1.3#创建winput目录[hui@hadoop101 hadoop-3.1.3]$ mkdir winput#编辑word.txt文件[hui@hadoop101 hadoop-3.1.3]$ vim winput/word.txt#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat winput/word.txtabc abcaabbb#执行hadoop的wordcount程序统计案例#bin/hadoop jar share/ (按Tab键提示补全(按2次),注:需指定输入路径)#(需指定输入路径(如:winpu),但输出路径(如:woutput)不能存在,否则抛异常)#执行成功:会在hadoop安装目录生成woutput目录,#并生成有两个文件part-r-00000、_SUCCESS[hui@hadoop101 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-  mapreduce-examples-3.1.3.jar wordcount winput/ ./woutput#查看woutput目录文件[hui@hadoop101 hadoop-3.1.3]$ ll woutput总用量 4-rw-r--r--. 1 hui hui 17 9月  26 19:41 part-r-00000-rw-r--r--. 1 hui hui  0 9月  26 19:41 _SUCCESS#查看woutput目录的part-r-00000文件[hui@hadoop101 hadoop-3.1.3]$ cat woutput/part-r-00000aa   1abc  2bbb  1

  (4.3)完全分布式集群运行模式:(开发重点)

              前提准备:便于服务器间文件传输及访问

            (参考:Linux虚拟机_huivictor的博客-CSDN博客)

            (将jdk、hadoop解压文件及环境配置文件传输到其它集群服务器)

              文件传输:使用scp(拷贝)、rsync(同步)命令进行文件传输

              xsyns文件分发脚本:循环复制文件到所有节点的相同目录下

            (循环将文件传给各个服务器)

              服务器间免密登录:无需输入密码,即可登录其它服务操作其它服务器(ssh免密登录)

            (1)hadoop集群文件配置: ​

                     集群规划: ​

                            NameNode 和 SecondaryNameNode 不要装在同一台服务器。

                            ResourceManager也很消耗内存,不要和 NameNode、SecondaryNameNode

                            不要装在同一台服务器。

                            如图:集群规划节点分布图    

                     配置文件说明:默认和自定义配置文件两种

                     如图:       

                     自定义文件配置:在hadoop-3.1.3/etc/hadoop目录下

                   (1.1)编辑core-site.xml文件:

                               添加内容如下:

              <configuration><!-- 指定 NameNode 的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop101:8020</value> <!-- <hadoop的一个内部通讯地址 --></property><!-- 指定 hadoop 数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value></property><!-- 配置 HDFS 网页登录使用的静态用户为 hui --><property><name>hadoop.http.staticuser.user</name><value>hui</value></property></configuration>

                               命令操作:

              #编辑core-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/core-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/core-site.xml

                   (1.2)编辑hdfs-site.xml文件:

                               添加内容如下:

              <configuration><!-- nn web 端访问地址--><property><name>dfs.namenode.http-address</name><value>hadoop101:9870</value><!-- 暴露给外部web端访问地址--></property><!-- 2nn web 端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>hadoop103:9868</value></property></configuration>

                               命令操作:

              #编辑hdfs-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/hdfs-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/hdfs-site.xml

                   (1.3)编辑yarn-site.xml文件:

                               添加内容如下:

              <configuration><!-- 指定 MR 走 shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定 ResourceManager 的地址--><property><name>yarn.resourcemanager.hostname</name><value>hadoop102</value></property><!-- 环境变量的继承 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>

                               命令操作:

	       #编辑yarn-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/yarn-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/yarn-site.xml

                   (1.4)编辑mapred-site.xml文件:

                               添加内容如下:

              <configuration><!-- 指定 MapReduce 程序运行在 Yarn 上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

                               命令操作:

	       #编辑mapred-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/mapred-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml

                   (1.5)分发文件:

                               将101服务器配置好hadoop的文件通过xsync脚本分发到集群其它服务器

                               命令操作:

	       #分发文件(xsync.sh)[hui@hadoop101 hadoop-3.1.3]$ xsync etc/hadoop#查看其它服务器是否收到文件[hui@hadoop102 hadoop-3.1.3]$ cat etc/hadoop/core-site.xml[hui@hadoop103 hadoop-3.1.3]$ cat etc/hadoop/core-site.xml

            (2)hadoop群起集群: ​

                     编辑内容如下:

                   (注:内容不允许有空个或 空行,配置内容为集群服务器 映射名称 或 IP)

        hadoop101hadoop102hadoop103

                     命令操作:

	       #编辑群起集群的workers文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/workers#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/workers#分发文件(xsync.sh)[hui@hadoop101 hadoop-3.1.3]$ xsync etc/hadoop/workers#查看其它服务器是否收到文件[hui@hadoop102 hadoop-3.1.3]$ cat etc/hadoop/workers[hui@hadoop103 hadoop-3.1.3]$ cat etc/hadoop/workers

            (3)hadoop启动集群:

                     命令操作:

	#第一次需初始化hadoop集群(在hadoop101服务节点 格式化 NameNode件)[hui@hadoop101 hadoop-3.1.3]$ hdfs namenode -format#查看文件:ll 或 ls#初始化成功,会在hadoop安装目录产生data、logs两个文件[hui@hadoop101 hadoop-3.1.3]$ ll#在hadoop101服务启动集群的HDFS[hui@hadoop101 hadoop-3.1.3]$ sbin/start-dfs.sh#在hadoop102服务启动集群的YARN[hui@hadoop102 hadoop-3.1.3]$ sbin/start-yarn.sh#查看hadoop101、hadoop102、hadoop103各服务器节点(参考:集群规划节点分布图)[hui@hadoop101 hadoop-3.1.3]$ jps[hui@hadoop102 hadoop-3.1.3]$ jps[hui@hadoop103 hadoop-3.1.3]$ jps

                     Web 端查看 HDFS 的 NameNode:(HDFS 数据存储界面)

                     浏览器输入:http://hadoop101:9870/,查看存储 HDFS 上存储的数据信息

                     Web 端查看 YARN 的 ResourceManager(YARN 资源调度界面)

                     浏览器输入:http://hadoop102:8088/,查看 YARN 上运行的 Job 信息

            (4)hadoop集群基本测试:上传文件到hadoop集群

                     命令操作:

	#查看文件:ll 或 ls[hui@hadoop101 hadoop-3.1.3]$ ll#上传小文件#在hadoop集群上创建winput目录[hui@hadoop101 hadoop-3.1.3]$ hadoop fs -mkdir /winput#上传本地winput目录中word.txt文件(/winput:上传至hadoop集群winput目录)[hui@hadoop101 hadoop-3.1.3]$ hadoop fs -put winput/word.txt /winput#上传大文件#上传software目录中jdk压缩包(/:上传至hadoop集群根目录)[hui@hadoop101 hadoop-3.1.3]$ hadoop fs -put /opt/software/jdk-8u331- linux-x64.tar.gz /                                                               

                     浏览器输入:http://hadoop101:9870/explorer.html

                   (可看到:有一行 wcinput 文件信息,点击一下winput)

                     刷新浏览器:http://hadoop101:9870/explorer.html

                   (可看到:有一行 word.txt 文件信息)

        数据存于hadoop集群位置==> DataNode节点hadoop集群存放数据位置参考此目录:/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-73686039-192.168.10.101-1663830882077/current/finalized/subdir0/subdir0在subdir0目录中的文件:由数据上传顺序可知如下(先不用管名字,看文件内容即可)blk_1073741825(word.txt文件数据)查看文件:cat blk_1073741825(word.txt文件数据)blk_1073741825_1001.metablk_1073741826(jdk部分数据)blk_1073741826_1002.metablk_1073741827(jdk部分数据)blk_1073741827_1003.meta拼接文件:(追加文件)cat blk_1073741826 >> tem.tar.gzcat blk_1073741827 >> tem.tar.gz解压文件:tar -zxvf tem.tar.gz查看文件:ll jdk目录

                     下载文件:从hadoop集群中下载文件

	#从hadoop集群下载jdk压缩包文件(./:当前目录)[hui@hadoop101 hadoop-3.1.3]$ hadoop fs -get /jdk-8u331-linux-x64.tar.gz ./#查看下载文件:ll 或 ls[hui@hadoop101 hadoop-3.1.3]$ ll

            (5)hadoop集群高可用:

                   (配置的是三台集群服务器,注:如出现第四台服务器,也仅使用其中三台)

                    查看浏览器:http://hadoop101:9870/explorer.html(HDFS 数据存储界面)

                    数据行表头有 Replication 属性,此处值为3,则表有三个副本,即配置集群中的服务

                    器都有存储HDFS 数据。

        进入hadoop102数据存储目录:(查看是否有存储文件)cd /opt/module/hadoop-3.1.3/data/dfs/data/current/BP-73686039-192.168.10.101-1663830882077/current/finalized/subdir0/subdir0/

            (6)执行 wordcount 程序:上传至hadoop集群 ​

                     执行wordcount程序报如下错误:

                     错误1:

              Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

              Please check whether your etc/hadoop/mapred-site.xml contains the below configuration

                     编辑mapred-site.xml文件:

                     添加内容如下:

        <configuration><!-- 指定 MapReduce 程序运行在 Yarn 上 -->......<!-- hadoop运行环境配置-解决执行 wordcount 程序错误 --><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value></property></configuration>

                     错误2:/bin/bash: /bin/java: No such file or directory

                     编辑hadoop-env.sh文件:

                     添加内容如下:

        #配置 JAVA_HOME 环境export JAVA_HOME=/opt/module/jdk1.8.0_331

                     命令操作:

	#执行 wordcount 程序(上传至hadoop集群)[hui@hadoop101 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-    mapreduce-examples-3.1.3.jar wordcount /winput /woutput#执行wordcount程序报错#错误1-解决方案如下:#编辑mapred-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/mapred-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml#错误2-解决方案如下:(注:集群中其它服务器都执行一下软连接命令)#设置/bin/java软连接[hui@hadoop101 hadoop-3.1.3]$ sudo ln -s /opt/module/jdk1.8.0_331/bin/java  /bin/java#编辑hadoop-env.sh文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/hadoop-env.sh#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/hadoop-env.sh#分发修改文件(xsync.sh)[hui@hadoop101 hadoop-3.1.3]$ xsync etc/hadoop/#查看其它服务器是否收到修改文件[hui@hadoop102 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml[hui@hadoop103 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml#停止hadoop集群的HDFS、YARN服务[hui@hadoop101 hadoop-3.1.3]$ sbin/stop-dfs.sh[hui@hadoop102 hadoop-3.1.3]$ sbin/stop-yarn.sh#重启hadoop集群的HDFS、YARN服务[hui@hadoop101 hadoop-3.1.3]$ sbin/start-dfs.sh[hui@hadoop102 hadoop-3.1.3]$ sbin/start-yarn.sh#查看hadoop101、hadoop102、hadoop103各服务器节点[hui@hadoop101 hadoop-3.1.3]$ jps[hui@hadoop102 hadoop-3.1.3]$ jps[hui@hadoop103 hadoop-3.1.3]$ jps#再次执行 wordcount 程序(上传至hadoop集群)[hui@hadoop101 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-    mapreduce-examples-3.1.3.jar wordcount /winput /woutput

            (7)hadoop集群崩溃解决:data文件不小心删除 或 其它问题 导致集群不可用的解决方案

                     命令操作:

	#第一步:停止hadoop集群所有服务[hui@hadoop101 hadoop-3.1.3]$ sbin/stop-dfs.sh[hui@hadoop102 hadoop-3.1.3]$ sbin/stop-yarn.sh#第二步:删除所有集群服务hadoop安装目录中的data、logs文件[hui@hadoop101 hadoop-3.1.3]$ rm -rf data/ logs/[hui@hadoop102 hadoop-3.1.3]$ rm -rf data/ logs/[hui@hadoop103 hadoop-3.1.3]$ rm -rf data/ logs/#第三步:重新初始化hadoop集群[hui@hadoop101 hadoop-3.1.3]$ hdfs namenode -format#第四步:重启hadoop集群所有服务[hui@hadoop101 hadoop-3.1.3]$ sbin/start-dfs.sh[hui@hadoop102 hadoop-3.1.3]$ sbin/start-yarn.sh#第五步:查看各服务器节点是否正常启动[hui@hadoop101 hadoop-3.1.3]$ jps[hui@hadoop102 hadoop-3.1.3]$ jps[hui@hadoop103 hadoop-3.1.3]$ jps
        总结:为何删除data、logs,因为每次启动集都有一个固定版本号对应,而这个版本号信 息存于data目录中,在current目录有一个VERSION文件。参考此目录:/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-184433685- 192.168.10.101-1663842476125/current查看此文件:cat VERSION参考内容如:#Fri Sep 23 13:20:09 CST 2022namespaceID=1769509812(hadoop集群服务唯一标识ID)cTime=1663842476125blockpoolID=BP-184433685-192.168.10.101-1663842476125layoutVersion=-57

            (8)hadoop集群配置历史服务器:

                     编辑mapred-site.xml文件:

                     添加内容:

        <configuration><!-- 指定 MapReduce 程序运行在 Yarn 上 -->......<!-- hadoop运行环境配置-解决执行 wordcount 程序错误 -->......<!-- 历史服务器端地址 --><property><name>mapreduce.jobhistory.address</name><value>hadoop101:10020</value></property><!-- 历史服务器 web 端地址 --><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop101:19888</value></property></configuration>

                     命令操作:

	#编辑mapred-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/mapred-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml#分发文件:分发修改内容到集群其它服务器(xsync.sh)[hui@hadoop101 hadoop-3.1.3]$ xsync etc/hadoop/mapred-site.xml#查看集群其它服务是否收到修改内容[hui@hadoop102 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml[hui@hadoop103 hadoop-3.1.3]$ cat etc/hadoop/mapred-site.xml#启动历史服务器[hui@hadoop101 hadoop-3.1.3]$ bin/mapred --daemon start historyserver#查看历史服务器节点(会有个JobHistoryServer节点)[hui@hadoop101 hadoop-3.1.3]$ jps

                     测试:

                              浏览器输入:http://hadoop101:9870/, 删除woutput文件

                              重新执行wordcount程序,上传至hadoop集群

                              浏览器输入:http://hadoop102:8088/,查看 YARN 上运行的 Job 信息

                              History(点击)

            (9)hadoop集群日志聚集功能配置: ​

                     编辑yarn-site.xml文件: ​

                     添加内容:

        <configuration><!-- 指定 MR 走 shuffle -->......<!-- 指定 ResourceManager 的地址-->......<!-- 环境变量的继承 -->......<!-- 开启日志聚集功能 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 设置日志聚集服务器地址 --><property> <name>yarn.log.server.url</name> <value>http://hadoop101:19888/jobhistory/logs</value></property><!-- 设置日志保留时间为 7 天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>

                     命令操作:

	#编辑yarn-site.xml文件[hui@hadoop101 hadoop-3.1.3]$ vim etc/hadoop/yarn-site.xml#查看文件[hui@hadoop101 hadoop-3.1.3]$ cat etc/hadoop/yarn-site.xml#分发文件:分发修改内容到集群其它服务器(xsync.sh)[hui@hadoop101 hadoop-3.1.3]$ xsync etc/hadoop/yarn-site.xml#查看集群其它服务是否收到修改内容[hui@hadoop102 hadoop-3.1.3]$ cat etc/hadoop/yarn-site.xml[hui@hadoop103 hadoop-3.1.3]$ cat etc/hadoop/yarn-site.xml#单个停止JobHistoryServer历史服务器节点[hui@hadoop101 hadoop-3.1.3]$ mapred --daemon stop historyserver #停止并重启hadoop集群的YARN服务[hui@hadoop102 hadoop-3.1.3]$ sbin/stop-yarn.sh[hui@hadoop102 hadoop-3.1.3]$ sbin/start-yarn.sh#查看hadoop102服务器节点[hui@hadoop102 hadoop-3.1.3]$ jps#重启历史服务器[hui@hadoop101 hadoop-3.1.3]$ bin/mapred --daemon start historyserver#查看历史服务器节点[hui@hadoop101 hadoop-3.1.3]$ jps#执行wordcount程序上传文件测试:(查看YARN工作行,点击logs,即可查看日志)[hui@hadoop101 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop- mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput2

            (10)hadoop集群启动/停止方式总结: ​

                 各模块分别启动:

                         start-dfs.sh(整体启动HDFS)、start-yarn.sh(整体启动YARN)

 ​

                 各服务组件逐一启动: ​

                         hdfs --daemon start/stop namenode / datanode / secondarynamenode ​

                         yarn --daemon start/stop resourcemanager / nodemanager

            (11)Hadoop 集群常用脚本:

                       Hadoop 集群群启、群停

                       编辑myhadoop.sh文件:

                       编辑内容如下:

#!/bin/bash
if [ $# -lt 1 ]thenecho "No Args Input..."exit ;
ficase $1 in
"start")echo " =================== 启动 hadoop 集群 ==================="echo " --------------- 启动 hdfs ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"echo " --------------- 启动 yarn ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"echo " --------------- 启动 historyserver ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭 hadoop 集群 ==================="echo " --------------- 关闭 historyserver ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"echo " --------------- 关闭 yarn ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo " --------------- 关闭 hdfs ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac

                       命令操作:

	 #查看文件:ll 或 ls[hui@hadoop101 ~]$ ll总用量 0lrwxrwxrwx. 1 hui hui  3 9月  21 21:42 bbb -> aaa(软引用表现)drwxrwxr-x. 2 hui hui 55 9月  23 17:43 bin(前面编写xsync脚本已创建的目录)drwxr-xr-x. 2 hui hui  6 9月  20 17:57 公共(桌面版才有此目录,最小化版没有)......#查看当前所在路径[hui@hadoop101 ~]$ pwd/home/hui#编辑myhadoop.sh脚本文件[hui@hadoop101 ~]$ sudo vim bin/myhadoop.sh#查看文件[hui@hadoop101 ~]$ cat bin/myhadoop.sh#授权脚本文件,使其变为可执行文件(授权成功,脚本文件会变成绿色)[hui@hadoop101 ~]$ chmod 777 bin/myhadoop.sh#使用hadoop集群群启/群停脚本(最小版需加上myhadoop.sh后缀名执行)[hui@hadoop101 ~]$ myhadoop start/stop#分发脚本文件到集群其它服务器(xsync.sh)[hui@hadoop101 ~]$ xsync bin/#查看hadoop集群其它服务是否收到脚本文件[hui@hadoop102 ~]$ ll bin/[hui@hadoop103 ~]$ ll bin/

                       单服务查看所有服务节点脚本: ​

                       编辑jpsall.sh文件: ​

                       编辑内容如下:

         #!/bin/bashfor host in hadoop101 hadoop102 hadoop103doecho =============== $host ===============ssh $host jpsdone

                       命令操作:

         #编辑jpsall.sh脚本文件[hui@hadoop101 ~]$ sudo vim bin/jpsall.sh#查看文件[hui@hadoop101 ~]$ cat bin/jpsall.sh#授权脚本文件,使其变为可执行文件(授权成功,脚本文件会变成绿色)[hui@hadoop101 ~]$ chmod 777 bin/jpsall.sh#集群中任意一个服务即可查看所有服务节点(最小版需加上jpsall.sh后缀名执行)[hui@hadoop101 ~]$ jpsall#分发脚本文件到集群其它服务器(xsync.sh)[hui@hadoop101 ~]$ xsync bin/#查看hadoop集群其它服务是否收到脚本文件[hui@hadoop102 ~]$ ll bin/[hui@hadoop103 ~]$ ll bin/

            (12)hadoop集群时间同步:服务能连外网,则不用同步时间 ​

                     (注:一般实际开发中,无需配置,会影响性能,因为服务会连外网更新时间)

                      ​ 编辑ntp.conf 文件: ​

                       配置内容如下:

         #hadoop集群时间同步配置1:hadoop集群网段,使此网段中服务器间互访restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap#hadoop集群时间同步配置2:去除服务访问外部网络,使用上述配置1中的内部网段#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.org iburst#server 3.centos.pool.ntp.org iburst#hadoop集群时间同步配置3:#当该节点丢失网络连接,#依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步server 127.127.1.0fudge  127.127.1.0 stratum 10

                      ​ 编辑ntpd文件:SYNC_HWCLOCK=yes(让硬件时间与系统时间一起同步)

                      ​ 在其他机器配置 1 分钟与时间服务器同步一次:sudo crontab -e

                      ​        编写定义任务:*/1 * * * * /usr/sbin/ntpdate hadoop101

                      ​ 命令操作:

         #切换root账号[hui@hadoop101 ~]$ su root密码:#查看ntpd状态[root@hadoop101 hui]$ systemctl status ntpd#开启ntpd[root@hadoop101 hui]$ systemctl start ntpd#开机自启ntpd[root@hadoop101 hui]$ systemctl is-enabled ntpd#编辑ntp.conf文件[root@hadoop101 hui]$ vim /etc/ntp.conf #查看文件[root@hadoop101 hui]$ cat /etc/ntp.conf #编辑ntpd文件[root@hadoop101 hui]$ vim /etc/sysconfig/ntpd#查看文件[root@hadoop101 hui]$ cat /etc/sysconfig/ntpdSYNC_HWCLOCK=yes#关闭集群中其它服务的ntpd:先断开与外网连接 [root@hadoop102 hui]$ systemctl stop ntpd[root@hadoop102 hui]$ systemctl disable ntpd[root@hadoop103 hui]$ systemctl stop ntpd[root@hadoop103 hui]$ systemctl disable ntpd#在其他机器配置 1 分钟与时间服务器同步一次[root@hadoop102 hui]$ sudo crontab -e#退出root账号[root@hadoop101 hui]$ exit[root@hadoop102 hui]$ exit#查看hadoop101、hadoop102服务日期时间[hui@hadoop101 ~]$ date[hui@hadoop102 ~]$ date#测试日期时间同步#更改hadoop102服务日期时间[hui@hadoop102 ~]$ sudo date -s "2023-11-11 11:11:11"#查看hadoop102服务日期时间[hui@hadoop102 ~]$ date2023年 11月 11日 星期六 11:11:11 CST#等待1分钟后再查看hadoop102服务日期时间,是否被hadoop101服务同步时间[hui@hadoop102 ~]$ date

http://chatgpt.dhexx.cn/article/u9Mq5d8u.shtml

相关文章

史上最详细的hadoop安装教程(含坑点)

0.前言 最近因为需要所以要安装hadoop&#xff0c;但是网上怎么说呢&#xff0c;就是很混乱&#xff0c;各种资料&#xff0c;各种安装方法&#xff0c;总体来说都不是很有效果&#xff0c;经过了3天的挣扎&#xff0c;收集资料&#xff0c;才完成了部署。 1.从官网上获得对应…

史上最详细的hadoop安装教程

一、引言 首先说明一下&#xff0c;本文的安装教程仅是针对个人的操作经验所写的。可能有些同学安装的时候觉得跟他的不一样&#xff0c;那可能是由于版本不一样所导致的。另外本次分享是基于已经安装了java及配置好了环境。 本机的配置环境如下&#xff1a; Hadoop(3.1.1) Ubu…

hadoop安装(超详细)

本文用到的软件 设置固定IP &#xff08;1&#xff09; &#xff08;2&#xff09;修改配置文件“/etc/sysconfig/network-scripts/ifcfg-ens33” #修改&#xff1a; ONBOOTyes NM_CONTROLLEDyes BOOTPROTOstatic \#添加以下内容 IPADDR192.168.128.130(根据自身情况) NE…

Charles安卓8手机抓包

目的 通过PC端的Charles&#xff0c;对安卓系统8的手机APP进行抓包。 先说明&#xff0c;只能对Android10以下进行抓包&#xff0c;高版本的不行。 步骤 1、PC端安装Charles并破解 可以去Charles官网下载应用&#xff0c;下载好之后直接安装到本地。 下载链接&#xff1a;h…

fiddler安卓模拟器与ios手机抓包

一.安卓模拟器(雷电模拟器)抓包 1.1fiddler基本配置 1.2导出Fiddler证书 Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop 在桌面上看到导出的FiddlerRoot.cer证书文件 1.3下载和安装openssl openssl下载地址 git终端输入 open…

charles抓包工具使用及手机抓包教程

目录 1.前言 2.操作环境条件 3.操作步骤 3.1.电脑配置 3.2.手机配置 4.抓包实战 5.网络代理 6.参考文章 1.前言 不知道怎么抓包手机&#xff08;移动端&#xff09; 如何抓取手机HTTPS的包 2.操作环境条件 电脑系统&#xff1a;Mac OS 手机系统&#xff1a;Android …

使用fiddler对android手机抓包

前言 以往在PC或Linux服务后台定位问题的时候&#xff0c;wireshark等抓包工具是必不可少要具备的&#xff0c;最近搞android播放器开发&#xff0c;为了定位问题方便&#xff0c;也装了fiddler等抓包工具。 以下是在win上使用fiddler抓包工具的详细教程。 一、下载fiddler抓包…

Charles4.6.2版本手机抓包设置,抓包失败的解决方法详解

一、Charles手机抓包设置 第一步&#xff1a;设置Charles为允许状态&#xff0c;并设置好接入的接口 在Charles的菜单栏选择“Proxy”->“Proxy Settings”&#xff0c;填入代理端口8888&#xff08;⚠️这个端口不一定填写8888&#xff0c;也可以写别的端口&#xff09;&…

wireshark手机抓包分析(一)

一、先给你的电脑开个共享WiFi win10怎么设置wifi热点 这里注意一定要选择2.4hz&#xff0c;否则根本搜不到电脑开的wifi。 然后就连wifi就行了。 这里需要注意的点就是&#xff0c;你的wifi开启了可能连不上&#xff0c;可以试试&#xff1a; 网络共享中心---->以太网—&…

charles手机抓包配置

Charles手机抓包 静静地就好关注 2020.07.26 22:12:27字数 393阅读 873 一、Charles设置 1、让电脑和手机处于同一个局域网下&#xff0c;即电脑和手机连接同一个WiFi【电脑开WiFi给手机连接也可以】&#xff1b; 2、打开Charles&#xff0c;点击菜单栏中Proxy –> Prox…

postman手机抓包(http协议)——比fiddler简单直观

针对http协议的浏览器网页抓包。见 之前写过一篇用fiddler抓包。今天来说一个更好的&#xff0c;postman抓包。 以下是针对http协议的手机抓包&#xff0c;https开头的用如下方式是不能的&#xff0c;http是超文本传输协议&#xff0c;信息是明文传输&#xff0c;https则是具…

使用whistle进行手机抓包并调试

whistle是一个基于Node实现的跨平台web调试代理工具&#xff0c;类似Windows上的Fiddler&#xff0c;Mac上的Charles&#xff0c;主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应&#xff0c;也可以作为HTTP代理服务器使用&#xff0c;不同于Fiddler通过断点修改请求响应…

手机端抓包分析

1前提&#xff1a; wireshark是针对网络端口进行抓包的一款工具&#xff0c;由于环境限制&#xff0c;一些通过wifi热点进行抓包的方式并不适用&#xff0c;所以涉及到对手机流量进行分析的时候&#xff0c;可以通过在手机上进行tcpdump&#xff0c;将抓取的pcap包通过wireshar…

fiddler手机抓包

1&#xff1a;打开fiddler&#xff0c;点击菜单栏的Tools->Options,进行设置。设置时&#xff0c;保证端口号不会被占用&#xff1b;设置完成&#xff0c;点击【ok】。 2&#xff1a;点击HTTPS&#xff0c;开始设置&#xff0c;必须勾选所选框中内容&#xff0c;设置完成点击…

手机抓包图文教程

手机抓包图文教程 给大家介绍下如何使用Fiddler进行手机抓包。 运行环境为Windows 10&#xff0c;使用手机为iPhone 7&#xff0c;iOS11系统。 0. 准备工作 首先需要确保手机及电脑在同一个局域网内&#xff0c;如连接了同一个无线路由器。 Fiddler配置 运行Fiddler后打开配置…

charles手机抓包教程

charles手机抓包教程 一、设置系统代理 二、电脑端安装证书 安装的时候就注意证书放在“受信任的证书委发机构”就行&#xff0c;其他的都是点下一步 三、设置代理 四、设置手机上的代理 让手机和电脑保持连接同一个wifi 先查看电脑端的地址 再设置手机代理&#xff08…

台式机fiddler手机抓包

台式机fiddler手机抓包 因为兴趣,最近研究了一下,如何对手机抓包,自己做个笔记,方便以后查看,现在简单说一下操作流程及操作中遇到的问题。 一、设备 1.无线USB网卡,电脑、手机。 因为手机用fiddler抓包的时候,需要电脑和手机要在同一个局域网,我自己的电脑是台式机,…

【fiddler】用fiddler实现iPhone手机抓包

一、fiddler的简介 fiddler是位于客户端和服务器端之间的代理&#xff0c;也是目前最常用的抓包工具之一 。 它能够记录客户端和服务器之间的所有 请求&#xff0c;可以针对特定的请求&#xff0c;分析请求数据、设置断点、调试web应用、修改请求的数据&#xff0c;甚至可以修…

Fiddler实现手机抓包——小白入门

手机用fiddler抓包 电脑最好是笔记本&#xff0c;这样能和手机保持统一局域网内&#xff1b;其他不多说&#xff0c;直接说步骤了。 一.对PC&#xff08;笔记本&#xff09;参数进行配置 1. 配置fiddler允许监听到https&#xff08;fiddler默认只抓取http格式的&#xff09; …

Burp-手机抓包

1.手机和电脑需要在同一网络下&#xff0c;可以连同一个wifi 或者 电脑开热点 2.配置代理。 在命令行中输入ipconfig。 在burp中设置代理 配置手机代理&#xff0c;选择手动代理&#xff0c;填写主机名&#xff08;ip&#xff09;和端口。 完成以上步骤&#xff0c;就可以抓到…