【Hadoop】Hadoop的目录结构和脚本与环境搭建(本地模式、伪分布模式和全分布模式)

网友投稿 246 2022-11-16

【Hadoop】Hadoop的目录结构和脚本与环境搭建(本地模式、伪分布模式和全分布模式)

搭建Hadoop环境(本地模式、伪分布模式和全分布模式)

​​1 Hadoop的目录结构和脚本​​

​​1.1 核实已有配置​​​​1.2 安装Hadoop​​​​1.3 Hadoop环境变量配置​​​​1.4 Hadoop主要脚本命令​​

​​2 本地模式搭建​​​​3 伪分布模式搭建​​​​4 全分布模式搭建​​

​​4.1 准备工作​​​​4.2 Hadoop部署​​​​4.3 hadoop启动​​

作者:Be_melting

1 Hadoop的目录结构和脚本

在进行Hadoop环境安装之前,需要对Hadoop的目录结构和主要脚本有个清晰的认知。

1.1 核实已有配置

在进行介绍之前核实一下之前的操作是否无误。

(1)首先看一下之前配置的主机名和IP地址(核实无误)

(2)防火墙关闭(核实无误)

(3)Java JDK和环境变量(核实无误)

(4)之前上传Java时候顺带上传了Hadoop安装包(核实无误)其中最后面的tree-1.6.0-10.el7.x86_64.rpm文件就是执行tree指令要安装的一个文件

1.2 安装Hadoop

以上的内容核实无误后就可以进行Hadoop的安装了,解压安装包指令为:​​tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/​​

安装tree指令文件:​​rpm -ivh tree-1.6.0-10.el7.x86_64.rpm​​

程序执行后的结果可以通过查看training文件夹下内容进行查看

至此Hadoop和tree都已经安装完成,那么就可以直接通过指令查看Hadoop的文件目录结构,具体的指令为:​​tree -d -L 3 hadoop-2.7.3/​​​ 其中​​-d​​​表示查看目录,​​-L​​表示查看深度,3表示3层,最后的输出结果为

1.3 Hadoop环境变量配置

既然是安装在Linux上的软件,为了方便使用,环境变量的设置必不可少。之前已经配置好了Java的环境变量,这里就是同样的操作,在Java环境变量之后追加Hadood的环境变量,代码指令和操作如下

切换路径:​​cd hadoop-2.7.3/​​编辑环境变量:​​vi ~/.bash_profile​​

HADOOP_HOME=/root/training/hadoop-2.7.3 export HADOOP_HOME PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export PATH

环境变量生效:​​source ~/.bash_profile​​环境变量检验:​​echo $HADOOP_HOME​​

然后是配置环境变量生效,进行echo检验

1.4 Hadoop主要脚本命令

开启服务:

Hadoop启动进程:​​start-all.sh​​(包含了启动HDFS和yarn)启动HDFS:​​strat-dfs.sh​​(对应NameNode、DataNode、SecondaryNameNode)启动yarn:​​start-yarn.sh​​(对应Nodemanager、ResourceManager)

关闭任务,将上面的​​start​​​换成​​stop​​即可

还有其它的一些命令,可以直接通过查看bin文件夹和sbin文件夹得知(具体的一些命名在之后搭建完环境,再进行讲解)

2 本地模式搭建

本地模式的特点: (1)没有HDFS、也没有Yarn (2)只能测试MapReduce程序,作为一个普通的Java程序 (3)处理的数据是本地Linux的文件 (4)一般用于开发和测试

本地模式的配置:只需要修改hadoop-env.sh参数文件中的JAVA_HOME的配置参数,具体执行代码:

先将路径转到根目录下:​​cd ~​​然后计入hadoop路径下:​​cd training/hadoop-2.7.3/etc/hadoop/​​核实文件是够存在:​​ls hadoop-env.sh​​编辑文件:​​vi hadoop-env.sh​​打开行号:​​:set number​​输入要修改的内容:​​export JAVA_HOME=/root/training/jdk1.8.0_181​​

修改地方如下,核实无误后退出编辑器

回到窗口界面,之前输入的指令如下

至此本地的模式就配置完成了,接着执行一下计数程序看看。首先要在本地模式需要有准备数据,由于本地模式不支持HDFS和yarn,所以最终读取文件和存放数据的文件均在本地的Linux系统中

