0


Hadoop集群配置

文章目录

Hadoop是什么

1. 分布式系统基础架构
2. 解决海量数据的存储与分析计算
3. Hadoop广义是指Hadoop生态圈

Hadoop的优势

1. 高可靠性:底层维护多个数据副本,一个故障不会导致数据的丢失
2. 高扩展性:在集群间分配数据,可动态增加服务器
3. 高效性: 使用MapReduce思想,并行工作加快处理速度
4. 高容错性:能够自动将失败的任务重新分配

Hadoop组成

#mermaid-svg-BkbN4pm5fWlWnwhO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO .error-icon{fill:#552222;}#mermaid-svg-BkbN4pm5fWlWnwhO .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BkbN4pm5fWlWnwhO .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-BkbN4pm5fWlWnwhO .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BkbN4pm5fWlWnwhO .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BkbN4pm5fWlWnwhO .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BkbN4pm5fWlWnwhO .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BkbN4pm5fWlWnwhO .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BkbN4pm5fWlWnwhO .marker.cross{stroke:#333333;}#mermaid-svg-BkbN4pm5fWlWnwhO svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BkbN4pm5fWlWnwhO .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO .cluster-label text{fill:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO .cluster-label span{color:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO .label text,#mermaid-svg-BkbN4pm5fWlWnwhO span{fill:#333;color:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO .node rect,#mermaid-svg-BkbN4pm5fWlWnwhO .node circle,#mermaid-svg-BkbN4pm5fWlWnwhO .node ellipse,#mermaid-svg-BkbN4pm5fWlWnwhO .node polygon,#mermaid-svg-BkbN4pm5fWlWnwhO .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BkbN4pm5fWlWnwhO .node .label{text-align:center;}#mermaid-svg-BkbN4pm5fWlWnwhO .node.clickable{cursor:pointer;}#mermaid-svg-BkbN4pm5fWlWnwhO .arrowheadPath{fill:#333333;}#mermaid-svg-BkbN4pm5fWlWnwhO .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BkbN4pm5fWlWnwhO .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BkbN4pm5fWlWnwhO .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-BkbN4pm5fWlWnwhO .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-BkbN4pm5fWlWnwhO .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BkbN4pm5fWlWnwhO .cluster text{fill:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO .cluster span{color:#333;}#mermaid-svg-BkbN4pm5fWlWnwhO div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BkbN4pm5fWlWnwhO :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

      Hadoop组成
     

      MapReduce
     

      计算
     

      Yarn
     

      资源调度
     

      HDFS
     

      数据存储
     

      Common
     

      辅助工具
     

在这里插入图片描述

HDFS概述

名称作用NameNode(NN)存储文件的元数据,如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的块列表DataNode(DN)在本地文件系统存储文件块数据,以及块数据的校验和SecondaryNameNode(2NN)每一段时间对NameNode元数据备份

Yarn架构

名称作用Resource Manager(RM)管理整个集群的资源Node Manager(NM)管理单个服务器资源ApplicationMaster(AM)管理单个任务Container相当于一个独立服务器,里面包含了任务运行所需的资源

MapReduce架构

MapReduce将计算过程分为两个阶段:Map和Reduce
1. Map阶段并行处理输入数据
2. Reduce阶段对Map结果进行汇总

开始搭建Hadoop集群

点击下载 CentOS-7
点击下载 VMware16 pro
点击跳转 XSHELL和XFTP教育版下载
点击跳转 ORACLE JDK8
点击下载 Hadoop-3.1.3

