ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

1.1 Hadoop伪分布式和完全分布式前期部署

1.1 Hadoop伪分布式和完全分布式前期部署 1.1.1 实验环境概述本文档主要完成Hadoop伪分布式和完全分布式部署的前期准备工作包括在VMware上创建虚拟机、进行系统初始化设置、配置网络连接以及克隆多台虚拟机并分别完成网络配置为后续Hadoop集群搭建奠定基础。整个前期部署过程分为以下三个核心步骤创建虚拟机在VMware Workstation Pro中创建Ubuntu虚拟机并完成初始化设置。网络连接设置配置虚拟网络编辑器与Ubuntu系统内的网络参数确保可以正常联网。克隆虚拟机克隆另外两台虚拟机并分别修改IP地址完成三台节点的网络配置。1.1.2 在VMware上创建虚拟机并初始化1.1.2.1 创建虚拟机在Windows系统中安装VMware Workstation Pro运行主界面如下显示在VMware Workstation Pro主界面中点击创建新的虚拟机安装Ubuntu系统弹出如下界面选择典型推荐点击下一步进入如下界面点击安装程序光盘映像文件.iso系统光盘文件并选择文件所在路径ubuntu20.04文件点击下一步进入命名虚拟机对话框。填写名称格式要求全英文小写密码设置要简单后续会经常输入。点击下一步弹出如下界面填写虚拟机名称选择虚拟系统安装位置点击下一步弹出磁盘容量设置按照图片所示默认设置即可后续容量可以更改。点击下一步进入虚拟机其他硬件配置界面点击界面中自定义硬件弹出如下子界面选择处理器设置处理器数量2每个处理器的内核数量2点击关闭返回虚拟机设置界面点击完成。发现在VMware Workstation Pro主界面中出现node01新的Ubuntu虚拟系统点击右侧开启此虚拟机进入虚拟机初始化界面。注意如果最后安装过程中出现错误可能是文件在拷贝过程中损坏请重新拷贝新的.iso映像文件安装。1.1.2.2 虚拟机初始化及屏幕设置等待安装10分钟左右即可进入Ubuntu系统登录界面。输入密码确定登录进入系统初始化一直点击Next下一步最后点击Done完成初始化设置。设置界面大小第一步在VMware Workstation Pro主界面工具栏中选择保持纵横比拉伸此时屏幕清晰度不够继续如下设置然后在Ubuntu系统界面下右键点击屏幕弹出如下窗口点击Display Settings显示器设置进入设置界面选择2560*160016:10分辨率按自己喜好设置即可并选择Scale尺度为200%点击右上角绿色按钮Apply应用最后点击保持设置完成屏幕分辨率和大小设置。1.1.3 虚拟机网络连接设置进行网络连接设置按照如下设置连接网络。在VMware Workstation Pro主界面中编辑工具栏中选择虚拟网络编辑器弹出如下网络设置界面选择VMNet8点击右下角更改设置点击是按照下图箭头所示内容进行设置点击确定。接下来在Ubuntu系统中进行设置。回到虚拟系统桌面在右上角点击设置点击左侧网络Network开启网络开关并点击进行设置。在弹出的设置界面中选择IPv4进行如下图所示的设置完成后点击右上角应用按钮。等待几秒钟后点击主屏幕左侧浏览器输入百度网站地址www.baidu.com测试是否可以正确联网。如果未能连接网络可以尝试如下解决方案检查IP地址、网关、DNS等是否正确设置。重启虚拟机系统。检查本地Windows系统是否正确联网。1.1.4 克隆另外两台虚拟机并分别进行网络设置在VMware Workstation Pro主界面中关闭刚才建立好的虚拟机系统并在左侧右击已经建立好的Ubuntu虚拟系统node01选择管理、克隆弹出如下界面点击下一页选择虚拟机中的当前状态点击下一页选择创建完成克隆点击下一页设置虚拟机名称和位置点击完成。等待克隆完成在VMware Workstation Pro主界面左侧出现node02虚拟系统。选择进入node02系统开启此虚拟机等待初始化完成进入系统登录界面密码与node01相同。按照相同步骤克隆node03系统。完成node02和node03的克隆之后进行这两个系统的网络设置。注意VMware Workstation Pro主界面编辑中虚拟网络编辑器中的设置保持不变只修改Ubuntu虚拟系统中的IP地址。修改node02进入网络、设置只修改下图箭头所示的地址将node02系统的192.168.18.201改为192.168.18.202其他不变点击应用完成设置测试是否联网。修改node03进入网络、设置将node03系统的192.168.18.201改为192.168.18.203其他不变点击应用完成设置测试是否联网。node01、node02、node03三台系统全部测试联网成功后克隆完成Hadoop伪分布式和完全分布式部署的前期环境准备完毕。1.1.5 补充说明以上内容为Hadoop伪分布式和完全分布式部署的前期准备完整流程包括虚拟机创建、系统初始化、网络连接设置以及三台节点的克隆与配置。本文档内容追加在原有正文之后不覆盖前文所述步骤供后续Hadoop集群搭建时参考。1.1.6 构建伪分布式Hadoop集群本文档主要用于完成以下内容在Linux中安装JDK、安装Hadoop、启动Hadoop。1.1.6.1 在Linux中安装JDK使用WinSCP将本地的JDK安装包上传到虚拟机上将jdk安装包上传到Node01虚拟机的Downloads文件夹下。下一步检查当前虚拟机是否安装JDK打开虚拟机终端在终端键入java -version即可查看并未安装JDK。使用cd命令进入压缩包所在目录并进行解压缩使用命令tar -zxvf jdk-8u212-linux-x64.tar.gz -C /home/kevin/Downloads/按下回车键等待解压缩完成即可在Downloads文件夹下出现解压完成的文件夹。配置运行JDK的环境变量使用sudo vim /etc/profile命令打开文件选择文件的最后一行按下i键进入编辑模式添加以下内容export JAVA_HOME/home/kevin/Downloads/jdk1.8.0_212/ #注意这里需修改为自己解压jdk的位置 export PATH$PATH:$JAVA_HOME/bin export JRE_HOME${JAVA_HOME}/jre export CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib添加完成后按下ESC键退出编辑模式再输入:wq保存并退出。使用source /etc/profile命令让配置的环境变量生效最后使用java -version命令查看是否安装成功。1.1.6.2 安装Hadoop使用WinSCP将本地的Hadoop3.3.5安装包上传到虚拟机上将Hadoop3.3.5安装包上传到Node01虚拟机的Downloads文件夹下。然后使用命令将文件解压到当前路径tar -zxvf /home/kevin/Downloads/hadoop-3.3.5.tar.gz -C /home/kevin/Downloads/等待解压完成可看到hadoop-3.3.5文件夹即Hadoop安装目录为/home/kevin/Downloads/hadoop-3.3.5。配置Hadoop环境变量使用sudo vim /etc/profile命令打开文件在当前文件的最后一行按下i键进入编辑模式添加以下内容export HADOOP_HOME/home/kevin/Downloads/hadoop-3.3.5 #注意这里需修改为自己hadoop的位置 export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin添加完成后按下ESC键退出编辑模式再输入:wq保存并退出。使用source /etc/profile命令让配置的环境变量生效最后使用java -version命令查看是否安装成功。1.1.6.3 配置SSH免密登录输入下面两条命令ssh-keygen -t rsa ssh-copy-id localhost设置免密登录之后输入ssh localhost进行测试在不输入密码的情况下终端输出相应内容则设置成功。1.1.6.4 配置Hadoop首先进入Hadoop配置文件存放目录命令如下cd Downloads/hadoop-3.3.5/etc/hadoop/。修改hadoop-env.sh文件使用sudo vim hadoop-env.sh命令打开hadoop-env.sh文件添加以下内容export JAVA_HOME/home/kevin/Downloads/jdk1.8.0_212 #注意这里需修改为自己jdk所在压的路径修改core-site.xml文件使用WinSCP远程登录虚拟机用Windows系统中已经修改完成的配置文件对Ubuntu系统中对应文件进行替换注意此文件中内容需要修改hadoop目录和自己电脑的对应。远程登录成功后找到本地机和虚拟机各自对应的文件位置右击左侧的core-site.xml文件点击上传点击确认覆盖原文件。修改hdfs-site.xml使用WinSCP相同的操作方法对hdfs-site.xml文件进行替换。修改yarn-site.xml使用WinSCP相同的操作方法对yarn-site.xml文件进行替换。修改mapred-site.xml使用WinSCP相同的操作方法对mapred-site.xml文件进行替换。创建配置文件中相关的目录新开一个终端输入下列命令即可mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp/nndata mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp/dndata1.1.6.5 启动Hadoop在Windows系统的secureCRT软件中进行虚拟机的连接连接完成后输入命令行进行操作。格式化NameNode首次启动HDFS必须对主节点进行格式化处理使用命令如下hadoop namenode -format启动Hadoop使用下面两行命令来分别启动HDFS和YARN集群start-dfs.sh start-yarn.sh或者使用start-all.sh命令来一次性启动HDFS和YARN集群以及使用stop-all.sh命令一次性关闭集群。注意1.不要频繁使用hadoop namenode -format进行格式化。2.启动hadoop集群使用后一定要关闭hadoop切记不要不关闭hadoop直接关虚拟机。以上可能会导致hadoop不能正常启动。输入jps命令出现如下图结果所示进程则启动成功。1.1.7 构建完全分布式Hadoop集群本文档主要用于完成以下内容在Linux中构建完全分布式Hadoop集群。在此之前需要同学们已经掌握并安装完成伪分布式Hadoop集群相关知识内容。因为Node01的Linux系统已经被作为伪分布式使用所以需要从Node02中再克隆一台新的Node01系统并将其主机名以及网络IP地址修改为Node01和192.168.18.201。此时VMware工作台中将会有四个Linux系统一个是伪分布式Hadoop另外三个分别是Node01、Node02、Node03。Node01、Node02、Node03将会组成完全分布式Hadoop集群Node01作为主节点Node02和Node03作为数据节点。接下来将正式进入完全分布式Hadoop集群的构建。如果克隆得到的Node01中未安装JDK和Hadoop则按照下述步骤再次安装若已安装则无需再安装跳过这两步安装过程进入下一步Hadoop环境配置需注意此处操作过程相似但配置的文件不同。1.1.7.1 在Linux中安装JDK使用WinSCP将本地的JDK安装包上传到虚拟机上将jdk安装包上传到Node01虚拟机的Downloads文件夹下。下一步检查当前虚拟机是否安装JDK打开虚拟机终端在终端键入java -version即可查看并未安装JDK。使用cd命令进入压缩包所在目录并进行解压缩使用命令tar -zxvf jdk-8u212-linux-x64.tar.gz -C /home/kevin/Downloads/按下回车键等待解压缩完成即可在Downloads文件夹下出现解压完成的文件夹。配置运行JDK的环境变量使用sudo vim /etc/profile命令打开文件选择文件的最后一行按下i键进入编辑模式添加以下内容export JAVA_HOME/home/kevin/Downloads/jdk1.8.0_212/ #注意这里需修改为自己解压jdk的位置 export PATH$PATH:$JAVA_HOME/bin export JRE_HOME${JAVA_HOME}/jre export CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib添加完成后按下ESC键退出编辑模式再输入:wq保存并退出。使用source /etc/profile命令让配置的环境变量生效最后使用java -version命令查看是否安装成功。1.1.7.2 安装Hadoop使用WinSCP将本地的Hadoop3.3.5安装包上传到虚拟机上将Hadoop3.3.5安装包上传到Node01虚拟机的Downloads文件夹下。然后使用命令将文件解压到当前路径tar -zxvf /home/kevin/Downloads/hadoop-3.3.5.tar.gz -C /home/kevin/Downloads/等待解压完成可看到hadoop-3.3.5文件夹即Hadoop安装目录为/home/kevin/Downloads/hadoop-3.3.5。配置Hadoop环境变量使用sudo vim /etc/profile命令打开文件在当前文件的最后一行按下i键进入编辑模式添加以下内容export HADOOP_HOME/home/kevin/Downloads/hadoop-3.3.5 #注意这里需修改为自己hadoop的位置 export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin添加完成后按下ESC键退出编辑模式再输入:wq保存并退出。使用source /etc/profile命令让配置的环境变量生效最后使用java -version命令查看是否安装成功。1.1.7.3 配置SSH免密登录输入下面两条命令ssh-keygen -t rsa ssh-copy-id localhost设置免密登录之后输入ssh localhost进行测试在不输入密码的情况下终端输出相应内容则设置成功。具体操作过程可参考免密登陆.doc文件。首先在主节点Node01进行Hadoop集群配置然后将配置文件复制到两个从节点中去。1.1.7.4 配置Hadoop修改hadoop-env.sh文件与伪分布式文件内容和操作都相同。首先进入Hadoop配置文件存放目录命令如下cd Downloads/hadoop-3.3.5/etc/hadoop/。使用sudo vim hadoop-env.sh命令打开hadoop-env.sh文件添加以下内容export JAVA_HOME/home/kevin/Downloads/jdk1.8.0_212 #注意这里需修改为自己jdk所在压的路径修改core-site.xml文件使用WinSCP远程登录虚拟机用Windows系统中已经修改完成的配置文件对Ubuntu系统中对应文件进行替换注意此文件中内容需要修改两处一是HDFS的Namenode地址应修改为Node01二是修改hadoop目录与自己电脑相应位置对应。在分发的文件中修改完成后远程登录WinSCP找到本地机和虚拟机各自对应的文件位置右击左侧的core-site.xml文件点击上传点击确认覆盖原文件。修改hdfs-site.xml注意此文件中内容需要修改一处配置文件hdfs-site.xml中配置项dfs.replication的值设为3与完全分布式虚拟机数量对应。然后使用WinSCP相同的操作方法对hdfs-site.xml文件进行替换。修改yarn-site.xml注意此文件中内容需要修改一处配置文件yarn-site.xml中ResourceManager主机名设置为Node01。然后使用WinSCP相同的操作方法对yarn-site.xml文件进行替换。修改mapred-site.xml使用WinSCP相同的操作方法对mapred-site.xml文件直接进行替换。修改workers文件首先使用对应位置的命令进入workers文件所在位置cd Downloads/hadoop-3.3.5/etc/hadoop/然后使用命令sudo vim workers进入编辑界面输入并保存如下内容表示完全分布式模式下有三个节点node01 node02 node03创建配置文件中相关的目录新开一个终端输入下列命令即可路径需更改为和自己hadoop下名称相同mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp/nndata mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp/dndata完成Node01的配置后可以直接使用WinSCP将配置文件发送到Node02和Node03中推荐。或使用下列命令进行复制可尝试scp /etc/profile Node02:etc/profile scp /etc/profile Node03:etc/profile scp -r /home/kevin/Downloads/ Node02:/ scp -r /home/kevin/Downloads/ Node03:/无论采用哪种方式完成复制后需要分别在从节点Node02和Node03上执行source /etc/profile命令。1.1.7.5 启动Hadoop在Windows系统的secureCRT软件中分别进行三台虚拟机的连接然后在VMware上分别打开三台虚拟机全部完成后输入命令行进行启动Hadoop操作。格式化NameNode首次启动HDFS必须对主节点进行格式化处理使用命令如下hadoop namenode -format启动Hadoop使用下面两行命令来分别启动HDFS和YARN集群start-dfs.sh start-yarn.sh或者使用start-all.sh命令来一次性启动HDFS和YARN集群以及使用stop-all.sh命令一次性关闭集群。注意1.不要频繁使用hadoop namenode -format进行格式化。2.启动hadoop集群使用后一定要关闭hadoop切记不要不关闭hadoop直接关虚拟机。以上可能会导致hadoop不能正常启动。通过命令jps可以查看各个节点所启动的进程。如果已经正确启动则在Node01节点上可以看到NameNode、ResourceManager等进程。输入jps命令出现相应结果所示进程则启动成功。在Node02节点和Node03节点也可以看到相应进程。另外还需要在Node01节点上通过命令hdfs dfsadmin -report查看数据节点是否正常启动如果屏幕信息中的Live datanodes不为0则说明集群启动成功。数据节点启动成功以后依次可以看到Node01、Node02和Node03已全部启动。也可以在Linux系统的浏览器中输入地址http://Node01:9870/通过Web页面查看名称节点和数据节点的状态。如果不成功可以通过启动日志排查原因。1.1.7.6 测试HDFS文件操作使用下列命令进行测试mkdir /home/kevin/Downloads/input # 改为自己对应地址 cd /home/kevin/Downloads/input # 改为自己对应地址 echo hello world test1.txt #创建test1文件内容为hello world echo hello hadoop test2.txt hdfs dfs -mkdir /in hdfs dfs -put *.* /in # 将两个文件上传到HDFS的/in目录中使用命令hdfs dfs -ls /in验证是否正确上传。另外也可以通过使用浏览器访问主节点Node01的9870端口查看当前文件情况。1.1.7.7 测试MapReduce示例程序使用hadoop自带的mapreduce示例程序进行验证使用下列命令进行测试cd /home/kevin/Downloads/hadoop-3.3.5/share/hadoop/mapreduce hadoop jar hadoop-mapreduce-examples-3.3.5.jar wordcount /in /output/in有刚才test1.txt和test2.txt两个文件执行程序会自动读取两个文件并将执行结果保存在HDFS的/output目录中。运行成功后会出现单词个数统计结果文件part-r-00000使用命令hdfs dfs -cat /output/part-r-00000可以看到输出内容。注意若要再次运行mapreduce程序需要删除HDFS的/output目录。1.1.8 SSH无密码登录节点必须要让Node01主节点可以SSH无密码登录到各个数据节点上。首先生成Node01主节点的公钥如果之前已经生成过公钥必须要删除原来生成的公钥重新生成一次因为前面我们对主机名进行了修改。具体命令如下cd ~/.ssh # 如果没有该目录先执行一次ssh localhost rm ./id_rsa* # 删除之前生成的公钥如果已经存在 ssh-keygen -t rsa # 执行该命令后遇到提示信息一直按回车就可以为了让Master节点能够无密码SSH登录本机需要在Master节点上执行如下命令cat ./id_rsa.pub ./authorized_keys完成后可以执行命令ssh Node01来验证一下可能会遇到提示信息只要输入yes即可测试成功后请执行exit命令返回原来的终端。接下来在Node01主节点将公钥传输到Node02数据节点scp ~/.ssh/id_rsa.pub kevinNode02:/home/kevin/Downloads/hadoop-3.3.5/注意下划线内容需更换为需要传输目标虚拟机对应的名称和位置如果输入上述命令后出现如下错误是因为远程传输时权限被拒绝则需要进行对Node02和Node03的权限进行修改。修改权限解决远程传输权限被拒绝的问题可参考此文档https://blog.csdn.net/m82_a1/article/details/97624965首先使用sudo vim /etc/ssh/sshd_config更改设置进入如下内容后选择下图框选内容取消注释然后保存退出。输入下列命令重启ssh服务systemctl restart ssh.service然后输入密码点击确定。此时再使用如下命令scp ~/.ssh/id_rsa.pub kevinNode02:/home/kevin/Downloads/hadoop-3.3.5/出现传输100%则为成功。接着在Node02数据节点上将SSH公钥加入授权使用如下命令mkdir ~/.ssh # 如果不存在该文件夹需先创建若已存在则忽略本命令 cat /home/kevin/Downloads/hadoop-3.3.5/id_rsa.pub ~/.ssh/authorized_keys #下划线位置改为刚才传输的地址 rm /home/kevin/Downloads/hadoop-3.3.5/id_rsa.pub # 用完以后就可以删掉因为还有Node03数据节点所以还要执行将Node01的公钥传输到Node03数据节点以及在Node03数据节点上加入授权这两步操作。这样在Node01节点上就可以无密码SSH登录到各个数据节点了可在Node01节点上执行如下命令进行检验ssh Node02执行该命令的效果如下图所示。此时是执行命令等同于在Node02节点上执行。此时键入exit命令又返回为Node01主节点中。1.1.9 全文命令速查与详解本节把全文涉及的所有命令按用途整理成速查表每条命令都给出可复制代码块和详细说明方便直接对照执行。1.1.9.1 环境检查与解压命令检查当前虚拟机是否已安装JDKjava -version说明如果终端输出java版本信息说明JDK已安装如果提示command not found说明未安装需要继续执行下面的解压安装步骤。解压JDK安装包到指定目录tar -zxvf jdk-8u212-linux-x64.tar.gz -C /home/kevin/Downloads/说明-zxvf表示解压并显示过程-C指定解压目标目录。请把文件名和目录路径替换为你自己实际的JDK包名和存放位置。解压Hadoop安装包到指定目录tar -zxvf /home/kevin/Downloads/hadoop-3.3.5.tar.gz -C /home/kevin/Downloads/说明解压完成后Hadoop安装目录为/home/kevin/Downloads/hadoop-3.3.5后续配置都基于这个目录。1.1.9.2 环境变量配置命令打开系统环境变量配置文件sudo vim /etc/profile说明使用管理员权限打开/etc/profile文件。进入编辑界面后按i键进入编辑模式在文件最后一行追加环境变量内容编辑完成后按ESC键退出编辑模式输入:wq保存并退出。让环境变量立即生效source /etc/profile说明每次修改完/etc/profile后都必须执行此命令否则新配置的环境变量不会在当前终端生效。1.1.9.3 SSH免密登录配置命令生成SSH密钥对ssh-keygen -t rsa说明-t rsa表示生成RSA类型密钥。执行后遇到提示信息一直按回车即可会在~/.ssh目录下生成私钥id_rsa和公钥id_rsa.pub。将公钥复制到本机授权列表ssh-copy-id localhost说明该命令会把本机公钥添加到本机的authorized_keys文件中实现本机免密登录本机。执行时需要输入本机密码。测试本机免密登录ssh localhost说明如果不需要输入密码直接进入终端说明免密登录配置成功。测试完成后输入exit返回原终端。删除旧公钥并重新生成主机名修改后必须执行cd ~/.ssh rm ./id_rsa* ssh-keygen -t rsa说明因为修改主机名后旧公钥失效需要先删除旧公钥再重新生成。cd进入.ssh目录rm删除所有id_rsa开头的旧密钥文件然后重新生成。将本机公钥加入本机授权Master节点cat ./id_rsa.pub ./authorized_keys说明表示追加写入把公钥内容追加到authorized_keys授权文件中实现本机免密登录本机。将公钥传输到数据节点scp ~/.ssh/id_rsa.pub kevinNode02:/home/kevin/Downloads/hadoop-3.3.5/说明scp是远程复制命令把Node01主节点的公钥传输到Node02数据节点的指定目录。kevinNode02中的kevin是用户名Node02是目标主机名后面的路径是公钥存放位置请按实际环境替换。在数据节点上创建.ssh目录并加入授权mkdir ~/.ssh cat /home/kevin/Downloads/hadoop-3.3.5/id_rsa.pub ~/.ssh/authorized_keys rm /home/kevin/Downloads/hadoop-3.3.5/id_rsa.pub说明mkdir创建.ssh目录若已存在可跳过cat把传输过来的公钥追加到授权列表rm删除传输过来的公钥临时文件。Node03数据节点重复同样操作。验证免密登录数据节点ssh Node02说明在Node01主节点执行此命令如果无需输入密码直接进入Node02终端说明免密登录配置成功。输入exit返回Node01。1.1.9.4 Hadoop配置与启动命令进入Hadoop配置文件目录cd Downloads/hadoop-3.3.5/etc/hadoop/说明所有Hadoop配置文件都存放在这个目录下后续修改配置文件前先进入此目录。编辑hadoop-env.sh文件sudo vim hadoop-env.sh说明打开hadoop-env.sh文件按i进入编辑模式添加JAVA_HOME配置按ESC退出编辑输入:wq保存退出。编辑workers文件完全分布式sudo vim workers说明打开workers文件输入node01、node02、node03三个节点主机名每行一个保存退出。创建Hadoop运行所需目录mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp/nndata mkdir /home/kevin/Downloads/hadoop-3.3.5/tmp/dndata说明依次创建tmp、nndata、dndata三个目录分别用于存放Hadoop临时文件、NameNode数据和DataNode数据。格式化NameNode首次启动必须执行hadoop namenode -format说明首次启动HDFS前必须对主节点进行格式化。注意不要频繁执行此命令否则可能导致Hadoop无法正常启动。启动HDFS和YARN集群start-dfs.sh start-yarn.sh说明start-dfs.sh启动HDFS分布式文件系统start-yarn.sh启动YARN资源调度集群两条命令分别执行。一次性启动或关闭整个集群start-all.sh stop-all.sh说明start-all.sh一次性启动HDFS和YARNstop-all.sh一次性关闭整个集群。使用完Hadoop后一定要执行stop-all.sh关闭集群不要直接关闭虚拟机。查看节点进程jps说明查看当前节点启动的Java进程。伪分布式Node01上应看到NameNode、DataNode、ResourceManager、NodeManager等进程完全分布式Node01上应看到NameNode、ResourceManager等进程Node02和Node03上应看到DataNode、NodeManager等进程。查看数据节点状态hdfs dfsadmin -report说明在Node01主节点执行查看集群数据节点状态。如果Live datanodes不为0说明数据节点全部正常启动。1.1.9.5 配置文件分发命令完全分布式将配置文件复制到从节点scp /etc/profile Node02:etc/profile scp /etc/profile Node03:etc/profile scp -r /home/kevin/Downloads/ Node02:/ scp -r /home/kevin/Downloads/ Node03:/说明前两条把环境变量配置文件复制到Node02和Node03后两条用-r参数递归复制整个Downloads目录到两个从节点。复制完成后需要在Node02和Node03上分别执行source /etc/profile使环境变量生效。1.1.9.6 HDFS文件操作测试命令创建本地测试目录和测试文件mkdir /home/kevin/Downloads/input cd /home/kevin/Downloads/input echo hello world test1.txt echo hello hadoop test2.txt说明mkdir创建本地input目录cd进入该目录echo配合重定向分别创建test1.txt和test2.txt两个测试文件。在HDFS上创建目录并上传文件hdfs dfs -mkdir /in hdfs dfs -put *.* /in说明hdfs dfs -mkdir在HDFS根目录创建/in目录hdfs dfs -put把当前目录下所有文件上传到HDFS的/in目录。查看HDFS目录内容hdfs dfs -ls /in说明列出HDFS上/in目录下的所有文件验证文件是否上传成功。1.1.9.7 MapReduce示例程序测试命令进入MapReduce示例程序目录并运行WordCountcd /home/kevin/Downloads/hadoop-3.3.5/share/hadoop/mapreduce hadoop jar hadoop-mapreduce-examples-3.3.5.jar wordcount /in /output说明cd进入示例程序所在目录hadoop jar运行jar包中的wordcount程序/in是输入目录/output是输出目录。程序会自动读取/in下的test1.txt和test2.txt进行词频统计。查看统计结果hdfs dfs -cat /output/part-r-00000说明cat命令查看输出目录下的part-r-00000结果文件显示每个单词的出现次数。注意若要再次运行MapReduce程序需要先删除HDFS的/output目录。1.1.9.8 SSH权限问题修复命令修改SSH配置文件sudo vim /etc/ssh/sshd_config说明打开SSH服务配置文件找到相关权限配置项取消注释保存退出。用于解决scp远程传输时权限被拒绝的问题。重启SSH服务systemctl restart ssh.service说明修改完sshd_config后必须重启SSH服务使配置生效执行时需要输入密码确认。
返回列表