大数据技术学习-部署Hadoop完全分布式

一.安装准备

1.创建虚拟机

选择自定义(高级)选项

0d46b15386db4824b46a6144ea974bbe.png

单击“下一步”选择硬件兼容性为Workstation 16.x

cb31be61d6064efa9fb231775b8f60a7.png

单击“下一步”选择安装来源为“稍后安装操作系统”

fe2e5a71586b46e7bce3f15cf22536e1.png

单击“下一步”,设置操作系统为Linux,版本为Linux 5.x内核64位

83c836bd3c744867b67bcd39d6c49595.png

单击“下一步”,将虚拟机命名为Hadoop1,指定虚拟机在本地的存储位置为D:\Virtual Machine\Hadoop\Hadoop1

2fb5a7001bb24fea81e3ab36930508f0.png

单击“下一步”,设置处理器的数量为1,每个处理器的内核数量为2

f968e16d852746baa23a27fefed171c9.png

单击“下一步”,设置虚拟机的内存为4096MB。实际内存可以根据需要调整,但不建议低于4096MB。

44e331fc0cba4dfd9c166262893526b5.png

单击“下一步”,设置网络连接为“使用网络地址转换(NAT)”

2e79039ee07a4b90aab0b7429d7ee117.png

单击“下一步”,设置控制器类型为LSI Logic

5b67882d3d8a49e687728b2d1ee006ed.png

单击“下一步”,设置虚拟机磁盘类型为SCSI

2e75c67d2d9e4efc85cf644fc91d0c1a.png

单击“下一步”,设置磁盘为“创建新虚拟磁盘”

17e6dcab10304e718bfe3b2f3a6fdb71.png

单击“下一步”,设置最大磁盘大小为30.0,并选择“将虚拟磁盘拆分为多个文件”

44e83256937e433e81a142714da6edf5.png

单击“下一步”,设置磁盘文件名如下

f15fc21f87b14e31b8b256b5a87261a2.png

单击“下一步”,点击完成创建

537b999ce7c04cdc91d2d427976f7f38.png

创建完成的效果图如下

bb26f18bdb3d4ebd82921e2652a9320c.png

在上图中单击“编辑虚拟机设置”,进入如图所示界面,点击CD/DVD(IDE),设置如下,镜像文件可从官网下载,这里使用的是CentOS-Stream-9-latest-x86_64-dvd1.iso,点击确定。

6325ac23c62747bba1b1f7ea38ed9576.png

开启虚拟机,选择语言为中文

1b7b696c1b98472d919b9fca79e41af5.png

点击“继续”进入如图所示界面

b3c3889a97094fe59773d3447f4eba2a.png

  首先选择"网络和主机名",在该页面确认以太网(ens33)为打开状态,然后设置主机名为hadoop1,点击“应用”。点击左上角的“完成”返回

2f0790024d5e420c8b985181eb94a682.png

选择“时间和日期”,确定“地区”和“城市”为“亚洲”,“上海”,网络时间为打开状态。点击“完成”返回。

选择“安装目标位置”,配置如下,点击“完成”返回。

6af159f8a32b4ea3ae095baf4f08e63e.png

点击“软件选择”,设置如下,点击“完成”返回。

0ed74851d402446285fe2b42547f1320.png

点击“root密码”,设置密码,如果你的密码太过简单的话,必须按两次“完成”才可设置成功

daa9f2c5d12d47bcbeb8dba8298b6a8c.png

完成上述步骤后我们就可以点击“开始安装”了,这个时间可能会有点久,稍等一会。

9037cecd0bc842e68ff8f3ae8ad5bda3.png

安装完成后重启系统

17673a5d9e174c579cf43396b48ef7cf.png

进入系统后输入你的用户和密码,需要注意的是虚拟机进入后你的数字键会熄灭,输密码不要输错。

717bb649764c42b98fd8af9cf244af25.png

如果你完成了上面的登录,说明你成功了。

2.克隆虚拟机

首先关闭虚拟机hadoop1,关闭完成后右键虚拟机hadoop1,依次选择“管理”,“克隆”。

f0daff49695a4bf380b57e261f10c2bd.png

单击“下一步”。

8f292be031df4b8aae6c1f29c28433a8.png

选择“创建完整克隆”后,单击“下一步”。

0298a31dccd34df39060cb1bc3fbd052.png

设置新的虚拟机名称为hadoop2,设置安装位置如图所示