#mermaid-svg-XjsZaIJLIbvYxA7Z {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .error-icon{fill:#552222;}#mermaid-svg-XjsZaIJLIbvYxA7Z .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XjsZaIJLIbvYxA7Z .marker{fill:#333333;stroke:#333333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .marker.cross{stroke:#333333;}#mermaid-svg-XjsZaIJLIbvYxA7Z svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-XjsZaIJLIbvYxA7Z .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .cluster-label text{fill:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .cluster-label span{color:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .label text,#mermaid-svg-XjsZaIJLIbvYxA7Z span{fill:#333;color:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .node rect,#mermaid-svg-XjsZaIJLIbvYxA7Z .node circle,#mermaid-svg-XjsZaIJLIbvYxA7Z .node ellipse,#mermaid-svg-XjsZaIJLIbvYxA7Z .node polygon,#mermaid-svg-XjsZaIJLIbvYxA7Z .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-XjsZaIJLIbvYxA7Z .node .label{text-align:center;}#mermaid-svg-XjsZaIJLIbvYxA7Z .node.clickable{cursor:pointer;}#mermaid-svg-XjsZaIJLIbvYxA7Z .arrowheadPath{fill:#333333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-XjsZaIJLIbvYxA7Z .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-XjsZaIJLIbvYxA7Z .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-XjsZaIJLIbvYxA7Z .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-XjsZaIJLIbvYxA7Z .cluster text{fill:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z .cluster span{color:#333;}#mermaid-svg-XjsZaIJLIbvYxA7Z div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-XjsZaIJLIbvYxA7Z :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

      事前准备
     

      CentOS7系统镜像
     

      Windows平台
     

      VMware
     

      XSHELL
     

      XFTP
     

      Liunux平台
     

      jdk.tar.gz
     

      Hadoop-3.1.3
     

一、安装VMware

二、新建虚拟机,安装CentOS

三、配置主机

1、授予你的用户sudo权限,并且新建两个目录,所有权改为你的用户

鼠标右键桌面,找到在终端打开

# 输入密码后进入最高权限root角色su# 给自己新建的用户增加sudo权限'vi /etc/sudoers
# ##Allows people in group wheel to run all commands# %wheel  ALL=(ALL)       ALL'# 在此处下面添加
username     ALL=(ALL)       NOPASSWD:ALL
# 切换新建用户su username
# 前往/opt目录,新建module文件夹和software文件夹cd /opt
sudomkdir module
sudomkdir software
# 将文件所有权交给新建用户sudochown username:username module software

2、修改网络配置

# 修改网络配置sudovi /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改主机名称sudovi /etc/hostname
# 配置IP对主机名的映射sudovi /etc/hosts

网络配置改为:IP的前三个网段要与自己Vnet8的网段保持一致(具体到windows上的查询方法为在CMD里面输入ipconfig即可找到)
在这里插入图片描述

ifcfg-ens33

BOOTPROTO="static"
# 后面加上四行
# 前三个网段 + 3~255任意数字,建议130开始,后续主机这个值递增即可
IPADDR=192.168.18.130
# 默认值,不更改
NETMASK=255.255.255.0
# 前三个网段 + 最后一段固定为2
GATEWAY=192.168.18.2
# 与上一行保持一致即可
DNS1=192.168.18.2

hostname

#写入你的主机名称即可

hosts

IP对主机名映射样板如下:

# 自带的内容可以删除
# 前面是你的主机的ip地址,后面是你的主机名,后续可以直接ping主机名通过这个文件来找到对应ip
192.168.18.130 master
192.168.18.131 slave1
192.168.18.132 slave2
192.168.18.133 slave3

四、连接XShell

  1. 打开XShell,新建会话
  2. 名称随意填写,主机填写IP即可连接(连接不上可以重启虚拟机一下重试)
  3. 用户输入你新建的用户,密码即可(不建议root连接)在这里插入图片描述

四、禁用防火墙和禁用selinux

# 关闭防火墙、禁止自启动防火墙sudo systemctl stop firewalld
sudo systemctl disable firewalld.service
# SELINUX的enforcing修改为disabledsudovi /etc/selinux/config

五、安装配置java

注意你下载的jdk的版本可能会不一致,注意更改文件名

