环境信息

1. 硬件:

内存ddr3 4G及以上的x86架构主机一部
系统环境:windows

2. 软件:

virtualbox
3. 其他: 无

步骤与方法

1. 安装Hadoop并进行集群搭建

1) 设置集群前的准备工作

设置网络
设置两个网卡:
网卡一,“仅主机网络”,连接主从节点与主机。选中虚拟机,点击设置。进入虚拟机设置界面,点击网络,选择网卡1,选择连接方式——仅主机网络。

网卡二,“桥接连接”,连接主机和主节点、从节点与外部网络。选择网卡2,勾选启用网络连接,选择连接方式——桥接连接,点击高级,在下拉内容的选择混杂模式——全部允许。完成点击ok。

修改配置文件,设置服务器master,重命名虚拟机。
进入设置,选择常规,选择基本,在名称中输入主节点名称,点击ok
修改IP地址(修改后不能上网)。
(1) 使用ifconfig命令查看IP端口名称与当前IP地址,掩码网关,广播地址。

(2) 在终端输入命令,编写文件(#后面的文字是注释,需要去掉)。
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#网关

(3) 输入命令,使刚才的配置生效。
sudo netplan apply
(4) 再使用ifconfig命令查看IP地址是否修改成功。
Ifconfig

修改主机名

(1) 使用hostname命令查看主机名。
(2) 修改主机名输入命令,将文件内容修改为主机名(master)。
sudo gedit /etc/hostname
(3) 需要重启生效。

配置.xml文件
直接在home/linlin/hadoop/hadoop—/etc/hadoop/路径下打开终端。

删除datanode存储目录,将IP地址改为主机名。

core-site.xml
sudo gedit core-site.xml将IP地址改为主机名。

yarn-site.xml将IP地址改为主机名。
sudo gedit yarn-site.xml

mapred-site.xml
sudo gedit mapred-site.xml修改内容(设置监控Map与Reduce程序的JobTracker任务分配情况,以及TaskTracker任务运行情况)。

配置节点文件
修改配置文件/etc/hosts,修改主节点、增加从节点的IP地址和主机名。
sudo gedit /etc/hosts

修改masters文件
注意使用了相对路径(原本不存在这个文件,参考文档:Apache Hadoop 3.2.3 – Hadoop Cluster Setup,通过root用户创建)。
sudo gedit ./hadoop/hadoop—/etc/hadoop/masters
添加主节点主机名

修改workers文件
hadoop3使用workers文件列出从节点,hadoop2使用slaves文件。
sudo gedit ./hadoop/hadoop—/etc/hadoop/workers

防止启动出错
将/hadoop—路径下的dataNode_1_dir文件夹和logs文件夹删除(选中按delete)。
建议将hadoop—/hadoop_data/hdfs/datanode和hadoop—/hadoop_data/hdfs/namenode路径下的current文件夹删除。否则可能缺少DataNode进程。

复制虚拟机

将服务器master复制出slave1,slave2,省略操作。复制虚拟机之前,关闭虚拟机。
选中虚拟机,右键复制,进入新虚拟机名称和保存路径界面,输入新虚拟机名称,在下拉框Mac地址设定,选择包含所有网卡的Mac地址,单击下一步。进入副本类型界面,默认选中完全复制,单击复制。弹出进度条,等待复制完成,virtualbox出现新的虚拟机(同样复制下一个虚拟机)。

2) 设置服务器

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

修改IP地址