3a93ee3ce1ff47fa8187e0dd0c840408.png

单击“完成”,完成克隆,虚拟机hadoop3也这样克隆

3.配置虚拟机

3.1配置虚拟机的主机名和ip映射

因为虚拟机Hadoop2,Hadoop3是克隆虚拟机Hadoop1的,所以做出如下修改。首先分别在Hadoop2,Hadoop3执行如下命令

hostnamectl set-hostname hadoop2
hostnamectl set-hostname hadoop3

上述命令完成后分别在Hadoop2,Hadoop3执行如下命令重启虚拟机

reboot

然后配置VMware Workstation网络,在主页依次选择“编辑”,"虚拟网络编辑器",选中类型为NAT模式的网卡,单击“更改设置”。

b1dcae9ad6e940389b2774fb5b0f805e.png

在新弹出来的页面作出如下配置,单击“完成”完成VMware Workstation的配置。

40b438269812421e864d76a753d569e8.png

分别在三台虚拟机中执行vi /etc/profile命令,并在打开的文件添加如下内容。(先单击键盘的“i”进入修改模式,修改完成后单击“esc”退出编写模式,按住"shift"+":",输入“wq”保存退出。)

192.168.121.0 hadoop1
192.168.121.1 hadoop2
192.168.121.2 hadoop3

3.2.配置虚拟机的网络参数

将三台虚拟机的动态ip修改为静态ip,下面以Hadoop2为例进行修改。

首先编辑网络配置文件ens33.nmconnection

vi /etc/NetworkManager/system-connections/ens33.nmconnection

 修改ipv4的参数,包括method的值改为manual,添加参数address1=192.168.121.161/24,192.168.121.2和dns=114.114.114.114,前者用于指定IP和网关,后者用于制定域名和解析器。

 d387e2dc7bae4d95aa4ffa76e4928dc2.png

 修改网卡配置文件中的uuid,它的作用是使分布式系统中的所有元素都有唯一的标识码(只有2和3需要修改)

sed -i ' /uuid=/c\uuid='`uuidgen`'' /etc/NetworkManager/system-connections/ens33.nmconnection

 修改完成后需要执行“nmcli c reload”命令重新加载网络配置文件以及执行“nmcli c up ens33”命令重启ens33网卡,执行完毕后通过“ip addr”查看Hadoop2的网络信息验证配置文件是否更改成功。

9183d9f70951438c8c1f85a205a62464.png

从上图可以看出IP地址成功修改为192.168.121.161。hadoop1和hadoop3的网络参数配置方式与hadoop2的方式相同,其中dns的值相同,hadoop1和hadoop3的address1值分别为192.168.121.160/24,192.168.121.2和192.168.121.162/24,192.168.121.2

3.3配置虚拟机远程登录

以Hadoop2为例,使用如下命令查看当前虚拟机是否安装和开启SSH服务

rmp -qa|grep ssh和ps -ef | grep sshd

如果没有安装可以使用“yum install open-server”命令安装SSH服务,执行“systemctl start sshd”命令开启SSH服务

使用"vi /etc/ssh/sshd_config"编辑sshd_config,在尾部添加"PermitRootLogin yes"

执行“systenctl restart sshd”命令重启SSH服务使配置文件生效。

下载设置SecureCRT,在主界面依次选择File-Quack Conect进入连接对话框,输入如下信息连接hadoop2

afaf64140bf7467f9b83529866aae5df.png

选Accept Once

a13c87bf488f42988ba3608a502d3fef.png

输入你的用户名和密码

0cdb300bcf1147049135e1d4b1adf87d.png

连接成功的页面如图所示

8d319ea73aa74de9812845df6597d5ed.png

其他两台虚拟机按照上述步骤执行完成连接远程连接工具secureCRT

3.4配置虚拟机SSH免密登录

我们以Hadoop1为主节点

使用命令ssh-keygen -t rsa生成秘钥(连续按四次enter进行确认)

7406d4cbe5bd4b82896ea06ced24331c.png

执行cd /root/.ssh/命令查看ssh下的文件,这两个文件分别为虚拟机的私有密钥和共有秘钥

6d2fa6901fe74153a7bc9731c7a604bc.png

执行如下命令复制Hadoop1的共有秘钥到所有虚拟机,执行过程中需要注意输入“yes”后按“Enter”表示同意连接制定虚拟机,然后输入root用户的密码

