Hadoop 简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

Hadoop 优点

Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。

Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。

Hadoop 还是可伸缩的,能够处理PB级数据。

此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

  • 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖 。
  • 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  • 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快 。
  • 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配 。
  • 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。

系统准备:

操作系统:CentOS Linux release 7.8.2003

软件版本:

hadoop:hadoop-2.7.2.tar.gz

JDK:jdk-8u181-linux-x64.tar.gz

集群规划:

节点名称

操作系统

IP地址

master

CentOS Linux release 7.8.2003

172.168.1.157

node1

CentOS Linux release 7.8.2003

172.168.1.158

node2

CentOS Linux release 7.8.2003

172.168.1.159

一、JAVA环境部署

1、安装包准备

版本:jdk-8u181

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

2、安装步骤

1)解压JDK软件包

[root@localhost ~]# tar zxf jdk-8u181-linux-x64.tar.gz -C /usr/local

2)配置系统环境变量

[root@localhost ~]# vim /etc/profile

# 加入以下内容


  1. export JAVA_HOME=/usr/local/jdk1.8.0_181
  2. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  3. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

执行source /etc/profile使其生效

3)使用java、javac等命令验证是否安装成功

[root@master ~]# java -version

java version "1.8.0_181"

Java(TM) SE Runtime Environment (build 1.8.0_181-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

二、Hadoop安装

1)配置主机名(所有节点)

[root@localhost ~]# hostnamectl set-hostname master

[root@localhost ~]# hostnamectl set-hostname node1

[root@localhost ~]# hostnamectl set-hostname node2

2)配置hosts文件

[root@master ~]# vim /etc/hosts

# 添加以下内容


  1. 172.168.1.157 master
  2. 172.168.1.158 node1
  3. 172.168.1.159 node2

3)配置免密钥

[root@master ~]# ssh-keygen

# 输入三次确定

Linux搭建Hadoop-2.7.2分布式集群_vim

[root@master ~]# ssh-copy-id root@master

[root@master ~]# ssh-copy-id root@node1

[root@master ~]# ssh-copy-id root@node2

Linux搭建Hadoop-2.7.2分布式集群_Hadoop_02

4)拷贝hosts文件到各节点

[root@master ~]# scp /etc/hosts root@node1:/etc/

[root@master ~]# scp /etc/hosts root@node2:/etc/

5)下载Hadoop

[root@master ~]# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

6)解压

[root@master ~]# tar xf hadoop-2.7.2.tar.gz -C /usr/local

7)配置环境变量

[root@master ~]# vim /etc/profile

# 加入以下内容


  1. export Hadoop_Home=/usr/local/hadoop-2.7.2
  2. export PATH=$PATH:$Hadoop_Home/bin

[root@master ~]# source /etc/profile

8)拷贝/etc/profile文件到各节点

[root@master ~]# scp /etc/profile root@node1:/etc/

[root@master ~]# scp /etc/profile root@node2:/etc/

三、Hadoop配置

1)配置hadoop-env.sh

[root@master ~]# cd /usr/local/hadoop-2.7.2/etc/hadoop/

[root@master hadoop]# vim hadoop-env.sh

# 加入以下内容


  1. export JAVA_HOME=/usr/local/jdk1.8.0_181
  2. export HADOOP_PREFIX=/usr/local/hadoop-2.7.2

2)配置yarn-env.sh

[root@master hadoop]# sed -i '/HADOOP_YARN_USER/iexport JAVA_HOME=/usr/local/jdk1.8.0_181/' yarn-env.sh

3)配置core-site.xml

[root@master hadoop]# mkdir /usr/local/hadoop-2.7.2/tmp

[root@master hadoop]# vim core-site.xml

# 加入以下内容


  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://master:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/mnt/hadoop/tmp</value>
  9. </property>
  10. </configuration>

4)配置hdfs-site.xml

[root@master hadoop]# vim hdfs-site.xml

# 加入以下内容


  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>3</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/mnt/hadoop/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/mnt/hadoop/dfs/data</value>
  13. </property>
  14. </configuration>

5)配置mapred-site.xml

[root@master hadoop]# vim mapred-site.xml