修改addresses分别为192.168.1.1(192.168.1.2)。
(1) 使用ifconfig命令查看IP端口名称与当前IP地址,掩码网关,广播地址。
(2) 在终端输入命令,编写文件(#后面的文字是注释,需要去掉)。
sudo gedit /etc/netplan/01-network-manager-all.yaml
(3) 输入命令,使刚才的配置生效。
sudo netplan apply
(4) 再使用ifconfig命令查看IP地址是否修改成功。
修改主机名
修改slave1(slave2)。
(1) 使用hostname命令查看主机名。
(2) 修改主机名输入命令,将文件内容修改为主机名。
sudo gedit /etc/hostname
(3) 需要重启生效。
配置hdfs-site.xml
直接在主目录下输入命令,打开文件:
sudo gedit ./hadoop/hadoop—/etc/hadoop/hdfs-site.xml
将之前保留的namenode存储目录替换为datanode存储目录。

ssh无密码连接登录
(1) 启动全部服务器master,slave1,slave2。

(2) 在master终端输入连接命令,提示输入yes,发现命令提示符会发生变化,即成功连接。
ssh slave1
ssh slave2
(3) 输入命令关闭ssh,发现命令提示符变回,即中断连接。
Exit

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

3) 启动和关闭Hadoop集群

启动hadoop命令(分为启动HDFS命令start.dfs.sh和启动YARN命令start.yarn.sh)(首次启动需要格式化,下次启动无需格式化)。
start-all.sh
检验hadoop的全部守护进程(需要分别用ssh连接节点服务器,查看各个从节点的守护进程ssh slave1/ssh slave2、exit)。
jps
master出现守护进程:NameNode;SecondaryNameNode;ResourceManger;jps
slave1出现守护进程:NodeManager;DataNode;jps
slave2出现守护进程:NodeManager;DataNode;jps

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

4) 查看Hadoop集群的基本信息

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


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

5) 在Hadoop集群中运行程序

运行自带的mapreduce程序,计算圆周率的java程序包(jar包——计算圆周率)
位置: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程序。

2. HDFS常用命令使用

  1. 创建与查看HDFS目录
  2. 本地计算机和HDFS之间的文件复制
  3. 复制与删除HDFS文件
  4. 查看HDFS文件内容

    Linux本机和HDFS之间文件传输
    即虚拟机的linux系统的文件与hadoop的HDFS分布式系统的文件之间的文件共享

上传文件(linux—>hdfs)

hadoop fs -copyFromLocal [linux] [hdfs]
hadoop fs -put [linux] [hdfs]
可以进行文件重命名。
hdfs没有写文件名,默认为原来的命名。
linux上传的文件必须存在。
hdfs已经存在文件,不会上传,使用下面选项,强制上传。
-f选项,强制复制(存在则替换文件)。
可以上传多个文件。
可以上传目录。
-put命令,还可以接收输入stdin。
将指定内容显示在屏幕上:echo [内容]
通过"|"(管道符pipe)将屏幕的内容传递存入文件(文件不能已经存在)
echo abc | hadoop fs -put - /test/echoin.txt
ls ./hadoop—/etc/hadoop | hadoop fs -put - /test/hadoopetc.txt
文件下载(hdfs—>linux)
hadoop fs -copyToLocal [hdfs] [linux]
hadoop fs -get [hdfs] [linux]
可以进行文件重命名。
hdfs下载的文件必须存在。
可以下载目录。

出现的问题及解决方法

1、网络配置问题

出现问题:编辑/etc/network/interfaces文件信息,再执行下面命令使配置生效,结果找不到命令。
linlin@master:~$ sudo /etc/init.d/networking restart
sudo: /etc/init.d/networking:找不到命令。

原因说明:/etc/network路径下原本并没有interfaces文件,/etc/netplan路径下有*.yaml文件。Ubuntu20.04的配置网络不是修改interfaces文件,而是需要修改*.yaml文件。
解决步骤: 使用命令ifconfig查看IP端口名称,当前IP地址,掩码,广播地址;在终端输入命令,编写文件(#后面的文字是注释,需要去掉)。
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,114.114.114.114]

输入命令,使刚才的配置生效:sudo netplan apply。
再次输入命令,查看修改后的IP地址(对比下面的红色标记),修改成功!

2、重启后,网卡消失不见

问题说明:网络配置中修改了interfaces文件,结果端口信息都看不到了(本来有enp0s3端口)