ssh-copy-id hadoop1

ssh-copy-id hadoop2

ssh-copy-id hadoop3

493e4ace863a449f8365104a12f34472.png

在Hadoop1上执行ssh hadoop2访问虚拟机验证是否可以免密登录

8a4a4e7dc01f4a76ad92f848e962ae66.png

4.安装JDK

4.1创建目录

分别在虚拟机hadoop1,Hadoop,hadoop3下创建三个目录

创建存放数据的目录

mkdir -p /export/data/

创建安装程序的目录

mkdir -p /export/servers/

创建存放安装包的目录

mkdir -p /export/software/

4.2上传JDK安装包

执行cd /export/software进入目录,执行”rz“”命令上传JDK安装包(如果rz执行后提示无法找到该命令,则可以执行“yum install lrzsz -y”命令安装文件传输工具lrzsz)

40eb82c20aeb4b18bc76e5fdc6d1f9ac.png

查看JDK安装包是否上传成功

在hadoop1的/export/software目录下执行“ls”命令查看是否包含JDK安装包

ec0828f88192452798337573766d22fc.png

安装JDK

使用如下命令安装到/export/servers目录

tar -zxvf jdk-8u241-linux-x64.tar.gz -C /export/servers

4.3配置JDK系统环境变量

在hadoop1上执行vi /etc/profile编辑环境变量profile

export JAVA_HOME=/export/servers/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin

执行sourse /etc/profile初始环境变量,使JDK生效

4.4验证JDK是否安装成功

在hadoop1上执行java -version查看JDK版本号,验证是否安装JDK

2950df5146374852b432c2f3d3e35319.png

4.5分发JDK目录

scp -r /export/servers/jdk1.8.0_241 root@hadoop2:/export/servers/

scp -r /export/servers/jdk1.8.0_241 root@hadoop3:/export/servers/

4.6分发系统环境变量文件

scp /etc/profile root@hadoop2:/etc

scp /etc/profile root@hadoop3:/etc

分别执行sourse /etc/profile初始化系统环境变量

二.基于完全分布式模式部署Hadoop

1.安装hadoop

上传hadoop安装包到/export/software目录

5877fdb4f7a04500b26e79c7516dcfd3.png

上传后使用“ls”命令查看是否上传成功

7c5c39d3afb04e309d4e0ca09e3bff00.png

使用如下命令安装Hadoop到/export/servers目录

tar -zxvf /export/software/hadoop-3.3.0.tar.gz -C /export/servers

2.配置Hadoop系统环境变量

在Hadoop1上执行vi /etc/profile配置profile,在文件底部添加内容,如下所示

export HADOOP_HOME=/export/servers/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行“source /etc/profile”命令初始化系统环境变量使配置生效

3.验证Hadoop系统环境变量是否成功

b21d847b8aba407a9e65411af11250e6.png

执行hadoop version查看当前版本号为3.3.0,配置成功

4.修改Hadoop配置文件

在Hadoop1的 /export/servers/hadoop-3.3.0/etc/hadoop/目录执行vi hadoop-env.sh命令,在改文件下方添加命令如下所示内容

export JAVA_HOME=/export/servers/jdk1.8.0_201
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

在Hadoop1的 /export/servers/hadoop-3.3.0/etc/hadoop/目录执行vi core-site.xml命令,在<configuration>标签中添加如下内容

<property>
   <name>fs.defaultFS</name>
   <value>hdfs://hadoop1:9000</value>
</property>
<property>
   <name>hadoop.tmp.dir</name>
   <value>/export/data/hadoop-3.3.0</value>
</property>
<property>
   <name>hadoop.http.staticuser.user</name>
   <value>root</value>
</property>
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>
</property>
<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
</property>
<property>
   <name>fs.trash.interval</name>
   <value>1440</value>
</property>

在Hadoop1的 /export/servers/hadoop-3.3.0/etc/hadoop/目录执行执行vi hdfs-site.xml命令,在<configuration>标签下添加如下所示内容

<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>hadoop2:9868</value>
</property>

在Hadoop1的 /export/servers/hadoop-3.3.0/etc/hadoop/目录执行vi mapred-site.xml命令,在<configuration>添加如下所示内容

<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>
<property>
   <name>mapreduce.jobhistory.address</name>
   <value>hadoop1:10020</value>