运行完毕后,查看一下生成的文件,如下,最后也是完成了计数的功能

至此本地模式的配置安装以及使用就梳理到此结束,只需要修改一个文件中的配置参数即可

3 伪分布模式搭建

由于本地模式功能有限,所以配置起来很简单,除此之外功能越多的模式配置项就会越复杂。对于伪分布模式的特点梳理如下:(需要是在本地模式基础之上)

特点:(1)在单机上,模拟一个分布式的环境 (2)具备Hadoop的所有的功能 HDFS:NameNode、DataNode、SecondaryNameNode Yarn:ResourceManager、NodeManager (3)用于开发和测试

需要配置的信息如下:(基于本地模式之上,第一条的配置就默认已经完成了)

接下来就是配置其他文件中的参数,首先进行​​hdfs-site.xml​​文件的配置,配置的具体代码如下:

dfs.replication 1 dfs.permissions false

上机操作如下:

然后进行​​core-site.xml​​文件的配置,具体的代码内容如下:

fs.defaultFS hdfs://bigdata111:9000 hadoop.tmp.dir /root/training/hadoop-2.7.3/tmp

上机操作如下:

支持HDFS相关配置的两个文件全部参数就配置完成,接下来就是对yarn配置的两个文件进行处理,首先进行​​mapred-site.xml​​文件进行配置,但是这个文件默认没有的,需要提前创建,只提供了一个模块文件,所以根据模板进行复制一份重命名即可

然后要添加的内容如下:

mapreduce.framework.name yarn

上机操作如下:

最后一个配置文件就是​​yarn-site.xml​​文件,需要配置的内容如下:

yarn.resourcemanager.hostname bigdata111 yarn.nodemanager.aux-services mapreduce_shuffle

上机操作如下:

至此需要配置的四个文件全部配置完成,剩下就是对应NameNode进行格式化处理:​​hdfs namenode -format​​​,然后在取启动Hadoop: ​​start-all.sh​​,操作输出如下

然后就会出现一个情况就是密码登录的问题,由于刚刚是第一次启动,运行Hadoop就需要进行密码的输入,一共需要输入四次密码(还有三次yes)

接下来就是通过查看Java进程看看Hadoop是否正常启动,如果正常启动就运行一下MapReduce程序跑一下计数程序

最后就是核实一下最终生成的文件中的内容(核实无误后就代表着伪分布模式搭建成功)

然后就是结束服务,只需要将最开始的​​start​​​改成​​stop​​即可,一共也是需要输入4次密码才能进行关闭

目前还仅仅是一台虚拟机,当集群中的机器多了时候,那么每台虚拟机启动Hadoop都要进行四次密码登录或者退出的话就太影响开发效率,免密登录的需求就很明显要提上日程了,所以接下来要解决的就是免密登录

免密登录的原理梳理如下,其中执行的代码顺序为

具体的上级操作如下:(先生成公钥和私钥)

然后在把公钥传给另外的服务端,就会在.ssh文件夹中保有别的服务端的密码信息

至此免密码登录设置就完成了,可以重新启动Hadoop验证一下

最后就是查看一下Java进程(核实是否五个节点都在进程中)

然后再看一下关闭服务是否需要密码(核实不需要密码。至此免密的设置完美结束)

4 全分布模式搭建

全分布模式的特点介绍如下

特点: (1)真正的分布式环境,用于生产 (2)具备Hadoop的所有功能:HDFS、Yarn (3)3台机器

前面的博客中也介绍过,如果要搭建全分布模式Hadoop模式,至少需要三台虚拟机,这里就以bigdata112、bigdata113、bigdata114三台机子为例进行环境搭建。

4.1 准备工作

三台机器的架构如下,具体按照5步进行配置

(1)首先第一步进行关闭防火墙,由于是对三台虚拟机同时进行操作,这时候就体现使用Xshell的优势了,在“工具”菜单栏选择“发送键输入到所有会话”,然后输入关闭防火墙的指令

(2)第二步,设置主机名和ip地址,编辑​​etc/hosts​​文件,如下(顺带把bigdata115的也设置了,注意这里的ip地址要以自己的为主)