解决方法:
在/etc/network的路径进入终端输入命令,删除文件(建议):rm interfaces。或者清空修改的interfaces文件:sudo gedit /etc/network/interfaces。
输入下行的命令,使配置生效(sudo /etc/init.d/networking restart这条命令无效):sudo /etc/init.d/network-manager restart。
再输入命令ifconfig,就可以看到网卡回来了(下图中红色标记为输入的命令)。

3、虚拟机不能上网

原因说明:当使用网络地址转换时,为10.0.2.15,公网下可以上网;当使用仅主机网络时,为192.168.56.101,为私人网段,不能上网。修改IP地址为192.168.1.10,依然为私人网段,不能上网。
解决方法:虚拟机未启动的状态下,设置网卡一连接方式为网络地址转换(NAT),其它网卡取消勾选启用网络连接,点击ok。

4、路径错误

出现问题:编写masters文件,出现找不到文件,检查输入位置是否正确并重试。
原因说明:混淆了绝对路径和相对路径,在主目录/home/linlin下打开终端,如下图。

第一条绝对路径正确,根目录/下/etc/hosts文件确实存在。
第二条绝对路径错误,根目录/下不存在/hadoop…/masters文件。
第一条相对路径正确,主目录/home/linlin存在/hadoop…/masters文件。
第一条相对路径正确,主目录/home/linlin存在/hadoop…/masters文件,省略了./。

4、slave缺少datanode进程

出现问题:配置好所有节点后,启动hadoop,发现其中slave服务器缺少datanode进程。查看web页面,hdfs页面LiveNode节点数为0,yarn页面正常可以查看node信息。
原因说明:之前配置hadoop时,创建和产生的临时文件:
file:///home/linlin/hadoop/hadoop-3.2.3/dataNode_1_dir
file:///home/linlin/hadoop/hadoop-3.2.3/logs
file:///home/linlin/hadoop/hadoop-3.2.3/hadoop_data/hdfs/datanode
file:///home/linlin/hadoop/hadoop-3.2.3/hadoop_data/hdfs/namenode
这些路径下的/dfs/namesecondary/current/VERSION文件或者/current/VERSION文件与进程的节点存储目录有关。正常的集群应该是:master上只有namenode临时文件,slave上只有datanode临时文件。两个目录的临时文件信息应该通过什么关联,对比文件发现:

格式化namenode文件前后namenode文件中clusterID发生变化,所以与clusterID有关,与layoutVersion这一项无关。
解决方法一:格式化namenode,将master服务器的namenode路径下的临时文件/current/VERSION的clusterID与slave服务器的datenode路径下临时文件/current/VERSION的clusterID改为一致。启动hadoop。
解决方法二:删除dataNode_1_dir和logs文件夹,删除节点存储目录的current文件夹,格式化namenode,启动hadoop。
正常的hadoop进程:

结果、结果分析

1、 安装Hadoop完成
2、集群搭建成功

3、练习了HDFS常用命令

实验成功完成。

心得体会

随着计算机软硬件技术的飞速发展,计算机的功能越来越强大,使用的范围也越来越广泛,计算机进入家庭已经成为一种世界性的潮流。学习Hadoop大数据处理与分析让我们快速、全面地了解虚拟机的各种知识,加强了我们的实践动手能力和进一步了解理论知识,通过自己动手搭建集群环境,既可以增长知识,又增添无穷的乐趣。虽然时间不是很长,但是我受益匪浅,这次实验,让我们对虚拟机有了更深的了解。
一个完美的集群是很需要花时间和心思研究它的每一个细节的,在今后生活和学习过程中,继续坚持对问题的观察和研究,并不断把研究所得用以指导自己的行为实践,以争取自己思想的上进和人格的完善,将来要在有用的基础上做一个出色的人。
欢迎大家加我微信交流讨论(请备注csdn上添加)

