可以去jdk官网下载8或者11版本,别用18因为hadoop会不兼容,先卸载本机的自带的jdk,下面我给大家带一个我在用的hadoop链接

hadoop下载链接

 假设在你的linux上面有三个虚拟机hadoop102 hadoop103 hadoop104

centos7 安装hadoop集群 linux安装hadoop集群_centos7 安装hadoop集群

 然后我们打开hadoop102进行安装hadoop,将我们下载好的压缩包利用xftp移到我们的虚拟机文件夹下分别是jdk包和hadoop包,这个虚拟机的文件夹自己没有的创建一个就行,地方都无所谓我是在opt目录下创建的一个software用来存放

 jdk安装配置

 进入到本地文件夹,我们输入tar命令进行文件压缩,并且用-c将他压缩到我们同级的另一个文件夹下起名叫module,没有的提前创建一下。

[root@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

压缩好了之后我们配置jdk环境变量:


( 1 )新建 /etc/profile.d/my_env.sh 文件,一般我们不会更改本地环境变量所以我们新建一个


[root@hadoop102 software]#  sudo vim /etc/profile.d/my_env.sh


(2)添加如下内容 ,JAVA_HOME后面的路径就是你自己安装jdk的路径,保存后退出,先按esc再按wq保存


#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin


3 ) source 一下 /etc/profile 文件,让新的环境变量 PATH 生效


[root@hadoop102 software]# source /etc/profile

4)我们测试一下java环境变量是否安装好了

[root@hadoop102 software]# java -version

5)如果显示下面的消息证明你已经成功安装好了jdk并且配置好了环境变量,如果没有显示的话重启一下就可以了

centos7 安装hadoop集群 linux安装hadoop集群_hadoop_02


 2.我们在hadoop102环境下面安装hadoop

1)还是利用xftp我们将压缩包转入我们的software文件夹里面

2)利用tar -zxvf进行解压压缩,还是压缩到我们的module文件夹里面去

[root@hadoop102 software]# tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

3)在我们的module文件夹里面就会看到这两个文件夹

centos7 安装hadoop集群 linux安装hadoop集群_xml_03

 4)我们将hadoop的环境变量配置一下,这里面用sudo为了将我们的权限设置为root权限防止我们权限不够无法修改,还是进入到我们自己写的配置文件里面去

[root@hadoop102 software]# sudo vim/etc/profile.d/my_env.sh

5)在后面加上配置信息,也就是我们刚才配置好的java信息后面,然后退出并且保存

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

 6)同理source让其生效

[root@hadoop102 software]# source /etc/profile

7)检查hadoop是否配置成功

[root@hadoop102 software]# hadoop version
Hadoop 3.1.3

这个时候我们就已经在hadoop102上面安装好了jdk和hadoop并且配置好了环境变量了,这个时候我们可以采用rsync命令进行复制到其他虚拟机,或者重复上面的工作在其他虚拟机上面进行部署,这里就不一一演示; 

部署hadoop集群 

NameNode 和 SecondaryNameNode 工作是具有重复性的并且都消耗内存比较大,不要安装在同一台服务器 ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。所以我们将其分开部署:

centos7 安装hadoop集群 linux安装hadoop集群_xml_04


2 )配置文件说明

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认

配置值时,才需要修改自定义配置文件,更改相应属性值。


(1 )默认配置文件:

要获取的默认文件


[core-default.xml]


[hdfs-default.xml]


[yarn-default.xml]


[mapred-default.xml]



2 )自定义配置文件:


core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml 四个配置文件存放在

$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。



core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml 四个配置文件即可。


配置 core-site.xml




我们通过命令进入hadoop配置中心,然后通过vim进行文件配置修改



[root@hadoop102 /]# cd $HADOOP_HOME/etc/hadoop
[root@hadoop102 hadoop]# vim core-site.xml

在<configuration> </configuration>里面加入如下信息即可,注意那个hdfs网页配置可以不需要配置,看你个人,反正我没有配置

<!-- 指定 NameNode 的地址 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hadoop102:8020</value>
 </property>
 <!-- 指定 hadoop 数据的存储目录 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/module/hadoop-3.1.3/data</value>
 </property>
 <!-- 配置 HDFS 网页登录使用的静态用户为 自己的root -->
 <property>
 <name>hadoop.http.staticuser.user</name>
 <value>root</value>
 </property>

然后后面的其他三个配置都是一样的修改方式,加入自己需要的配置即可

配置 hdfs-site.xml  

[root@hadoop102 hadoop]# vim hdfs-site.xml
<!-- nn web 端访问地址-->
<property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop102:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop104:9868</value>
 </property>



配置 yarn-site.xml



[root@hadoop102 hadoop]# vim yarn-site.xml
<!-- 指定 MR 走 shuffle -->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop103</value>
 </property>
 <!-- 环境变量的继承 -->
 <property>
 <name>yarn.nodemanager.env-whitelist</name>
 
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
 </property>



配置 mapred-site.xml



[root@hadoop102 hadoop]# vim mapred-site.xml
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>

到此我们的hadoop个人配置就已经配置好了,但这个只是hadoop102上面的配置我们需要在103,104上面都需要配置,复制即可

配置集群:

到这里我们默认已经配置好了102,103,104里面的所有内容

我们先配置workers:

[root@hadoop102 hadoop]#  vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

再文件下面输入(注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。):

hadoop102
hadoop103
hadoop104

同理我们在其他103,104里面也需要配置


2 )启动集群

( 1 ) 如果集群是第一次启动 ,需要在 hadoop102 节点格式化 NameNode (注意:格式

化 NameNode ,会产生新的集群 id ,导致 NameNode 和 DataNode 的集群 id 不一致,集群找

不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停

止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式 化


[root@hadoop102 hadoop]#  hdfs namenode -format


( 2 )启动 HDFS


[root@hadoop102 hadoop]#  sbin/start-dfs.sh

(3)在配置了 ResourceManager 的节点(hadoop103)启动 YARN


[root@hadoop102 hadoop]# sbin/start-yarn.sh




4 ) Web 端查看 HDFS 的 NameNode




浏览器中输入: http://hadoop102:9870




查看 HDFS 上存储的数据信息




5 ) Web 端查看 YARN 的 ResourceManager




a )浏览器中输入: http://hadoop103:8088




查看 YARN 上运行的 Job 信息



至此我们就配置好集群了