hadoop的优势是分布式集群计算,即搭建hadoop集群(完全分布式Hadoop)

集群由节点组成,节点构成不同角色。

hadoop集群

各个节点的功能

搭建集群步骤

  1. 节点规划
  2. 设置网络
  3. 配置文件
  4. 复制虚拟机
  5. 格式化文件系统
  6. 启动集群

准备工作与搭建集群

节点规划

服务器是什么?节点是什么?

服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。

节点就相当于服务器,节点越多,性能越好,但成本增加。

集群最少需要三个节点,分别作为NameNode,Secondary NameNode ,DataNode

NameNode记录数据分布情况

SecondDary NameNode备份主节点数据,防止死机后数据丢失,可以通过这个节点恢复数据

DataNode存放真正的数据,文件以数据块形式存储。

用三个虚拟机模拟三个节点来学习(虚拟主机无法体会多台计算机并行处理的优势,但操作步骤与实体主机相同)

设置网络

设置两个网卡

  • 网卡一,“仅主机网络”,连接主从节点主机

    • 选中虚拟机,点击设置
    • 进入虚拟机设置界面,点击网络,选择网卡1,选择连接方式——仅主机网络
  • 网卡二,“桥接连接”,连接主机和主节点、从节点与外部网络

    • 选择网卡2,勾选启用网络连接,选择连接方式——桥接连接,点击高级,在下拉内容的选择混杂模式——全部允许
    • 完成点击ok

修改配置文件

设置服务器master

重命名虚拟机

进入设置,选择常规,选择基本,在名称中输入主节点名称,点击ok

修改IP地址

(修改后不能上网)

  1. 使用ifconfig命令查看IP端口名称与当前IP地址,掩码网关,广播地址。

    ifconfig

使用下面方法,由于版本问题,对于Ubuntu20.04不能成功,参考:修改IP地址

修改IP地址,终端输入命令,编辑文件信息

sudo gedit /etc/network/interfaces

auto lo
iface lo inet loopbackauto enp0s3
iface enp0s3 inet static
address 192.168.1.10
netmask 255.255.255.0
broadcast 192.168.1.255

重启网络配置生效