Hadoop的集群搭建及HDFS命令相关推荐

  1. hadoop分布式集群搭建

    hadoop集群搭建前的准备(一定要读):https://blog.51cto.com/14048416/2341450 hadoop分布式集群搭建: 1. 集群规划: 2.具体步骤: (1)上传安装 ...

  2. Hadoop分布式集群搭建以及案例运行-fs操作

    Hadoop分布式集群搭建案例步骤(也可以叫分布式文件系统) 一:创建分布式集群环境 二:设置静态ip以及主机名与映射关系 三:创建用户.配置SSH无密登录 四:子机dn操作 五:配置主机jdk.ha ...

  3. Hadoop/Spark集群搭建图文全攻略

    Hadoop/Spark集群搭建图文全攻略 一.安装VMware 二.创建Linux虚拟机 三.CentOS-7安装 四.Linux系统环境配置 五.其他配置 六.虚拟机克隆 七.jdk安装 八.Zo ...

  4. 【转】Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    https://www.cnblogs.com/caiyisen/p/7373512.html 前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很 ...

  5. Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

  6. Hadoop分布式集群搭建完全详细教程

    Hadoop分布式集群环境搭建步骤如下 实验环境: 系统:win7 内存:8G(因要开虚拟机,内存建议不低于8G) 硬盘:建议固态 虚拟机:VMware 12 Linux:Centos 7 jdk1. ...

  7. Hadoop分布式集群搭建完全教程

    Hadoop分布式集群环境搭建步骤如下 实验环境: 系统:win7 内存:8G(因要开虚拟机,内存建议不低于8G) 硬盘:建议固态 虚拟机:VMware 12 Linux:Centos 7 jdk1. ...

  8. Hadoop简单集群搭建,三台虚拟机运行wordcount

    Hadoop简单分布式集群搭建,利用三台虚拟机 注:本文用到的hadoop版本是 hadoop-2.5.2,虚拟机是CentOS-6.10,虚拟机安装软件是VMware,java环境是 jdk1.8. ...

  9. Hadoop分布式集群搭建(完整版)

    一.前期准备工作 VMware和Centos7下载安装教程: https://blog.csdn.net/m0_59209350/article/details/117793482 XShell和Xf ...

最新文章

  1. 职称计算机证是继续教育的内容吗,豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~...
  2. 微指令地址的形成方式_交换那些事儿 | 基础维护篇 IPv6地址分类及配置方法
  3. 1111 Online Map (30 分)【难度: 一般 / 知识点: Dijkstra最短路】
  4. 知识蒸馏 循环蒸馏_Java垃圾收集蒸馏
  5. 【POJ - 1287】 Networking (并查集 + 最小生成树)
  6. JBOSS常用端口说明
  7. java抽象类可以new_java的抽象类,接口,普通类是否可以直接NEW,并且复写方法?
  8. 面对不稳定的百度网盘离线下载,这些备用方案可以帮你应急
  9. 理解“正反馈”和“负反馈”,学会系统性思考
  10. 【积分变换】积分变换常用公式定理与方法
  11. windows设置hosts
  12. ctf 实验吧 围在栅栏中的爱 (最近一直在好奇一个问题,QWE到底等不等于ABC? )
  13. extern “C”的使用
  14. STC12C5A60S2定时器配置
  15. FCC-函数式编程:使用 reduce 方法分析数据
  16. Go语言编程设计学习Day1:helloworld 变量 常量
  17. 移植python到小米路由器记录。
  18. 腾讯 Code Review 规范出炉!你还敢乱写代码??
  19. 聊聊我的 Pandas 学习经历及动手实践
  20. 索尼随身听体积小吗?

热门文章

  1. 【python】脚本编写
  2. 软件项目管理第4版课后习题[附解析]第十章
  3. ccna学习指南笔记1
  4. 【软考】【系统架构设计师】最大流量问题
  5. Minitab16破解(简单)
  6. 点餐系统---------软件工程课程设计
  7. 获取新浪微博cookie
  8. Java帝国之宫廷内斗(2)
  9. Android小游戏开发:简单的合金弹头游戏(一)游戏框架
  10. 通过UC开发者调试工具调试webView