Hadoop(一)Linux环境搭建

1.JDK安装

1.通过  yum -y list java*  搜索JDK版本

 2.通过  yum install java-1.8.0-openjdk.x86_64  安装指定版本JDK.安装完成后,可以通过下图方式查询安装目录

3.配置 JAVA_HOME 环境变量

  • 通过 vim /etc/profile 修改配置文件,增加如下配置

  • 保存后,通过 source /etc/profile  刷新
  •  使用 echo $JAVA_HOME 进行验证
[root@VM-75-149-centos bin]# vim /etc/profile
[root@VM-75-149-centos bin]# source /etc/profile
[root@VM-75-149-centos bin]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.tl3.x86_64/jre

2.Hadoop安装

1.下载Hadoop安装包  https://hadoop.apache.org/releases.html

2.解压Hadoop安装包

#创建文件目录
mkdir -p /data/developer/install/hadoop
#解压文件
tar -zxvf hadoop-2.10.1.tar.gz -C /data/developer/install/hadoop

3.目录说明

bin:最基本的管理脚本和使用脚本所在的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop
etc:存放一些hadoop的配置文件
include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
lib:存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中
libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbin:存放的是我们管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护
share:各个模块编译后的jar包所在的目录和文档

 4.配置环境变量,同JAVA_HOME

export HADOOP_HOME=/data/developer/install/hadoop/hadoop-2.10.1
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[root@VM-75-149-centos hadoop-2.10.1]# vi /etc/profile                 
[root@VM-75-149-centos hadoop-2.10.1]# source /etc/profile
[root@VM-75-149-centos hadoop-2.10.1]# hadoop version 
Hadoop 2.10.1
Subversion https://github.com/apache/hadoop -r 1827467c9a56f133025f28557bfc2c562d78e816
Compiled by centos on 2020-09-14T13:17Z
Compiled with protoc 2.5.0
From source with checksum 3114edef868f1f3824e7d0f68be03650
This command was run using /data/developer/install/hadoop/hadoop-2.10.1/share/hadoop/common/hadoop-common-2.10.1.jar

3.Hadoop集群配置

集群分类 中文名称 特点 缺点
Single Node Cluster 伪分布式模式(单机模式) 将hadoop安装在一台机器上,通过进程来模拟各主机节点的协作和运行 可靠性、稳定性都是非常差的,并且具备糟糕的性能效率,一般只是用来开发调试
Full Distributed Cluster 完全分布式集群模式

1.将hadoop部署在至少两台机子上,数据块副本的数量通常也设置为2以上
2.该模式的集群,无论规模多大,只拥有1台Namenode节点,且也是唯一Active的工作节点。Namenode(简称NN)相当于hadoop文件系统的管家,对集群的所有文件访问和操作都经由NN统一协调管理。
3.通常ResourceManager(RM)也仅部署1台,ResourceManager是yarn的管家,主要管理任务的执行,例如MapReduce任务。

 

1.当集群规模越来越庞大时,仅有一台NN,必定是不堪重负,那么它很容易就会挂掉,一旦挂掉,不仅集群立即瘫痪,还很容易造成数据丢失。
2.与NN类似,当集群提交的作业过于繁重时,其同样面临超负载的问题。

HA Cluster 高可用集群模式 

1.高可用集群模式。一般来说,分为NN的高可用和RM的高可用。在完全分布式的基础上,增加备用NN和RM节点。
2.NN高可用,也就是集群里面会部署两台NN(最多也只能两台),以形成主备NN节点,达到高可用的目的。
3.RM高可用与NN高可用类似,也是在集群里部署备用RM节点。
4.依然只有一台NN/RM处于Active工作状态,另一台则处于Standby的等待状态。当Active的NN/RM出现问题无法工作时,Standby的那台则立即无缝切入,继续保障集群正常运转,解决了高可用问题。

虽然解决了高可用问题,但没有解决横向扩展问题,仅有一台Active的NN/RM,无法横向扩展,其很可能会超负载运行。
HA + Federation Cluster 高可用联邦集群模式。  高可用联邦模式将整个HA集群再划分为两个以上的集群,不同的集群之间通过Federation进行连接,不同集群间可以共享数据节点,也可以不共享,可以互相访问和操作数据,也可以不。Federation模式,相当于在多个集群之上又构建了一个集群层次,从数据访问的角度看,也可以简单的将其理解为一台路由器,而每一个HA集群则是单独的网络,不同网络间通过Federation路由器进行沟通。既支持了HA模式的高可用,又解决了HA模式的横向扩展.  

