可以去jdk官网下载8或者11版本,别用18因为hadoop会不兼容,先卸载本机的自带的jdk,下面我给大家带一个我在用的hadoop链接
假设在你的linux上面有三个虚拟机hadoop102 hadoop103 hadoop104
然后我们打开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并且配置好了环境变量,如果没有显示的话重启一下就可以了
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文件夹里面就会看到这两个文件夹
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 配置在同一台机器上。所以我们将其分开部署:
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 信息
至此我们就配置好集群了