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

分布式存储系统HDFS (Hadoop Distributed File System )

  • 分布式存储系统
  • 提供了 高可靠性、高扩展性和高吞吐率的数据存储服务

分布式计算框架MapReduce

  • 分布式计算框架
  • 具有 易于编程、高容错性和高扩展性等优点。

HDFS优点

高容错性

  • 数据自动保存多个副本
  • 副本丢失后,自动恢复

适合批处理

  • 移动计算而非数据
  • 数据位置暴露给计算框架

适合大数据处理

  • GB 、TB 、甚至PB 级数据
  • 百万规模以上的文件数量
  • 10K+ 节点

可构建在廉价机器上

  • 通过多副本提高可靠性
  • 提供了容错和恢复 机制

HDFS缺点

低延迟数据访问

  • 比如毫秒级
  • 低延迟与高吞吐率

小文件存取

  • 占用NameNode 大量内存
  • 寻道时间超过读取时间

并发写入、文件随机修改

  • 一个文件只能有一个写者
  • 仅支持append

准备工作

环境

JDK:1.8
Hadoop Release:2.7.4
centos:7.3  node1(master)  主机: 192.168.252.121
node2(slave1)  从机: 192.168.252.122
node3(slave2)  从机: 192.168.252.123

安装 JDK

CentOs7.3 安装 JDK1.8

创建用户

建议创建一个单独的用户Hadoop以从Unix文件系统隔离Hadoop文件系统

$ useradd hadoop
$ passwd hadoop
New password:
Retype new password:

授权 root 权限,在root下面加一条hadoophadoop ALL=(ALL) ALL

$ chmod 777 /etc/sudoers
$ vi /etc/sudoers
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL
$ pkexec chmod 0440 /etc/sudoers

免秘钥登录

SSH 免秘钥

CentOs7.3 Hadoop 用户 ssh 免密登录

安装

下载解压

在 ndoe1 上操作

su hadoop
cd /home/hadoop/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz
tar -zxvf hadoop-2.7.4.tar.gz

环境变量

如果是对所有的用户都生效就修改vi /etc/profile 文件
如果只针对当前用户生效就修改 vi ~/.bahsrc 文件

sudo vi /etc/profile
#hadoop
export PATH=${HADOOP_HOME}/bin:$PATH
export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/

使环境变量生效,运行 source /etc/profile使/etc/profile文件生效

配置Hadoop

进入hadoop 配置文件目录

cd /home/hadoop/hadoop-2.7.4/etc/hadoop/

编辑 hadoop-env.sh 文件,找到 JAVA_HOME 改为 JDK 的安装目录

sudo vi hadoop-env.sh
export JAVA_HOME=/lib/jvm

修改 core-site.xml

打开 core-site.xml文件并对其进行编辑,如下图所示。

vi core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/hadoop/hadoop-2.7.4/tmp</value></property>
</configuration>

修改 hdfs-site.xml

打开hdfs-site.xml文件并对其进行编辑,如下图所示。

vi hdfs-site.xml
<configuration><property><name>dfs.namenode.secondary.http-address</name><value>node1:50090</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/hadoop/hadoop-2.7.4/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/hadoop-2.7.4/tmp/dfs/data</value></property>
</configuration>

修改 mapred-site.xml

目录下么没有这个文件,这有一个模板,我们需要先拷贝一份

cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value></property>
</configuration>

修改 yarn-site.xml

vi yarn-site.xml
<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

配置集群

复制节点

将 hadoop-2.7.4 文件夹重打包后复制到其他子节点

cd /home/hadoop/tar zcvf hadoop.tar.gz hadoop-2.7.4
scp hadoop.tar.gz hadoop@node2:/home/hadoop/
scp hadoop.tar.gz hadoop@node3:/home/hadoop/

在其他子节点 解压

tar -zxvf hadoop.tar.gz

配置slaves文件

修改(Master主机)node1/etc/hadoop/slaves该文件指定哪些服务器节点是datanode节点。删除locahost,添加所有datanode节点的主机名

cd /home/hadoop/hadoop-2.7.4/etc/hadoop/[hadoop@node1 hadoop]$ cat slaves
node2
node3

集群操作

Format

格式化namenode和datanode并启动,(在master上执行就可以了 不需要在slave上执行)

cd /home/hadoop/hadoop-2.7.4/bin./hadoop namenode -format
./hadoop datanode -format

启动 hadoop

关闭防火墙

systemctl stop firewalld.service
cd /home/hadoop/hadoop-2.7.4/sbin./start-dfs.sh
./start-yarn.sh
./mr-jobhistory-daemon.sh start historyserver

或者