4.伪分布式模式配置

1.修改 core-site.xml (cd $HADOOP_HOME/etc/hadoop).增加如下内容

<configuration>
 
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
 
    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/developer/install/hadoop/data</value>
    </property>
 
   <!-- 配置HDFS网页登录使用的静态用户为ryj -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>ryj</value>
    </property>
</configuration>

2.修改 hdfs-site.xm.指定副本数量

<configuration>
  <property>
     <name>dfs.replication</name>
     <value>1</value>
  </property>
</configuration>

3.修改 mapred-site.xml文件(配置文件夹下,是没有mapred-site.xml文件的,所以需要将mapred-site.xml.template重命名为mapred-site.xml).指定MapReduce运行时框架,指定在Yarn上,默认是local

[root@VM-75-149-centos hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@VM-75-149-centos hadoop]# vim mapred-site.xml
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

4.配置 yarn-site.xml 文件

<configuration>
    <!-- Site specific YARN configuration properties -->
    <!-- 指定 MR 走 shuffle --> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
 
    <!-- 指定 ResourceManager 的地址--> 
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>localhost</value> 
    </property> 
 
    <!-- 环境变量的继承 --> 
    <property> 
        <name>yarn.nodemanager.env-whitelist</name> 
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> 
    </property>
   
    <!-- yarn的web访问配置 --> 
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>0.0.0.0:8088</value>
    </property>
</configuration>

5.修改 hadoop-env.sh,指定端口. ssh默认端口22,当服务器端口修改后,需要手动指定端口;修改JAVA_HOME

export HADOOP_SSH_OPTS="-p 36000"
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.tl3.x86_64/jre

6.格式化

hadoop namenode -format

5.启动、停止Hadoop

[root@VM-75-149-centos ~]# cd /data/developer/install/hadoop/hadoop-2.10.1/sbin/
[root@VM-75-149-centos sbin]# ls
distribute-exclude.sh  hadoop-daemons.sh  httpfs.sh                refresh-namenodes.sh  start-all.sh       start-dfs.sh         start-yarn.sh  stop-balancer.sh  stop-secure-dns.sh  yarn-daemon.sh
FederationStateStore   hdfs-config.cmd    kms.sh                   slaves.sh             start-balancer.sh  start-secure-dns.sh  stop-all.cmd   stop-dfs.cmd      stop-yarn.cmd       yarn-daemons.sh
hadoop-daemon.sh       hdfs-config.sh     mr-jobhistory-daemon.sh  start-all.cmd         start-dfs.cmd      start-yarn.cmd       stop-all.sh    stop-dfs.sh       stop-yarn.sh
[root@VM-75-149-centos sbin]# start-dfs.sh
Starting namenodes on [localhost]
root@localhost's password: 
localhost: starting namenode, logging to /data/developer/install/hadoop/hadoop-2.10.1/logs/hadoop-root-namenode-VM-75-149-centos.out
root@localhost's password: 
localhost: starting datanode, logging to /data/developer/install/hadoop/hadoop-2.10.1/logs/hadoop-root-datanode-VM-75-149-centos.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '[0.0.0.0]:36000 ([0.0.0.0]:36000)' can't be established.
ECDSA key fingerprint is SHA256:2HWfXQ34ps5JYJ/7LdtwDAnIhBpl0Rokm4D/ctK4pJ4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
0.0.0.0: Warning: Permanently added '[0.0.0.0]:36000' (ECDSA) to the list of known hosts.
root@0.0.0.0's password: 
0.0.0.0: starting secondarynamenode, logging to /data/developer/install/hadoop/hadoop-2.10.1/logs/hadoop-root-secondarynamenode-VM-75-149-centos.out
[root@VM-75-149-centos sbin]# start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /data/developer/install/hadoop/hadoop-2.10.1/logs/yarn-root-resourcemanager-VM-75-149-centos.out
root@localhost's password: 
localhost: starting nodemanager, logging to /data/developer/install/hadoop/hadoop-2.10.1/logs/yarn-root-nodemanager-VM-75-149-centos.out

通过 jsp命令查看进程启动情况:

[root@VM-75-149-centos sbin]# jps
50628 NameNode
50885 DataNode
51482 ResourceManager
51867 NodeManager
51165 SecondaryNameNode
52062 Jps

通过 http://ip:50070 可访问dfs的web门户

通过 http://ip:8088 可访问yarn的Web门户

 

posted @ 2026-03-20 12:25  鄙人取个名字好难  阅读(3)  评论(0)    收藏  举报