sudo /etc/init.d/networking restart

  1. 在终端输入命令,编写文件(#后面的文字是注释,需要去掉)

    sudo gedit /etc/netplan/01-network-manager-all.yaml

    # Let NetworkManager manage all devices on this system
    network:#网络version: 2#版本renderer: NetworkManager#渲染器ethernets:#以太网enp0s3:addresses: [192.168.1.10/24]dhcp4: nodhcp6: nogateway4: 192.168.1.1#网关nameservers:#域名服务器addresses: [192.168.1.1,8.8.8.8]
    
  2. 输入命令,使刚才的配置生效

    sudo netplan apply

  3. 再使用ifconfig命令查看IP地址是否修改成功

    ifconfig

修改主机名

  1. 使用hostname命令查看主机名

    hostname

  2. 修改主机名输入命令,将文件内容修改为主机名(master)

    sudo gedit /etc/hostname

    master
    
  3. 需要重启生效

配置.xml文件

直接在home/linlin/hadoop/hadoop—/etc/hadoop/路径下打开终端

hdfs-site.xml

sudo gedit hdfs-site.xml

<configuration>
<property><name>dfs.replication</name><value>1</value>
</property>
<property><name>dfs.namenode.name.dir</name><value>file:///home/linlin/hadoop/hadoop-3.2.3/hadoop_data/hdfs/namenode</value>
</property><property><name>dfs.http.address</name><value>master:50070</value>
</property>
</configuration>

删除datanode存储目录

将IP地址改为主机名

core-site.xml

sudo gedit core-site.xml

<configuration>
<property><name>fs.defaultFS</name><value>hdfs://master:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/home/linlin/hadoop/hadoop-3.2.3/dataNode_1_dir</value>
</property>
</configuration>

将IP地址改为主机名

yarn-site.xml

sudo gedit yarn-site.xml

<configuration>
<property><name>yarn.resourcemanager.hostname</name><value>master</value>
</property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
</configuration>

将IP地址改为主机名

mapred-site.xml

sudo gedit mapred-site.xml

<property><name>mapred.job.tracker</name><value>master:54311</value>
</property>

修改内容(设置监控Map与Reduce程序的JobTracker任务分配情况,以及TaskTracker任务运行情况)

配置节点文件

在主目录/home/linlin下打开终端(为什么要在这里打开终端呢?我想多此一举罢了,多出点错,给自己找点麻烦~)

修改配置文件/etc/hosts

sudo gedit /etc/hosts

127.0.0.1    localhost
192.168.1.10    master
192.168.1.1 slave1
192.168.1.2 slave2# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

修改主节点、增加从节点的IP地址和主机名

修改masters文件

注意使用了相对路径(原本不存在这个文件,参考文档:Apache Hadoop 3.2.3 – Hadoop Cluster Setup,通过root用户创建)

sudo gedit ./hadoop/hadoop—/etc/hadoop/masters

master

添加主节点主机名

修改workers文件

hadoop3使用workers文件列出从节点,hadoop2使用slaves文件

sudo gedit ./hadoop/hadoop—/etc/hadoop/workers

slave1
slave2

修改从节点主机名

防止启动出错

将/hadoop—路径下的dataNode_1_dir文件夹logs文件夹删除(选中按delete)

建议将hadoop—/hadoop_data/hdfs/datanode和hadoop—/hadoop_data/hdfs/namenode路径下的current文件夹删除。否则可能和我一样出错,缺少DataNode进程,参考:slave缺少datanode进程
原因是需要将master的namenode与slave的datenode的current/VERSION文件中clusterID改为一致,才能守护进程。但是在格式化namenode之后,三个服务器的clusterID就会让人觉得很乱。所以直接删除,让其自行创建文件——在master的namenode下会创建current文件夹,在slave的datanode下会创建current文件夹;在hadoop—路径下会创建dir文件夹和logs文件夹

复制虚拟机

将服务器master复制出slave1,slave2,省略操作

复制虚拟机之前,关闭虚拟机

  1. 选中虚拟机,右键复制

  2. 进入新虚拟机名称和保存路径界面,输入新虚拟机名称,在下拉框Mac地址设定,选择包含所有网卡的Mac地址,单击下一步

  3. 进入副本类型界面,默认选中完全复制,单击复制

  4. 弹出进度条,等待复制完成,virtualbox出现新的虚拟机(同样复制下一个虚拟机)

设置服务器slave

与服务器master操作相同(同样方式操作slave1,slave2)

修改IP地址

修改addresses分别为192.168.1.1(192.168.1.2)

  1. 使用ifconfig命令查看IP端口名称与当前IP地址,掩码网关,广播地址。

    ifconfig

  2. 在终端输入命令,编写文件(#后面的文字是注释,需要去掉)

    sudo gedit /etc/netplan/01-network-manager-all.yaml

    # Let NetworkManager manage all devices on this system
    network:version: 2renderer: NetworkManagerethernets:enp0s3:addresses: [192.168.1.1/24]#[192.168.1.2/24]dhcp4: nodhcp6: nogateway4: 192.168.1.1nameservers:addresses: [192.168.1.1,8.8.8.8]
    
  3. 输入命令,使刚才的配置生效

    sudo netplan apply

  4. 再使用ifconfig命令查看IP地址是否修改成功

    ifconfig

修改主机名

修改slave1(slave2)

  1. 使用hostname命令查看主机名

    hostname

  2. 修改主机名输入命令,将文件内容修改为主机名

    sudo gedit /etc/hostname

    slave1#slave2
    
  3. 需要重启生效

配置hdfs-site.xml

直接在主目录下输入命令,打开文件

sudo gedit ./hadoop/hadoop—/etc/hadoop/hdfs-site.xml

<configuration>
<property><name>dfs.replication</name><value>1</value>
</property>
<property><name>dfs.datanode.data.dir</name><value>file:///home/linlin/hadoop/hadoop-3.2.3/hadoop_data/hdfs/datanode</value>
</property><property><name>dfs.http.address</name><value>master:50070</value>
</property>
</configuration>

将之前保留的namenode存储目录替换为datanode存储目录

ssh无密码连接登录

  1. 启动全部服务器master,slave1,slave2

  2. 在master终端输入连接命令,提示输入yes,发现命令提示符会发生变化,即成功连接

    ssh slave1

    ssh slave2

  3. 输入命令关闭ssh,发现命令提示符变回,即中断连接

    exit

格式化文件系统

部署HDFS文件系统,只需要在master上格式化,输入命令,弹出提示输入y,出现successfully则成功格式化

hdfs namenode -format

启动和关闭hadoop集群

(首次启动需要格式化,下次启动无需格式化)

  1. 启动hadoop命令(分为启动HDFS命令start.dfs.sh和启动YARN命令start.yarn.sh)

    start-all.sh

  2. 检验hadoop的全部守护进程(需要分别用ssh连接节点服务器,查看各个从节点的守护进程ssh slave1/ssh slave2、exit)

    jps

    master出现守护进程:NameNode;SecondaryNameNode;ResourceManger;jps

    slave1出现守护进程:NodeManager;DataNode;jps

    slave2出现守护进程:NodeManager;DataNode;jps

  3. 关闭hadoop命令(分为关闭HDFS命令stop.dfs.sh和关闭YARN命令stop.yarn.sh)

    stop-all.sh

查看集群信息

进入网址https://master:50070查看HDFS监控页面

进入网址https://master:8088查看YARN监控页面

体验并理解分布式计算

运行自带的mapreduce程序,计算圆周率的java程序包

位置:hadoop—/share/hadoop/mapreduce
文件名:hadoop-mapreduce-examples—.jar

在终端输入命令,其中pi是类名,第一个10表示map次数,第二个10表示随机生成点的次数

hadoop jar ./hadoop—/share/hadoop/mapreduce/hadoop-mapreduce-examples—.jar pi 10 10


最后两行会显示计算时间、计算结果

总结:验证hadoop启动成功的三种方式

  • jps查看进程
  • web页面验证
  • 执行MapReduce程序

理论公式都是火热的思考下产生的冰冷的美丽!

弗赖登塔尔曾说过:“没有一种数学思想如当初刚被发现时那样发表出来。一旦问题解决了,思考的程序便颠倒过来,把火热的思考变成冰冷的美丽。”

燃烧的问题:解决搭建hadoop集群出现的问题

hadoop集群搭建和配置相关推荐

  1. hadoop集群搭建 修改配置文件(三台主机都要配置)

    hadoop集群搭建      修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vim hadoop-env.sh 2)core-site.xml vim c ...

  2. ssh无密登录配置详解(hadoop集群搭建)

    ssh无密登录原理 Hadoop集群搭建时,配置ssh是给yarn用的,最好先清空.ssh目录下的文件,再生成密钥,在节点中含有resourcemanager的服务器(有多个resourcemanag ...

  3. Hadoop集群搭建配置教程

    Hadoop3.1.3集群搭建 前言 集群规划 集群搭建具体步骤 1.下载`hadoop-3.1.3.tar.gz` 2.上传并解压 3.配置`path`变量 4.修改配置文件 4.1 修改文件`ha ...

  4. Hadoop集群搭建(六:HBase的安装配置)

    实验 目的 要求 目的: 1.HBase的高可用完全分布模式的安装和验证 要求: 完成HBase的高可用完全分布模式的安装: HBase的相关服务进程能够正常的启动: HBase控制台能够正常使用: ...

  5. 好程序员大数据笔记之:Hadoop集群搭建

    好程序员大数据笔记之:Hadoop集群搭建在学习大数据的过程中,我们接触了很多关于Hadoop的理论和操作性的知识点,尤其在近期学习的Hadoop集群的搭建问题上,小细节,小难点拼频频出现,所以,今天 ...

  6. linux hadoop集群搭建,hadoop集群搭建

    hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...

  7. Hadoop集群搭建(27)

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop集群搭建方式: 1.1    确定部署三个节点,分别是hadoop0,hadoop1,hadoop2. 其中had ...

  8. Hadoop 集群搭建

    Hadoop 集群搭建 2016-09-24 杜亦舒 目标 在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序 搭建 ...

  9. 大数据 -- Hadoop集群搭建

    Hadoop集群搭建 1.修改/etc/hosts文件 在每台linux机器上,sudo vim /etc/hosts 编写hosts文件.将主机名和ip地址的映射填写进去.编辑完后,结果如下: 2. ...

最新文章

  1. 一文详解点云分割算法
  2. Caffe在Ubuntu 14.04 64bit 下的安装------pycaffe 配置
  3. UTF-8 GBK 联系和区别
  4. 如何给Apache添加虚拟路径和虚拟主机?
  5. PowerDesigner显示mysql数据表注释
  6. 创业故事:腾讯的创始人们
  7. 2019年东莞特长生 散步
  8. 改变背景色为苹果绿--保护眼睛
  9. 我的技术回顾那些与ABP框架有关的故事-2017年
  10. Python(14)-模块
  11. python中嵌套函数的应用实例-实例详解python函数的对象、函数嵌套、名称空间和作用域...
  12. 在windows下配置PostgreSQL
  13. 2020年能够实现强AI吗?GPT-3 是强AI吗?
  14. 基于java的网络抓包方法
  15. IE实现PDF在线预览功能
  16. 几个特别棒的免费可商用字体
  17. 测试无线电频率的软件叫什么,软件无线电到底是什么
  18. du -c 单位 linux,Linux命令 du
  19. SLAM前端知识汇总
  20. mysql主从数据一致性问题及MHA和MGR的架构及底层原理

热门文章

  1. 国产远程连接工具神器---ToDesk
  2. StarRocks理论介绍
  3. outlook2007不能发送邮件
  4. HP DL388p Gen8 风扇速率100%
  5. 病毒盗窃了黑寡妇的制毒基因
  6. opencv Histogram Equalization 直方图均衡。
  7. 汇编标志位及操作讲解
  8. scrollTop和scrollHeight
  9. owncloud安装
  10. JavaScript时间戳转日期