</property>
<property>
   <name>mapreduce.jobhistory.Webapp.address</name>
   <value>hadoop1:19888</value>
</property>
<property>
   <name> yarn.app.mapreduce.am.env</name>
   <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
   <name>mapreduce.map.env</name>
   <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
   <name>mapreduce.reduce.env</name>
   <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

在Hadoop1 /export/servers/hadoop-3.3.0/etc/hadoop/目录执行vi yarn-site.xml命令,在<configuration>添加如下内容

<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>hadoop1</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name> yarn.nodemanager.pmem-check-enabled</name>
   <value>false</value>
</property>
<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
   <value>false</value>
</property>
<property>
   <name>yarn.log-aggregation-enable</name>
   <value>true</value>
</property>
<property>
   <name>yarn.log.server.url</name>
   <value>http://hadoop1:19888/jobhistory/logs</value>
</property>
<property>
   <name>yarn.log-aggregation.retain-seconds</name>
   <value>604800</value>
</property>

配置Hadoop从节点运行的服务器,在Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录执行vi works命令修改为

hadoop1
hadoop2
hadoop3

5.分发hadoop安装目录

 使用scp命令将hadoop1的安装目录分发至hadoop2,hadoop3

scp -r /export/servers/hadoop-3.3.0 root@hadoop2:/export/servers/
scp -r /export/servers/hadoop-3.3.0 root@hadoop3:/export/servers/

6.分发系统环境变量文件

scp /etc/profile root@hadoop2:/etc
scp /etc/profile root@hadoop3:/etc

分发完成后分别在hadoop2,hadoop3上执行“source /etc/profile”命令格式化系统环境变量

7.格式化hdfs文件系统

在hadoop上执行格式化 HDFS文件系统操作“hdfs namenode -format”(切记只有这一次需要格式化,不要多次格式化)

8.启动hadoop

在hadoop1上执行“start-all.sh”命令启动集群,分别在三台虚拟机使用"jps"命令查看hadoop的运行状态,如与下面一样则配置成功

074616885a524479ab2f067a1995211d.png

68d991cef63b4253895f0e581df332ad.png

cb8558e0c11d4a6eb0969e67a6f6189e.png

9.通过Web UI查看Hadoop运行状态

9.1关闭防火墙

#关闭防火墙
systemctl stop firewalld
#禁止防火墙开机启动
systemctl disable firewalld

9.2添加映射

在自己的电脑C:\Windows\System32\drivers\etc位置编辑hosts文件,添加如下

192.168.121.160 hadoop1
192.168.121.161 hadoop2
192.168.121.162 hadoop3

三.运用集群进行词频统计

1.创建文本

 5c193bf6322d45bdbcaaba4c907b3884.png

2.在hdfs上创建目录

首先开启集群,然后在hdfs创建目录

hdfs dfs -mkdir -p /wordcount/input

3.上传文件

 在hadoop1的/export/data目录执行“rz”上传文本word.txt,然后将该文本上传到hdfs的/wordcount/input目录

hdfs dfs -put /export/data/word.txt /wordcount/input

4.查看文件是否上传成功

 依图所示打开

35d9846420a94ae2a5f2d6cd409ac119.png

 第一个

5dae7b18d2a64cc4bf39ef80afff56ea.png 

发现上传成功

75dd78dfe3fa40bd807d905d0fce8f91.png

5.运行mapreduce程序

 在hadoop1的/export/servers/hadoop-3.3.0/share/hadoop/mapreduce目录执行“ll”命令,查看hadoop提供的MapReduce程序

9585604e169444ef97f4d99b276bd0ae.png

其中hadoop-mapreduce-examples-3.3.0.jar可以实现词频统计,在该程序所在目录执行命令,统计文本

hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /wordcount/input /wordcount/output

 代码运行部分截图

70e672a9c0154b50b507c118adcf449a.png

 6.查看MapReduce程序运行状态

在output中的part-r- 00000中查看运行结果

 15db326a97d4449abde6dfac8609b277.png

ca3a9491d1fc4033998c7e3e8be88686.png

 如图所示为运行结果