设置完之后就可以进行ping的操作,看看每台机器能否联通(下面举例是ping bigdata112,接下来还要ping剩下的几台机器,都确保无误后,主机名和ip地址就设置完成了)

(3)设置免密码登录,首先查看一下三台机器上面密码的信息,通过查看​​.ssh​​文件夹,三台机器都没有设置免密码登录,然后三台机器同时生成公钥和私钥

然后再查看一下秘钥是否已经生成,如果生成就把公钥发送给对方

接着就把公钥发送给各个机器,这个演示发送到bigdata112,剩下的机器也是一样,修改最后一个数字再次输入回车即可

免密成功验证,就是通过ssh 主机名,看看是否能够直接访问(核实无误,bigdata114也可直接访问)

(4)Java JDK安装,这里和之前的操作一样,还有添加环境变量,这里就不再赘述了,直接验证安装后的结果(安装的软件都放在training文件中,顺带安装一下storm,之后的课程中会介绍如何安装使用)

使用echo看看环境变量是否设置完毕

(5)最后一步就是同步各台机子的时间了,保证到时候传递到Hadoop上执行程序是同步进行,执行代码:​​date -s xxxx-xx-xx​​

4.2 Hadoop部署

首先对于Hadoop的解压安装以及环境变量的配置是需要三台机器同步设置(如果无法做到同步也可以单独配置)

(*)解压安装包,配置环境变量tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/HADOOP_HOME=/root/training/hadoop-2.7.3export HADOOP_HOMEPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport PATH

接下来就不需要进行三台机器的同步安装了,由于是要以bigdata112作为主节点,只需要配置一下这个机器上的Hadoop的其余文件就可以了,配置完成后直接将文件复制到剩下的两台机器上

bigdata112的配置Hadoop的配置和之前的伪分布环境的搭建基本上是类似,下面就是基本上完全照抄前面的配置。需要注意关于冗余度的设置,一般是要和DataNode数量保持一致,但是不要超过3,由于存在2个DataNode,所以这里

​​hdfs-site.xml​​​文件中的​​dfs.replication​​值设置为2;​​core-site.xml​​​文件的主节点改成​​bigdata112​​;​​tmp​​文件夹还是需要提前进行创建​​yarn-site.xml​​​文件中配置​​ResourceManager​​​的地址为​​bigdata112​​

以下只在bigdata112上进行设置

(*)仿照伪分布的模式进行编写hadoop-env.sh export JAVA_HOME=/root/training/jdk1.8.0_181hdfs-site.xml dfs.replication 2 暂时先不配置 dfs.permissions false core-site.xml fs.defaultFS hdfs://bigdata112:9000 hadoop.tmp.dir /root/training/hadoop-2.7.3/tmp mapred-site.xml:这个文件默认没有,需要先cp一下 mapreduce.framework.name yarn yarn-site.xml yarn.resourcemanager.hostname bigdata112 yarn.nodemanager.aux-services mapreduce_shuffle

除了以上的配置之外还要单独设置一个slaves文件,用以指定定从节点的地址:bigdata113,bigdata114

至此所有的配置就完成了,然后对NameNode进行格式化,也就还是在bigdata112中进行,代码指令:​​hdfs namenode -format​​(和伪分布环境搭建一样,使用之前都需要进行格式化)

然后再将bigdata112中的文件直接复制到剩下两个机器中(在bigdata112的命令窗口执行)

scp -r hadoop-2.7.3/ root@bigdata113:/root/trainingscp -r hadoop-2.7.3/ root@bigdata114:/root/training

上机操作如下:

4.3 hadoop启动

经历了这么多的磨难终于把全分布的模式部署完毕了,然后在bigdata112上面进行启动,输出结果如下(可以发现最终的各个机器开启的节点和最初设计的架构是一模一样)

然后就要进行一个简单的计数程序的小测试了,首先将本地的文件上传到HDFS上,然后在调用jar包进行计数,代码如下

最后核实一下生成文件的内容,核实无误后,说明全分布环境部署成功了

至此,完结撒花了✿✿ヽ(°▽°)ノ✿,接下来就要介绍HDFS的体系架构。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:串口数据转换CAN帧格式的方法及注意事项
下一篇:Java基础知识之ByteArrayOutputStream流的使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~