大家可以根据自己的需要,进行下载。
需要用的环境是:
1.VMware 15
2.CentOS-7.5
3.Xshell 6 Xftp 6
4.jdk 1.8
5.hadoop-3.1.3 jar包 hadoop下载链接
注意:如果虚拟机时安装的桌面版本的linux。需要卸载虚拟机中的JDK。这是安装桌面版本自带的。如果你的虚拟机是最小化安装不需要执行这一步。
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e
--nodeps
重启虚拟机:
[root@hadoop100 ~]# reboot
解释字段:
0.用 XShell 传输工具将 JDK 导入到虚拟机中的文件夹下面
我个人习惯在当前用户下建立二个文件夹,一个用来存放安装包,一个是安装软件。
1.将JDK安装包上传到存放安装包路径中:
2.在Linux目录下查看是否上传成功:
[abc@hadoop102 ~]$ ls /opt/software/
[abc@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
4.配置 JDK 环境变量
(1)新建/etc/profile.d/my_env.sh 文件
[abc@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
(2)添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(3)保存后退出
:wq
(4)source 一下/etc/profile 文件,让新的环境变量 PATH 生效
[abc@hadoop102 ~]$ source /etc/profile
5.测试 JDK 是否安装成功
[abc@hadoop102 ~]$ java -version
注意:安装前,请确保自己有3台虚拟机,并且没有问题。jdk都存在。可以直接将hadoop102上的虚拟机复制也可以。需要更改下主机名和主机ip
注意:克隆时,要先关闭 hadoop102
1.修改克隆机 IP,以下以 hadoop103 举例说明
修改克隆虚拟机的静态 IP。确保横线部分和配置网络ip一致
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
2.修改克隆机主机名,以下以 hadoop102 举例说明
(1)修改主机名称
[root@hadoop100 ~]# vim /etc/hostname
[root@hadoop100 ~]# reboot
Hadoop 下载地址:
链接地址:hadoop3.1.3下载地址
https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1.用 XShell 文件传输工具将 hadoop-3.1.3.tar.gz 导入到 opt 目录下面的 software 文件夹下面
2.在Linux目录下查看:
命令:/opt/software
3.将hadoop-3.1.3解压到module目录下:
[abc@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
4.查看是否解压成功
[abc@hadoop102 software]$ ls /opt/module/hadoop-3.1.3
5.将 Hadoop 添加到环境变量
(1)获取 Hadoop 安装路径
[abc@hadoop102 hadoop-3.1.3]$ pwd
(2)打开/etc/profile.d/my_env.sh 文件
[abc@hadoop102 hadoop-3.1.3]$ sudo vim/etc/profile.d/my_env.sh
(3)将一下内容添加文件中
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
[abc@hadoop102 hadoop-3.1.3]$ source /etc/profile
(6)测试是否安装成功
[abc@hadoop102 hadoop-3.1.3]$ hadoop version
1.Hadoop 官方网站:官方地址
http://hadoop.apache.org/
2.Hadoop 运行模式包括:
本地模式、伪分布式模式以及完全分布式模式。
安装所需要的条件:
1.准备 3 台客户机(关闭防火墙、静态 IP、主机名称)
2.安装 JDK
3.配置环境变量
4.安装 Hadoop
5.配置环境变量
[abc@hadoop102 opt]$ cd /home/atguigu
[abc@hadoop102 ~]$ mkdir bin
[abc@hadoop102 ~]$ cd bin
[abc@hadoop102 bin]$ vim xsync
在文件中编写以下内容:
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..." exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop 集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop 集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error. "
;;
esac
[abc@hadoop102 bin]$ chmod +x xsync
[abc@hadoop102 ~]$ xsync /home/atguigu/bin
[abc@hadoop102 bin]$ sudo cp xsync /bin/
[abc@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。
让环境变量生效
[abc@hadoop103 bin]$ source /etc/profile
[abc@hadoop104 opt]$ source /etc/profile
1.生产密钥命令:ssh-keygen -t rsa
出现一下情况一直按回车就解决:
生产密钥结束:
2.将密钥拷贝到hadoop103 hadoop104:
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop102
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop103
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:
还需要在 hadoop103 上采用 atguigu 账号配置一下无密登录hadoop102、hadoop103、hadoop104 服务器上。
还需要在 hadoop104 上采用 atguigu 账号配置一下无密登录hadoop102、hadoop103、hadoop104 服务器上。
还需要在 hadoop102 上采用 root 账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
注意:
NameNode 和 SecondaryNameNode 不要安装在同一台服务器
ResourceManager 也很消耗内存,不要和 NameNode\SecondaryNameNode 配置在同一台机器上。
1.配置文件说明
Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:
要获取的默认文件 文件存放在 Hadoop 的 jar 包中的位置
(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。
2.配置集群
(1)核心配置文件 vim core-site.xml
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>abc</value>
</property>
</configuration>
(2)HDFS 配置文件vim hdfs-site.xml
<configuration>
<!-- 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>
</configuration>
(3)YARN 配置文件vim 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>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>
</configuration>
(4)MapReduce 配置文件vim mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)配置 workers vim workers
注意:不能有空行
hadoop102
hadoop103
hadoop104
3.在集群上分发配置好的 Hadoop 配置文件
[abc@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/
4.去 103 和 104 上查看文件分发情况
[atguigu@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
[atguigu@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停 止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。
格式化命令:
[abc@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
[abc@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
[abc@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看 HDFS 上存储的数据信息
Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://hadoop103:8088
(b)查看 YARN 上运行的 Job 信息。
集群搭建完成。使用jps命令查看进程:jps
[abc@hadoop102 ~]$ jps
[abc@hadoop103 ~]$ jps
[abc@hadoop104 ~]$ jps
hadoop102上进程:
hadoop103进程:
Hadoop104进程:
如果出现这几个进程代表安装完成;恭喜大家
首先确保集群在启动状态下,在hadoop的当前目录下创建一个文件。请确保一下命令君在hadoop102上运行;
vim /opt/module/hadoop-3.1.3/word.txt
hadoop yarn
hadoop mapreduce
hello
hello yarn
保存退出;(按 esc 后,按大写ZZ退出)
hadoop fs -put /opt/module/hadoop-3.1.3/word.txt /
hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /word.txt /output
测试集群可能会出现一下错误,在运行map阶段卡住,然后报错。这个原因是新版本的hadoop的原因。
在集群中的配置文件添加如下命令:
cd /opt/module/hadoop-3.1.3/etc/hadoop/
vim mapred-site.xml
将以下内容添加到配置文件中(确保内容在
标签中):
<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>
[abc@hadoop102 hadoop]$ xsync mapred-site.xml
到这里已经安装完成了。如果本篇文章,对大家有帮助,希望大家给点个赞。非常感谢。如果有任何疑问,请评论区提问,感谢大家