0f19de4f792d4128b753212115eb981f.png

 

  • 30
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Hadoop是一个开源的分布式计算框架,主要用于处理大规模数据集。它的核心是HDFS(Hadoop分布式文件系统)和MapReduce计算模型。 Spark是一个快速、通用的大数据处理引擎,可以在内存中进行数据处理,比Hadoop MapReduce更快。它支持多种数据源,包括HDFS、HBase、Cassandra等。 Storm是一个分布式实时计算系统,可以处理实时数据流。它的核心是Storm集群,可以在多个节点上运行,实现高可用性和可扩展性。 Flink是一个分布式流处理框架,可以处理实时数据流和批处理数据。它的核心是DataStream API,可以进行流式计算和窗口计算。 Samza是一个分布式流处理框架,可以处理实时数据流。它的核心是Kafka和YARN,可以实现高可用性和可扩展性。 ### 回答2: 大数据框架是指一组用于处理大规模数据的软件工具。随着大数据及其分析应用的不断增长,数十个大数据框架已经随着时间而推出,其中包括hadoop、spark、storm、flink、samza等。下面将对这几种大数据框架进行详细介绍。 1. Hadoop Hadoop是一个在大数据应用领域最流行的框架。它是以Java语言开发的,是一个分布式的计算平台。通过它,用户能够处理超过普通计算机可以承受的数据量。Hadoop集群由多个计算机组成,在不同的计算机上存储和计算数据。Hadoop的主要组件包括HDFS(分布式文件系统),MapReduce计算模型(可以实现大规模数据的并行处理)。 2. Spark Spark是一个基于内存的计算框架,可以实现大数据的快速处理。与Hadoop相比,Spark运行速度更快,因为它可以在内存中执行计算任务。Spark可以通过Java、Scala和Python编写,还支持Spark SQL(基于SQL的查询),Spark Streaming(处理实时数据流)、MLlib(机器学习库)等功能模块。 3. Storm Storm也是一个实时数据处理框架。它能够实现一种“实时数据流”的处理模式,这在需要对流式数据进行实时处理和计算的场景中非常有用。Storm是一个分布式的框架,包括多个节点,支持高可靠性、水平扩展、非常灵活的拓扑连接等功能。 4. Flink Flink是一个高度可扩展、分布式的计算框架。它支持流式处理和批处理。通过内存进行数据计算,速度更快,同时也支持实时流式数据处理。Flink将传统的批量处理和流式处理集成到了一个框架中,将批量计算看成一种特殊形式的流式计算。 5. Samza Samza是一个其他不同大数据框架的组件,它是一个分布式流处理器,可以处理大量的流数据。它可以作为批处理系统的组件来使用,提供可靠的消息传递、基于字符串的状态存储、多维度流处理和都市需求等功能。Samza主要用于大规模流式数据的分析和处理,通常和其他的大数据处理框架一起使用。 总体来说,以上这几种大数据框架适用于不同的场景和需求。在实际应用时,需要根据具体情况进行选择和使用,以达到最佳的效果和效率。 ### 回答3: 大数据框架是当今大数据技术领域中越来越重要的一部分。在众多大数据框架中,Hadoop、Spark、Storm、Flink和Samza是其中最常用的框架。 Hadoop是由Apache基金会开发的开源框架,主要用于存储和处理大数据。它的核心组件包括HDFS和MapReduce。HDFS是一个分布式文件系统,通常用于存储大数据,而MapReduce是一种分布式数据处理模型,用于对大数据进行批处理。 Spark是另一个Apache开源项目,也是用于大数据处理的框架。与Hadoop不同的是,Spark使用内存计算,这意味着它可以比Hadoop更快地处理大量数据。Spark支持多种编程语言,包括Java、Scala和Python,也支持SQL查询和图形计算。 Storm是另一个Apache开源项目,主要用于流式数据处理。与Hadoop和Spark不同的是,Storm能够实时处理流数据,而不需要等待离线批处理。Storm支持容错和高可用性,并支持多种编程语言,包括Java、Scala和Clojure。 Flink是由Apache开发的开源流处理框架。与Storm类似,Flink也可以进行实时数据处理,并支持批处理模式。Flink的主要特点是低延迟和高吞吐量,同时支持复杂事件处理和机器学习。 最后,Samza也是另一个Apache开源框架,主要用于流式数据处理。与Storm和Flink不同的是,Samza的焦点是可扩展性和容错性。Samza的主要优点之一是它与Kafka集成良好,Kafka是一个分布式消息队列。 总之,Hadoop、Spark、Storm、Flink和Samza都是在大数据领域中广泛应用的重要框架。每个框架都有自己的特点和优劣,应根据具体的大数据需求和场景进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值