在Hadoop入门 中,为大家简单介绍了 Hadoop 。
在本文,我将为大家演示基于 linux 的 Hadoop 搭建。
本文所用软件版本:
CentOS 7
Vmware 16
Xshell 7
Xftp 7
在开始之前你需要提前下载:
PS. 镜像下载时间超长
你需要提前准备:
本文将以初学者的视角进行详细讲解,左侧配有目录,大家按需选择阅读章节OuO。
全文中的重点内容都采用与本条相同的样式,鼠标悬停即可显示简要说明,方便快速理解。
VMware 软件使用
具体从软件配置到创建虚拟机这里不再赘述,大家可以自行搜索,这里只展示我觉得需要注意的点
网络设置
![]()
桥接模式会直接把虚拟机连接到物理网络,就像一台真实电脑。
虚拟机直接使用主机所在的局域网IP
NAT模式会通过主机共享网络连接,虚拟机和外网通信时由主机做中转。
虚拟机通过主机的网络访问外网
仅主机模式下,虚拟机只能和主机互通,不能访问外网。
适合内网测试或安全环境
关闭防火墙
1 2
| systemcttl stop firewalld --关闭防火墙 systemctl disable firewalld --永久关闭防火墙
|
jdk配置
1.使用Xftp传输压缩包并解压
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [root@master opt]# pwd /opt [root@master opt]# mkdir module #解压后的位置 [root@master opt]# mkdir software #压缩包 [root@master opt]# cd software [root@master software]# ll total 1488592 -rw-r--r--. 1 root root 87380462 Aug 27 10:59 apache-flume-1.11.0-bin.tar.gz -rw-r--r--. 1 root root 22347776 Aug 27 10:59 apache-hive-3.1.2-bin.tar.gz -rw-r--r--. 1 root root 14853274 Aug 27 10:59 apache-zookeeper-3.8.3-bin.tar.gz -rw-r--r--. 1 root root 730107476 Aug 27 10:59 hadoop-3.3.6.tar.gz -rw-r--r--. 1 root root 141600542 Aug 27 10:59 jdk-8u401-linux-x64.tar.gz -rw-r--r--. 1 root root 528015360 Aug 27 10:59 mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar [root@master software]# tar -zvxf jdk-8u401-linux-x64.tar.gz -C ../module #解压jdk压缩包 [root@master software]# tar -zvxf hadoop-3.3.6.tar.gz -C ../module/ #解压hadoop压缩包 [root@master software]# cd ../module/ [root@master module]# ll total 8 drwxr-xr-x. 10 1000 1000 4096 Jun 18 2023 hadoop-3.3.6 drwxr-x---. 8 root root 4096 Aug 27 11:02 jdk1.8.0_401
|
2.配置环境变量
1 2 3 4 5 6 7 8 9 10 11 12 13
| [root@master module]# cd jdk1.8.0_401/ [root@master jdk1.8.0_401]# pwd /opt/module/jdk1.8.0_401
[root@master module]# vi /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_401 export PATH=$PATH:$JAVA_HOME/bin
[root@master module]# source /etc/profile #刷新环境变量 [root@master ~]# jps 508 Jps
|
克隆三台虚拟机
在克隆之前建议配置好hosts文件为下一步做准备
配置好后依次更改主机名
这里不过多赘述
配置免密—SSH
1.更改hosts
三台虚拟机都更改
1 2 3 4
| vi /etc/hosts [ip-1] [hostname-1] [ip-2] [hostname-2] [ip-3] [hostname-3]
|
2.生成并传输密钥
在主节点生成密钥
1 2
| ssh-keygen -t rsa #生成密钥 ssh-copy-id [hostname-1&2&3] #传输密钥
|
输入 yes+对应主机的密码
成功后可以使用 ssh + [hostname-1&2&3]
进行测试
exit
命令即可退出
配置Hadoop配置文件
以下配置文件的路径为$hadoop_home/etc/hadoop/
core-site.xml
1 2 3 4 5 6 7 8 9 10
| <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root/software/hadoop-3.3.4/data</value> --hadoop路径 </property> </configuration>
|
hdfs-site.xml
1 2 3 4 5 6 7 8 9 10
| <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:50070</value> </property> </configuration>
|
mapred-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/root/software/hadoop-3.3.4</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=/root/software/hadoop-3.3.4</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=/root/software/hadoop-3.3.4</value> </property> </configuration>
|
yarn-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME, HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME, HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> </configuration>
|
hadoop-env.sh
1
| export JAVA_HOME=$JAVA_HOME
|
workers
配置并刷新环境变量
1 2 3 4 5 6 7 8 9
| #hadoop export HADOOP_HOME=/root/software/hadoop-3.3.4 export PATH=$PATH:$HADOOP_HOME/bin
export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
|
刷新环境变量 source /etc/profile
SSH 传输
1
| scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
|
依次传输Hadoop、环境变量到其他虚拟机
启动Hadoop
Hadoop 启动与停止命令一览
1. 启动/停止所有守护进程
启动所有守护进程
sbin/start-all.sh
启动内容包括:NameNode、Secondary NameNode、DataNode、ResourceManager、NodeManager
停止所有守护进程
sbin/stop-all.sh
停止内容包括:NameNode、Secondary NameNode、DataNode、ResourceManager、NodeManager
2. HDFS 守护进程
启动 HDFS 守护进程
sbin/start-dfs.sh
启动内容:NameNode、Secondary NameNode、DataNode
停止 HDFS 守护进程
sbin/stop-dfs.sh
停止内容:NameNode、Secondary NameNode、DataNode
单独启动/停止 HDFS 守护进程
NameNode
sbin/hadoop-daemons.sh start namenode
sbin/hadoop-daemons.sh stop namenode
DataNode
sbin/hadoop-daemons.sh start datanode
sbin/hadoop-daemons.sh stop datanode
Secondary NameNode
sbin/hadoop-daemons.sh start secondarynamenode
sbin/hadoop-daemons.sh stop secondarynamenode
3. YARN 守护进程
启动 YARN 守护进程
sbin/start-yarn.sh
启动内容:ResourceManager、NodeManager
停止 YARN 守护进程
sbin/stop-yarn.sh
停止内容:ResourceManager、NodeManager
单独启动/停止 YARN 守护进程
ResourceManager
sbin/yarn-daemon.sh start resourcemanager
``sbin/yarn-daemon.sh stop resourcemanager`
NodeManager
sbin/yarn-daemons.sh start nodemanager
``sbin/yarn-daemons.sh stop nodemanager`
4. MapReduce JobHistory 服务
测试是否成功