前言:
让我们回到世界转变为数字时代之前的日子。那时,生成的数据量非常小,速度相对缓慢,几乎所有数据都是文件,行和列的形式,存储或处理这种数据并不麻烦,因为单个存储单元和处理器结合就可以完成这项工作,随着时间的流逝,互联网席卷了全球,每微秒都会产生大量以多种形式和格式的数据,半结构化和非结构化数据现在以,电子邮件,图像,音频和视频等形式出现,这些数据统称为大数据。尽管如此,但想要处理这些大数据几乎是不可能的,而且存储单元处理器组合显然还不够。那么解决方案是什么呢?
多个存储单元和处理器无疑是当下的需要,这个概念被并入Hadoop框架中,该框架可以有效存储和处理大量数据,通过使用硬件集群。Hadoop由三个专门为处理大数据而设计的组件组成。
为了充分利用数据,第一步是存储数据,Hadoop的第一个组件是它的存储单元--Hadoop分布式文件系统(HDFS),在一台电脑上存储大量数据是不可行的,因此,数据分布在许多计算机中并以块的形式存储。(如果你有600MB的数据要存储,HDFS将数据分成多个数据块,然后存储在集群中的几个数据节点上,128MB是每个块的默认大小,因此,600MB将被分为4个128MB块和一个88MB块,ABCDE。)但是如果一个数据节点崩溃了怎么办,我们会丢失了那块特定的数据吗?不会,这就是HDFS的魅力所在,HDFS对数据进行拷贝并将其存储在多个系统中。(例如:当块A被创建时,将其复制并存储在不同的数据节点上,这被称为复制方法,这样做,即使一个数据节点崩溃,由于HDFS容错也不会损失任何数据
成功存储数据后,需要对数据进行处理。这是Hadoop的第二个组件--MapReduce发挥作用的地方,在传统的数据处理方法中,整个数据都是在一台具有单个处理器的机器上处理的,既费时又低效,特别是在处理大量各种数据时更是如此。为了克服这个问题,MapReduce将数据分成多个部分,并在不同的数据节点上分别处理每个部分,然后将各个结果汇总并最终输出,这改善了负载平衡并节省了大量时间。现在已经准备好了MapReduce,是时候在Hadoop集群上运行了,这是在内存,网络带宽和CPU等资源的帮助下完成的,多个作业在Hadoop上同时运行,他们都需要硬件资源来成功完成任务,为了有效的管理这些资源,我们使用了Hadoop的第三个组件--YARN。YARN由资源管理器(分配资源),节点管理器(处理节点并监控节点中的资源使用情况),应用管理器和容器(包含物理资源的集合)组成。
除了这些,作为大数据时代最有力的工具之一,还有很多工具和框架需要我们去了解。
从今天起,不只学java了,大数据也要搞起来。
-----------------------------分割线-------------------------------
1.hadoop简介
hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。
#什么是分布式基础架构?
Hadoop是基于java语言开发的,具有很好的跨平台性,并且可以部署在廉价的计算机集群中。
#电影《社交软件》里是不是就用的Hadoop
Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce。
#两个名词分别代表着什么?
Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。
2.Hadoop版本演变
目前Hadoop的最新版本,可以登录Hadoop官网来查看,当前最新的为3.4.1。
3.Hadoop特性
Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠,高效,可伸缩的方式进行处理的。
4.Hadoop生态圈
未来我们会一个个探索
5.Hadoop的安装和配置
~1.因为采取的是分布式,所以我们要先在自己的电脑上安装虚拟机
Ubuntu20.04 Server版本安装
①下载链接:
https://releases.ubuntu.com/focal/ubuntu-20.04.6-live-server-amd64.iso
②创建虚拟机
选择ubuntu-20.04.6-live-server-amd64.iso,按照提示创建虚拟机,创建过程中需要输入:电脑名称,用户名称,用户密码等内容,需要记住相关信息。
③设置Ubuntu虚拟机网络
先设置Windows下的共享网络,然后设置VMware的虚拟机网络编辑器,最后通过ping www.baidu.com测试网络是否通。
第1步:打开window中网络共享(将当前可上网的网卡共享给vmnet8,操作如下图);
第2步:设置虚拟机网络适配器为NAT模式
第3步:打开vmware中菜单编辑->虚拟网络编辑器,使其中网关地址与window中vmnet8中一致;(子网IP:192.168.137.0,NAT设置中的网关为:192.168.137.2)
第4步:测试外网是可用
执行命令:ping www.baidu.com,返回如下结果表示网络已通,若超时则表示网络未通,需要重新检查1-3步骤。
第5步:ifconfig查看已分配的IP(没有安装ifconfig,则需要根据提示先安装,若没有网络需要将网络设置通后再安装);
~2.安装xshell命令行工具(xshell是对虚拟机的映射,方便操作以及后面传输数据和文件)
①xshell7 下载地址:https://cdn.netsarang.net/de06d109/Xshell-7.0.0137p.exe
操作:①新建连接,如右图;②输入登录用户名;③输入密码
②注意:若连接失败
检查ssh服务是否正常:service ssh status 若没有看到相关信息,则在虚拟机安装openssh-server程序执行:sudo apt-get install openssh-server,然后重新检查ssh服务。
③传输文件的服务
可以sz rz命令,实现xshell与window传输和下载文件
安装服务:sudo apt-get install lrzsz
~3.java环境安装(因为前面说了Hadoop是基于java开发的,这里看过我前面java文章的可以掠过下载,直接用以前的)
由于Hadoop本身是使用Java编写的,因此,Hadoop的开发和运行都需要Java的支持,对于Hadoop 3.3.6而言,其要求使用JDK 1.8或者更新的版本。
①下载Java
https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
②通过xshell上传到Linux的~/workspace/software目录
③解压缩
第一步:解压缩到目录/usr/local
sudo tar -xvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/
第二步:切换目录:cd /usr/local/
第三步:重命名:sudo mv jdk-21.0.4 jdk21
第四步:设置环境变量:
编辑系统变量文件 sudo vim /etc/profile,在文档末尾添加下面语句(java8之后,不再用设置jre),保存退出
- export JAVA_HOME=/usr/local/jdk21
- export PATH=$PATH:$JAVA_HOME/bin
第五步:执行修改系统变量生效命令:source /etc/profile
④验证是否安装成功
执行名:java -version查看版本
~4.无密码登陆配置
master |
master |
slave1 |
slave2 |
①安装SSH服务
- 执行命令:sudo apt-get install openssh-server
- 启动命令: service ssh start
- 查看ssh服务:ps -ef | grep sshd
- 查看ssh运行状态:service ssh status
②设置无密码登录
- 执行密钥生成命令:ssh-keygen(只需要在master主机操作一次,下一步无需输入)
- 拷贝密钥到服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected](包括自己所在的节点)
- 无密码登录:ssh [email protected].xx(注意这里@前后,是要登录结点的用户名和IP地址)
- 退出远程登录:ctrl+d
~5.Hadoop安装配置
①检查虚拟机的基本信息(3个结点)
表:3台虚拟机基本信息
结点 | 用户名(记住) | 计算机名 | 映射表(IP根据各台虚拟机实际情况设置) |
master | bm | master | IP 计算机名,如192.168.137.xx master |
slave1 | bm | slave1 | IP 计算机名,如192.168.137.xx slave1 |
slave2 | bm | slave2 | IP 计算机名,如192.168.137.xx slave2 |
注1:修改计算机名:执行编辑命令,sudo vim /etc/hostname,自行修改命令
注2:修改映射表:执行编辑命令,sudo vim /etc/hosts,自行修改映射表
②Hadoop分布式结构规划
③下载Hadoop3.3.6版本
在Windows里面下载hadoop-3.3.6.tar.gz,下载链接:https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz,下载完成后,通过xshell上传到3台虚拟机用户目录下的software文件夹(若没有则自行创建)。
④解压缩到/usr/local目录(3个结点)
执行命令:sudo tar -xvf hadoop-3.3.6.tar.gz -C /usr/local/
⑤配置环境变量(3个结点)
配置环境变量,执行命令编辑sudo vim /etc/profile,在文件末尾添加以下项,保存退出:
export HADOOP_HOME=/usr/local/hadoop-3.3.6
export PATH=${HADOOP_HOME}/sbin:${HADOOP_HOME}/bin:$PATH
⑥Hadoop分布式环境配置
Hadoop环境配置,通常会涉及以下5个文件修改,其基本作用如下表所示。
⑦修改hadoop-env.sh文件(3个结点)
修改hadoop-env.sh文件,执行命令编辑sudo vim /usr/local/hadoop3.3.6/etc/hadoop/hadoop-env.sh,在文件末尾添加以下2项,保存退出:
export JAVA_HOME=/usr/local/jdk21
export HADOOP_LOG_DIR=/home/bm/myworkspace/hadoop/logs
export HADOOP_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
注意此处bm是虚拟机的用户名,myworkspace/hadoop/logs自行创建的目录。(mkdir)
⑧修改core-site.xml文件(3个结点)
<configuration>
<property>
<!-- 指定NameNode的地址 -->
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<!-- 指定hadoop数据的存储目录 -->
<name>hadoop.tmp.dir</name> <value>/home/bm/myworkspace/hadoop/tmp</value>
</property>
</configuration>
注:master为主节点的计算机名,hadoop.tmp.dir指定Hadoop数据存储主目录。
⑨修改hdfs-site.xml文件(3个结点)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:9868</value>
</property>
</configuration>
⑩修改yarn-site.xml文件(3个结点)
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
</configuration>
11修改mapred-site.xml文件(3个结点)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master: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>
</configuration>
yarn.app.mapreduce.am.env/mapreduce.map.env/mapreduce.reduce.env用于指定分布式计算MapReduce任务的运行环境。
~6.修改workers
配置Hadoop从结点运行的服务器
~7.修改计算机名称和固定IP
修改计算机名称
编辑文件:sudo vim /etc/hostname
重新启动该虚拟机,让计算机名生效
修改固定IP(可选,若网路冲突,或者网络不可用问题时设置)
查看网络配置信息:ifconfig
修改配置文件:sudo vim /etc/netplan/00-installer-config.yaml(文件名可能不同)
sudo netplan apply
~8.虚拟机克隆
克隆方式(建议方式):如下图按照引导操作,
完整克隆
注意:选择独立新创建的文件夹
~9.最后一步,启动
初始化文件系统(主节点)
hdfs namenode -format(只需在主节点执行一次)
启动/关闭hadoop文件系统(主节点)
start-all.sh/stop-all.sh(只在主节点执行,务必正常关闭)
启动进程查看
jps
搞定~~
配置有困难,可以私信我,或者评论区里留言,不遗余力帮忙!
-------------------------分割线-------------------------
今天记录了Hadoop的了解学习,安装配置,基本使用的话未来Linux的学习里会记录。
(如果可以的话,请点赞收藏关注我的频道,当然能在评论区留下你的宝贵意见是最好的!)
我是拌面酱 期待再次与你相遇#¥%……&*()
标签:拌面,--,虚拟机,sudo,Hadoop,hadoop,master,数据 From: https://blog.csdn.net/BanMianJiang/article/details/143858841