网站首页 > 博客文章 正文
Hadoop简介
Apache Hadoop是大数据开发所使用的一个核心框架,是一个允许使用简单编程模型跨计算机集群分布式处理大型数据集的系统。使用Hadoop可以方便的管理分布式集群,将海量数据分布式的存储在集群中,并使用分布式并行程序来处理这些数据。它被设计成从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。Hadoop本身的设计目的不是依靠硬件来提供高可用性,而是在应用层检测和处理故障。Hadoop的生态系统主要组成架构,如图
Hadoop1.x与2.x的架构对比:
以YARN为中心的共享集群资源架构:
YARN其实是一个通用的资源管理系统,所谓资源管理,就是按照一定的策略将资源(内存、CPU)分配给各个应用程序使用,并且会采取一定的隔离机制防止应用程序之间彼此抢占资源而相互干扰。
YARN基本架构及组件
YARN集群总体上是经典的主/从(Master/Slave)架构,主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。
YARN集群中应用程序的执行流程如图
搭建Hadoop2.x分布式集群
本例的搭建思路是,在节点centos01中安装Hadoop并修改配置文件,然后将配置好的Hadoop安装文件远程拷贝到集群中的其它节点。集群各节点的角色分配如表
第一步:将hadoop-2.9.2.tar.gz拷贝到指定目录,解压并
[root@hadoop-master myproject]# pwd
/usr/myproject
tar -zxf hadoop-2.9.2.tar.gz -C
第二步:配置系统环境变量
为了可以方便的在任意目录下执行Hadoop命令,而不需要进入到Hadoop安装目录,需要配置Hadoop系统环境变量。此处只需要配置centos01节点即可。
执行以下命令,修改文件/etc/profile:
$ sudo vi /etc/profile
在文件末尾加入以下内容:
export HADOOP_HOME=/opt/modules/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行以下命令,刷新profile文件,使修改生效。
$ source /etc/profile
执行hadoop命令,若能成功输出以下返回Hadoop版本信息,说明系统变量配置成功。
第三步:配置Hadoop环境变量
Hadoop所有的配置文件都存在于安装目录下的etc/hadoop中,进入该目录,修改以下配置文件:
hadoop-env.sh
mapred-env.sh
yarn-env.sh
三个文件分别加入JAVA_HOME环境变量,如下:
export JAVA_HOME=/opt/modules/jdk1.8.0_144
第四步:配置HDFS
(1)修改配置文件core-site.xml,加入以下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/myproject/hadoop-2.9.2/tmp</value>
</property>
</configuration>
(2)修改配置文件hdfs-site.xml,加入以下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property><!--不检查用户权限-->
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/myproject/hadoop-2.9.2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/myproject/hadoop-2.9.2/tmp/dfs/data</value>
</property>
</configuration>
(3)修改slaves文件,配置DataNode节点。slaves文件原本无任何内容,需要将所有DataNode节点的主机名都添加进去,每个主机名占一整行(注意不要有空格)。本例中,DataNode为三个节点,配置信息如下:
hadoop-master
hadoop-slave1
hadoop-slave2
5、配置YARN
(1)重命名mapred-site.xml.template文件为mapred-site.xml,修改mapred-site.xml文件,添加以下内容,指定任务执行框架为YARN。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(2)修改yarn-site.xml文件,添加以下内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6.拷贝Hadoop安装文件到其它主机
在hadoop-master节点上,将配置好的整个Hadoop安装目录拷贝到其它节点(hadoop-slave1和hadoop-slave2),命令如下:
$ scp -r hadoop-2.9.2/ hadoop@hadoop-slave1:/opt/modules/
$ scp -r hadoop-2.9.2/ hadoop@hadoop-slave2:/opt/modules/
7.格式化NameNode
启动Hadoop之前,需要先格式化NameNode。格式化NameNode可以初始化HDFS文件系统的一些目录和文件,在hadoop-master节点上执行以下命令,进行格式化操作:
$ hadoop namenode -format
若能输出以下信息,说明格式化成功:
Storage directory /usr/myproject/hadoop-2.9.2/tmp/dfs/name has been successfully formatted.
格式化成功后,会在当前节点的Hadoop安装目录中生成tmp/dfs/name/current目录,该目录中则生成了用于存储HDFS文件系统元数据信息的文件fsimage。
8.启动Hadoop
在centos01节点上执行以下命令,启动Hadoop集群:
$ start-all.sh
也可以执行start-dfs.sh和start-yarn.sh分别启动HDFS集群和YARN集群。
9.查看各节点启动进程
集群启动成功后,分别在各个节点上执行jps命令,查看启动的Java进程。可以看到,各节点的Java进程如下:
hadoop-master节点:
hadoop-slave1节点
hadoop-slave2节点
在浏览器中访问:50070和18088端口,说明:有的是8088端口,具体端口是哪个,在yarn-site.xml文件中查看如下配置:
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop-master:18088</value>
</property>
http://hadoop-master:18088/cluster
http://hadoop-master:50070
备注:
如果通过主机名无法访问,需要配置hosts文件
C:\Windows\System32\drivers\etc
添加如下配置:
192.168.0.129 hadoop-master
192.168.0.130 hadoop-slave1
192.168.0.131 hadoop-slave2
猜你喜欢
- 2024-10-14 国庆期间别偷懒,大数据平台只差YARN了
- 2024-10-14 为什么我们从Yarn切换到pnpm(yarn设置淘宝镜像)
- 2024-10-14 flink的yarn模式部署(flink的三种部署方案)
- 2024-10-14 yarn的安装和使用(yarn安装教程)
- 2024-10-14 yarn 的安装和使用(yarn安装教程)
- 2024-10-14 操作学习-Spark on Yarn(spark on yarn执行流程)
- 2024-10-14 全面解析:Hadoop基础——YARN(hadoop yarn工作原理)
- 2024-10-14 Node简史及好书推荐(nodejs相关书籍)
- 2024-10-14 大数据之-Hadoop3.x_Yarn_常用命令---大数据之hadoop3.x_0147
- 2024-10-14 大数据系列文章之Yarn组件及其执行流程
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)