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以上 |
1.当集群规模越来越庞大时,仅有一台NN,必定是不堪重负,那么它很容易就会挂掉,一旦挂掉,不仅集群立即瘫痪,还很容易造成数据丢失。 |
| HA Cluster | 高可用集群模式 |
1.高可用集群模式。一般来说,分为NN的高可用和RM的高可用。在完全分布式的基础上,增加备用NN和RM节点。 |
虽然解决了高可用问题,但没有解决横向扩展问题,仅有一台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门户


浙公网安备 33010602011771号