./start-all.sh./mr-jobhistory-daemon.sh start historyserver

查看进程服务

查看启动进程,缺少以下任一进程都表示出错

$ jps
2528 NameNode
2720 SecondaryNameNode
2872 ResourceManager
3151 JobHistoryServer

查看端口占用情况

netstat -tnlp | grep java

访问node1

http://192.168.252.121:50070

http://192.168.252.121:8088

停止 hadoop

cd /home/hadoop/hadoop-2.7.4/sbin./stop-all.sh

或者 jps 查看进程kill

Hadoop-2.7.4 集群快速搭建相关推荐

  1. 【Hadoop生态圈】1.Hadoop入门教程及集群环境搭建

    文章目录 1.简介 2.环境准备 3.安装hadoop 3.修改Hadoop配置文件 3.1.hadoop-env.sh配置 3.2.core-site.xml配置 3.3.hdfs-site.xml ...

  2. 云计算与大数据实验二 Hadoop的安装和集群的搭建

    一.实验目的 理解Hadoop集群架构和工作原理 掌握Hadoop安装环境和步骤 掌握Hadoop安装过程的配置,集群的搭建和启动 二.实验内容 Hadoop安装和JDK环境准备 集群的搭建和启动 三 ...

  3. spark集群,kafka集群和zookeeper的docker集群快速搭建

    准备操作 安装docker(宿主机) yum install docker (宿主机时centos用yum管理包) systemctl daemon-reload(重加载deamon服务,是docke ...

  4. 手把手教你搭建Hadoop生态系统伪分布式集群

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 手把手教你搭建Hadoop生态 ...

  5. 记Hadoop HA高可用性分布式集群搭建过程

    为完成毕业设计中并行算法测试,在学习后,自己在虚拟机搭建了一个基于Hadoop的分布式集群,在这里做个记录,菜鸟首次写博客,已深夜,下面直接进入主题: 规划与说明 在hadoop集群中通常由两个Nam ...

  6. 大数据技术之Hadoop概述集群环境搭建常见错误解决等

    Hadoop概述 文章目录 Hadoop概述 1. Hadoop是什么 2. Hadoop发展历史 4. Hadoop的优势 5. Hadoop组成 6. 大数据技术生态体系 7. 推荐系统框架图略图 ...

  7. 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍

    大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...

  8. (超详细)基于Zookeeper的Hadoop HA集群的搭建

    基于Zookeeper的Hadoop HA集群的搭建 JunLeon--go big or go home 前言: 高可用(high availability,HA)指的是若当前工作中的机器宕机了,系 ...

  9. Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装

    Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装 今日课程学习目标 1.掌握Linux用户.权限管理 2.掌握Linux常用系统命令 3.掌握服务器集群环境搭建 4.了解sh ...

最新文章

  1. 大学可以学前端开发_所有开发人员在大学中应该学习的东西
  2. python—函数实例一
  3. BZOJ1208[HNOI2004]宠物收养场——treap
  4. 树莓派3B+功耗测试、初体验、图形化配置树莓派3B+配置方法。Raspberry Pi 3B+测评...
  5. Spring松耦合的实现
  6. 成为中国最好的Magento开发公司
  7. (王道408考研数据结构)第一章绪论-第一节:数据结构的基本概念、三要素、逻辑结构和物理结构
  8. 结构型模式-装饰模式(扩展系统功能)
  9. 写好规范 Java 代码去大厂!
  10. 服务器常规维修与判断方法,服务器常规维修与判断方法88119.doc
  11. jquery中html()、text()、val()的区别与使用
  12. 毕设题目:Matlab语音情感识别
  13. turbo码书籍推荐
  14. 众包专访:快得难以想象!开源中国众包解决了团队开发的燃眉之急
  15. 图片标签及以图搜图场景应用
  16. 计算机类自主招生推荐信,自主招生推荐信范文15篇
  17. Android 中自定义ViewGroup实现流式布局的效果
  18. 2021年美赛解题思路汇总Final!!!
  19. 矩阵特征分解(svd)介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)
  20. 代码实现:圣诞树效果(易懂,必会)/用html实现圣诞树效果

热门文章

  1. C# 值类型与引用类型
  2. [umeditor] 多图片一次上传功能
  3. win7下解决Android SDK Manger慢
  4. 《资安人》:迈向成功SOC之路
  5. C# Trim 的使用
  6. 为你的水晶报表装载本地图片
  7. Linux06-服务、守护进程和systemd
  8. 我在React Native中构建时获得的经验教训
  9. javascript晚绑定_JavaScript的应用,调用和绑定通过托管野餐来解释
  10. im和音视频开发哪个更好_找时间成为更好的开发人员