# 加入以下内容


  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>master:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>master:19888</value>
  13. </property>
  14. </configuration>

6)配置yarn-site.xml

[root@master hadoop]# vim yarn-site.xml

# 加入以下内容


  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <property>
  4. <name>yarn.nodemanager.aux-services</name>
  5. <value>mapreduce_shuffle</value>
  6. </property>
  7. <property>
  8. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  9. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  10. </property>
  11. <property>
  12. <name>yarn.resourcemanager.address</name>
  13. <value>master:8032</value>
  14. </property>
  15. <property>
  16. <name>yarn.resourcemanager.scheduler.address</name>
  17. <value>master:8030</value>
  18. </property>
  19. <property>
  20. <name>yarn.resourcemanager.resource-tracker.address</name>
  21. <value>master:8031</value>
  22. </property>
  23. <property>
  24. <name>yarn.resourcemanager.admin.address</name>
  25. <value>master:8033</value>
  26. </property>
  27. <property>
  28. <name>yarn.resourcemanager.webapp.address</name>
  29. <value>master:8088</value>
  30. </property>
  31. </configuration>

7)配置slaves

[root@master hadoop]# vim slaves

# 加入以下内容


  1. master
  2. node1
  3. node2

8)拷贝Hadoop安装目录到两个Slave节点

[root@master hadoop]# scp -r /usr/local/hadoop-2.7.2/ root@node2:/usr/local

[root@master hadoop]# scp -r /usr/local/hadoop-2.7.2/ root@node1:/usr/local

9)在slave节点执行source /etc/profile

[root@node1 ~]# source /etc/profile

[root@node2 ~]# source /etc/profile

四、Hadoop使用

1)格式化NameNode

# Master节点上,执行如下命令

[root@master hadoop]# hdfs namenode -format

2)启动HDFS(NameNode、DataNode)

# Master节点上,执行如下命令

[root@master hadoop]# cd ../../sbin

[root@master sbin]# ./start-dfs.sh

Starting namenodes on [master]

master: starting namenode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-root-namenode-master.out

node1: starting datanode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-root-datanode-node1.out

master: starting datanode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-root-datanode-master.out

node2: starting datanode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-root-datanode-node2.out

Starting secondary namenodes [0.0.0.0]

0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-root-secondarynamenode-master.out

3)使用jps命令查看进程(所有节点)

[root@master sbin]# jps

3267 NameNode

3403 DataNode

3581 SecondaryNameNode

3726 Jps

[root@node1 ~]# jps

1799 DataNode

1882 Jps

[root@node2 ~]# jps

2837 DataNode

2921 Jps

4)启动 Yarn(ResourceManager 、NodeManager)

[root@master sbin]# ./start-yarn.sh

starting yarn daemons

starting resourcemanager, logging to /usr/local/hadoop-2.7.2/logs/yarn-root-resourcemanager-master.out

node1: starting nodemanager, logging to /usr/local/hadoop-2.7.2/logs/yarn-root-nodemanager-node1.out

master: starting nodemanager, logging to /usr/local/hadoop-2.7.2/logs/yarn-root-nodemanager-master.out

node2: starting nodemanager, logging to /usr/local/hadoop-2.7.2/logs/yarn-root-nodemanager-node2.out

5)使用jps命令查看进程(所有节点)

[root@master sbin]# jps

3267 NameNode

4211 Jps

3892 NodeManager

3786 ResourceManager

3403 DataNode

3581 SecondaryNameNode

[root@node1 ~]# jps

2050 Jps

1799 DataNode

1927 NodeManager

[root@node2 ~]# jps

2837 DataNode

3173 Jps

3050 NodeManager

6)查看HDFS信息

# 浏览器输入http://172.168.1.157:50070

Linux搭建Hadoop-2.7.2分布式集群_Hadoop_03

7)查看Yarn信息

# 浏览器输入http://172.168.1.157:8088

Linux搭建Hadoop-2.7.2分布式集群_hadoop_04

8)停止Yarn及HDFS

[root@master sbin]# ./stop-yarn.sh

[root@master sbin]# ./stop-dfs.sh

至此,Hadoop分布式集群搭建完毕。

  • 输入编号:7546,直达文章
  • 输入m|M,直达目录列表