# 如果机器已经自带了jdk,用如下命令卸载surpm -qa |grep -i java |xargs -n1 rpm -e --nodeps
# 进入software目录cd /opt/software
# 在XSHELL上方有打开XFTP# 利用XFTP将jdk8和Hadoop的压缩包放在/opt/software目录下# 解压jdk输出到/opt/module/tar -zxvf jdk-8u341-linux-x64.tar.gz -C /opt/module/
# 配置环境变量suecho'#JAVA_HOME'>> /etc/profile.d/my_env.sh
echo'export JAVA_HOME=/opt/module/jdk1.8.0_341'>> /etc/profile.d/my_env.sh
echo'export PATH=$PATH:$JAVA_HOME/bin'>> /etc/profile.d/my_env.sh
# 载入新的配置文件source /etc/profile

六、安装配置Hadoop

安装Hadoop并且配置环境变量

su username
# 解压hadoop到输出/opt/module/tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
# 配置环境变量suecho'#HADOOP_HOME'>> /etc/profile.d/my_env.sh
echo'export HADOOP_HOME=/opt/module/hadoop-3.1.3'>> /etc/profile.d/my_env.sh
echo'export PATH=$PATH:$HADOOP_HOME/bin'>> /etc/profile.d/my_env.sh
echo'export PATH=$PATH:$HADOOP_HOME/sbin'>> /etc/profile.d/my_env.sh
# 载入新的配置文件source /etc/profile

*可跳过这一步,这一步只是初步体会hadoop作用

cd /opt/module/hadoop-3.1.3
mkdir wcinput
cd wcinput
# 任意写入几个个单词,提供给后续wordcount程序作为输入文件vi word.txt
# 调用wordcount程序
bin/hadoop  jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput.txt ./wcoutput

配置Hadoop配置文件

cd /opt/module/hadoop-3.1.3/etc/hadoop
vi core-site.xml
vi hdfs-site.xml
vi mapred-site.xml
vi yarn-site.xml
vi workers

1. core-site.xml

<!-- core-site.xml --><configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value></property><property><name>io.file.buffer.size</name><value>131072</value></property></configuration>

2. hdfs-site.xml

<!-- hdfs-site.xml --><configuration><property><name>dfs.namenode.http-address</name><value>master:9870</value></property><property><name>dfs.namenode.secondary.http-address</name><value>slave2:9868</value></property><property><name>hadoop.http.staticuser.user</name><value>username</value></property></configuration>

3. yarn-site.xml

<!-- yarn-site.xml --><configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>slave1</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_MAPRED_HOME,PATH,LANG,TZ</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log.server.url</name><value>http://slave1:19888/jobhistory/logs</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>

4. mapred-site.xml

<!-- mapred-site.xml --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>slave2:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>slave2:19888</value></property></configuration>

5. workers:

master
slave1
slave2
slave3

七、利用VMware复制四台服务器

  1. 关闭主机
  2. 复制机器
  3. 打开每一台机器,然后每台机器执行一遍的“三、配置主机”下的“2.修改网络配置”即可

八. 搭建全分布式

配置免密登录

以下命令注意使用xshell多开,减少重复工作

  • 打开XShell多开 上方菜单栏工具 --> 发送输入到 --> 所有会话
# 创建当前主机rsa密钥
ssh-keygen -t rsa
# 拷贝hostname的密钥到本地,需要进行多次操作保证每一台主机拥有所有主机的密钥
ssh-copy-id -i master
ssh-copy-id -i slave1
·
·
·
ssh-copy-id -i slaven
# 尝试免密连接其他主机,建议多次尝试,避免问题发生ssh master

九、初始化Hadoop集群

# 该命令一定只在namenode上面执行
hdfs namenode -format
# namenode上启动分布式文件系统
start-dfs.sh
#在所有主机上运行jps,查看开启的进程,若都有datanode则恭喜你hadoop环境搭建完成了
jps

十、查看web端的dfs(文件分布式系统)

访问 master:9870查看系统

在这里插入图片描述

结束

至此已经全部配置完成了,有不清楚的地方还请指正~


本文转载自: https://blog.csdn.net/weixin_52386133/article/details/127008609
版权归原作者 可乐咩_hqp 所有, 如有侵权,请联系我们删除。

“Hadoop集群配置”的评论:

还没有评论