系列文章:
第一章 Hadoop集群搭建的准备
第二章 Hadoop集群搭建
第三章 Zookeeper分布式集群部署(2n+1台虚拟机)
第四章 Hadoop高可用集群搭建(HA)
第五章 Hive的安装与配置
待更新
第九章 spark独立模式部署(Standalone)
第十章 spark配置历史服务
第十一章 搭建Spark高可用(HA)
第十二章 spark配置Yarn模式(混合部署模式)
待更新
博客推荐系统(适合初学者的javaweb+hadoop结课设计)
毕业设计 博客分享平台的设计与实现(博客推荐系统升级版、大数据组件、可视化大屏、文章查重)
前言
一、Hadoop集群部署模式
Hadoop集群部署分为三个模式:独立模式、伪分布式、完全分布式。详细解释请自行百度,本文将部署完全分布式模式。使用三台虚拟机。
二、JDK安装
1.下载JDK
华为云镜像下载连接:https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
2.安装JDK
打开xshell连接虚拟机,在虚拟机上安装rz命令来,用于将本地文件上传到虚拟机。下载命令如下:
yum install lrzsz -y
上传JDK到/export/software目录下,并解压。命令如下:
cd /export/software //没有该目录则先创建目录
rz //该命令会打开一个窗口,用来上传文件
tar -zxvf jdk-8u291-linux-x64.tar.gz -C /export/servers //解压文件,压缩包的名字改成自己的
cd /export/servers //进入jdk安装目录
mv jdk1.8.0_291 jdk //将安装后的文件夹重命名为jdk
3.配置JDK环境变量
打开/etc/profile文件,命令如下:
vim /etc/profile
在/etc/profile文件的末尾添加以下内容:
#jdk
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
执行以下命令,使配置文件生效:
source /etc/profile
三、Hadoop安装
1.下载Hadoop
华为云镜像下载连接:https://repo.huaweicloud.com/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
2.安装Hadoop
将hadoop压缩包上传到/export/software目录下,并解压。命令如下:
cd /export/software
rz //该命令会打开一个窗口,用来上传文件
tar -zxvf hadoop-2.7.4.tar.gz -C /export/servers //解压文件,压缩包名称改为自己的压缩包名称
3.配置Hadoop环境变量
打开/etc/profile文件,命令如下:
vim /etc/profile
在/etc/profile文件的末尾添加以下内容:
#hadoop
export HADOOP_HOME=/export/servers/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
hadoop3.0之后的版本还需要添加以下配置,设置权限。
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
四、Hadoop集群配置
配置完后,请仔细检查配置文件的内容是否正确。
1.主要配置文件
hadoop-env.sh:配置Hadoop运行所需的环境变量。
yarn-env.sh:配置yarn运行所需的环境变量。
core-site.xml:Hadoop核心全局配置文件,可在其它配置文件中引用。
hdfs-site.xml:HDFS配置文件,继承core-site.xml配置文件。
mapred-site.xml:MapReduce配置文件,继承core-site.xml配置文件。
yarn-site.xml:yarn配置文件,继承core-site.xml配置文件。
2.配置Hadoop集群的配置文件(配置文件都保存在/export/servers/hadoop-2.7.4/etc/hadoop目录下)
(1)配置Hadoop集群主节点(这里将hadoop01作为主节点)
进入/export/servers/hadoop-2.7.4/etc/hadoop目录下,代码如下:
cd /export/servers/hadoop-2.7.4/etc/hadoop
1)配置hadoop-env.sh文件
vim hadoop-env.sh
找到export JAVA_HOME参数,去掉开头的注释符“#”,并给它赋值,如下:
export JAVA_HOME=/export/servers/jdk
2)配置core-site.xml文件
打开core-site.xml文件,代码如下:
vim core-site.xml
在文件的<configuration></configuration>标签之间,添加以下内容:
<!--指定文件类型 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!--指定Hadoop集群的临时文件目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/export/servers/hadoop-2.7.4/tmp</value>
</property>
3)配置hdfs-site.xml文件
打开hdfs-site.xml文件,代码如下:
vim hdfs-site.xml
在文件的<configuration></configuration>标签之间,添加以下内容:
<!--指定hdfs中存放文件时的副本数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定secondary主机(辅助管理namenode主节点)和端口号 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/servers/hadoop-2.7.4/namenode_dir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/servers/hadoop-2.7.4/datanode_dir</value>
</property>
4)配置mapred-site.xml文件
该文件的文件名为mapred-site.xml.template,需执行以下命令更改文件名为mapred-site.xml:
mv mapred-site.xml.template mapred-site.xml
打开mapred-site.xml文件,代码如下:
vim mapred-site.xml
在文件的<configuration></configuration>标签之间,添加以下内容:
<!--指定MapReduce运行时框架,这里指定在Yarn上,默认是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/export/servers/hadoop-2.7.4</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/export/servers/hadoop-2.7.4</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/export/servers/hadoop-2.7.4</value>
</property>
5)配置yarn-site.xml文件
打开yarn-site.xml文件,代码如下:
vim yarn-site.xml
在文件的<configuration></configuration>标签之间,添加以下内容:
<!--设置yarn主节点的主机 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<!--辅助型配置 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--设置NodeManager的空间,必须大于等于1024M-->
<!--可以先不设置,如果NodeManager无法开启,则需要设置。-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
6)修改slaves文件
打开slaves文件(3.0版本之后是workers文件),代码如下:
vim slaves
先清空原文件内容,然后添加整个集群的从节点,内容如下:
hadoop01
hadoop02
hadoop03
(2)将集群主节点(Hadoop01)的配置文件分发给其他子节点。
在hadoop01下执行依次以下命令:
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /export hadoop02:/
scp -r /export hadoop03:/
完成上述操作后,在hadoop02和hadoop03上分别执行以下命令,使配置文件生效:
source /etc/profile
五、Hadoop集群测试
1.格式化文件系统
初次启动HDFS集群,必须对主节点(HDFS主节点)进行格式化处理,此后不需要再格式化,多次格式化会导致datanode节点无法开启。(如果多次格式化导致无法开启datanode或有的datanode节点无法打开,请看文章末尾的解决办法。)
在hadoop01(主节点)下执行格式化文件系统指令,如下(两个命令二选一):
hdfs namenode -format
hadoop namenode -format
2.启动和关闭Hadoop集群
启动:启动内部包含的HDFS集群和YARN集群框架。
启动方式:单节点逐个启动与使用脚本一键启动。
(1)单节点逐个启动
#在主节点(hadoop01)上开启HDFS主节点
hadoop-daemon.sh start namenode
#从三台从节点(hadoop01、hadoop02、hadoop03)上开启HDFS从节点
hadoop-daemon.sh start datanode
注:这里的hadoop01即是主节点,也是从节点。因为在上面修改slaves文件(填写从节点的文件)时,填写的从节点是三台虚拟机。
#在辅助机(在配置文件hdfs-site.xml中配置的辅助机hadoop02)上开启辅助节点
hadoop-daemon.sh start secondarynamenode
#在主节点开启YARN Resourcemanger
yarn-daemon.sh start resourcemanger
#在每个从节点上开启YARN nodemanager
yarn-daemon.sh start nodemanger
(2)脚本一键启动
在主节点执行“start-dfs.sh”开启所有HDFS服务进程。
在主节点执行“start-yarn.sh”开启所有yarn服务进程。
在主节点执行“start-all.sh”开启整个Hadoop集群服务进程(不建议使用)。
(3)检查是否开启Hadoop各个服务
三台虚拟机分别输入命令:jps
三台主机输出的结果分别如下:
3.通过UI界面查看Hadoop运行状态
(1)两个端口号
50070:监控HDFS集群。
8088:监控YARN集群。
(2)windows端操作
设置IP映射:
打开C:\Windows\System32\drivers\etc\下的hosts文件,在文件末尾添加以下内容。
192.168.121.134 hadoop01
192.168.121.135 hadoop02
192.168.121.136 hadoop03
(3)Linux虚拟机端
禁止防火墙:
service iptables stop
禁止防火墙开机自启:
chkconfig iptables off
(4)打开UI界面
在本地浏览器的地址栏输入对应的主节点IP和想要查看的端口号即可,如下:
hadoop01:50070
hadoop01:8088
UI如图所示:
datanode节点无法全部开启问题的解决办法
打开Hadoop的安装路径,进入安装路径下的hadoop-2.7.4/tmp/dfs/data(不存在则进入hadoop-2.7.4/datanode_dir)目录,将所有节点(所有虚拟机)的current文件夹删除。这里Hadoop的安装路径是/export/servers,命令如下(所有虚拟机均执行):
cd /export/servers/hadoop-2.7.4/tmp/dfs/data
# 不存在则 cd /export/servers/hadoop-2.7.4/datanode_dir
rm -rf current
完成后,重启Hadoop集群即可。
成功后如下所示: