保姆级丨Hadoop部署

简介: Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

0x00 前言

       Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

5fc3423a2cbb3d3ab8238ca167bb86a.jpg

▲ Hadoop生态系统



0x01 环境说明

Xshell 7
Hadoop-3.3.3
jdk-18_linux-x64_bin
centos-a(192.168.1.10)
centos-b(192.168.1.11)
centos-c(192.168.1.12)



0x02 准备工作

文中使用CentOS-7系统在三个虚拟机环境下进行示范,过程使用本地主机与虚拟机交互。首先要在Windows主机下载实验过程需要使用的环境。


Xshell 7:

https://www.xshell.com/zh/xshell-download/

Hadoop-3.3.3:

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.3.tar.gz

jdk-18_linux-x64_bin:

https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz



0x03 配置hosts文件(三个节点)

通过root执行命令

su root


配置虚拟机hosts文件

vi /etc/hosts


写入各个节点IP和主机名

192.168.1.10 centos-a
192.168.1.11 centos-b
192.168.1.12 centos-c


分别检测三个节点是否互联

ping-c3 centos-x



0x04 SSH免密登录(三个节点)

     

SSH为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。


生成密钥文件

ssh-keygen -t rsa -P''


在.ssh目录中生成authorized_keys文件(仅在主节点执行)

touch /root/.ssh/authorized_keys


通过SSH复制三个节点生成的id信息

ssh-copy-id centos-a
ssh-copy-id centos-b
ssh-copy-id cnetos-c


查看密钥文件是否成功配置

cat /root/.ssh/authorized_keys



验证免密登录是否成功

ssh centos-b



0x05 Xshell7连接虚拟机(三个节点)

Xshell7可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。


d369d060a1d4fdca3d49cf4fff6f7bf.jpg

打开Xshell7选择新建

4abb290488908aaef064b80633d294a.jpg

修改常规项并连接虚拟机

633d9ad8a7b87198dac491783d94b45.jpg

接受并保存

cc4c11fd8a652d9f45dce9503a86e1d.jpg

输入主机名并确定

457fb6da87c5db43b76aa86535262cf.jpg

输入虚拟机密码并确定

6cdd8d9ba8263f7ffb1e9515da0bf92.jpg

虚拟机连接成功


0x06 Xshell7文件上传(三个节点)


通过root执行命令

su root


创建software文件夹

7ed877a0b277431ead8237e2ffdb570.jpg



mkdir /usr/local/software

下载文件互传工具

f1bcbbf6a7df4e4eefe6acae3debcd3.jpg



yum -y install lrzsz

打开software文件夹

a634887095c0a5d8728b6349a5fb5d1.jpg



cd /usr/local/software

利用lrzsz文件互传工具

3b9dd3b79526b02456cd0e8c5051e1c.jpg



rz

上传jdk-18_linux-x64_bin文件

36d5e4143a01c64cfd58f8e550dc2f1.jpg



上传Hadoop-3.3.3文件

06a72fcd88796e73f77cb5cd7d3b34b.jpg




0x07 安装JDK(三个节点)


创建jdk文件夹以保存解压的jdk文件

mkdir /usr/local/jdk


解压jdk文件

tar -zxvf jdk-18_linux-x64_bin.tar.gz -C /usr/local/jdk


打开profile文件

vi /etc/profile


配置jdk环境变量

#--在末尾写入配置文件--exportJAVA_HOME=/usr/local/jdk/jdk-18.0.2
exportPATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib/


使配置文件生效

source /etc/profile



0x08 安装Hadoop(三个节点)


创建hadoop文件夹以保存解压的hadoop文件

mkdir /usr/local/hadoop


解压hadoop文件

tar -zxvf hadoop-3.3.3.tar.gz -C /usr/local/hadoop


打开profile文件

vi /etc/profile


配置hadoop环境变量

exportHADOOP_HOME=/usr/local/hadoop/hadoop-3.3.3
exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexportHDFS_NAMENODE_USER=root
exportHDFS_DATANODE_USER=root
exportHDFS_SECONDARYNAMENODE_USER=root
exportYARN_RESOURCEMANAGER_USER=root
exportYARN_NODEMANAGER_USER=root


使配置文件生效

source /etc/profile



0x09 配置Hadoop文件(仅在主节点执行)


打开hadoop-env.sh文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/hadoop-env.sh

修改hadoop-env.sh文件

JAVA_HOME=/usr/local/jdk/jdk-18.0.2


打开core-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/core-site.xml

修改core-site.xml文件

#在configuration标签中加入<!-- HDFS临时目录 -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/hadoop-3.3.3/tmp</value>
  <description>Abase for other temporary directories.</description>
</property>
<!-- HDFS的默认地址、端口 访问地址 -->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://centos-a:9000</value>
</property>


打开yarn-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/yarn-site.xml

修改yarn-site.xml文件

#在configuration标签中加入<!-- 集群master -->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>centos-a</value>
</property>
<!-- NodeManager上运行的附属服务 -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<!-- 容器可能会覆盖的环境变量,而不是使用NodeManager的默认值 -->
<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</value>
</property>
<!-- 关闭内存检测,在虚拟机中不做配置会报错 -->
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
</property>


打开mapred-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/mapred-site.xml

修改mapred-site.xml文件

#在configuration标签中加入<!-- yarn表示新的框架,local表示本地运行,classic表示经典mapreduce框架 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<!-- 如果mapreduce任务访问本地库(压缩等),则必须保留原始值,当此值为空时,设置执行环境的命令将取决于操作系统 -->
<property>
  <name>mapreduce.admin.user.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.3</value>
</property>
<!-- 设置AM[AppMaster]端的环境变量 -->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.3</value>
</property>


打开hdfs-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/hdfs-site.xml

修改hdfs-site.xml文件

#在configuration标签中加入<!-- hdfs web的地址 -->
<property>
  <name>dfs.namenode.http-address</name>
  <value>centos-a:50070</value>
</property>
<!-- 副本数 -->
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<!-- 是否启用hdfs权限 -->
<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>
<!-- 块大小,默认128M -->
<property>
  <name>dfs.blocksize</name>
  <value>134217728</value>
</property>


打开works文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/workers

修改works文件

centos-a  #--主节点--centos-b  #--从节点--centos-c  #--从节点--


将centos-a主机节点配置好的文件发送给centos-b和centos-c

scp -r /usr/local/hadoop/hadoop-3.3.3 centos-b://usr/local/hadoop/
scp -r /usr/local/hadoop/hadoop-3.3.3 centos-c://usr/local/hadoop/



0x10 启动Hadoop(仅在主节点执行)

hadoop启动前必须要格式化

hadoop namenode -format


启动hadoop,启动文件位于sbin目录

start-all.sh  #--启动--stop-all.sh  #--停用--


浏览器访问hadoop的web界面

acf5e34e65dee33564b982cdadb3cb1.jpg

192.168.1.10:50070



0x11 总结

至此Hadoop部署完成。由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

相关文章
|
9月前
|
分布式计算 资源调度 Hadoop
Hadoop节点资源扩展环境部署
【4月更文挑战第16天】扩展Hadoop集群涉及多个步骤:准备新节点,配置静态IP,安装并配置Hadoop,将新节点添加到集群,验证测试,及优化调整。确保符合硬件需求,更新集群节点列表,执行`hdfs dfsadmin -refreshNodes`命令,检查新节点状态,并依据测试结果优化性能。注意不同环境可能需要调整具体步骤,建议参照官方文档并在测试环境中预演。
78 4
|
4月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
119 2
|
3月前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
6月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(二)
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(二)
|
6月前
|
分布式计算 Ubuntu Hadoop
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(一)
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(一)
|
6月前
|
SQL 分布式计算 Hadoop
centos7通过CDH部署Hadoop
centos7通过CDH部署Hadoop
|
6月前
|
分布式计算 Java Linux
centos7通过Ambari2.74部署Hadoop
centos7通过Ambari2.74部署Hadoop
|
6月前
|
存储 分布式计算 监控
Hadoop在云计算环境下的部署策略
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。随着云计算技术的发展,越来越多的企业开始利用云平台的优势来部署Hadoop集群,以实现更高的可扩展性、可用性和成本效益。本文将探讨如何在公有云、私有云及混合云环境下部署和管理Hadoop集群,并提供具体的部署策略和代码示例。
280 0
|
8月前
|
分布式计算 Hadoop 网络安全
|
8月前
|
存储 分布式计算 Hadoop

相关实验场景

更多