hadoop01--大数据概念,hadoop的认识以及伪分布式的搭建

文章目录

      • 一.大数据的概念
      • 二.Hadoop认识
      • 三.Hadoop 生态圈
      • 四.搭建Hadoop伪分布式环境
        • 准备
          • 1.安装jdk
          • 2.关闭防火墙
          • 3. 修改seLinux
          • 4.修改主机名称
          • 5.IP绑定hostname
        • 安装Hadoop 环境
          • 配置Hadoop 环境
          • 配置HDFS
          • HDFS 的架构
        • 启动Hadoop HDFS
        • Hadoop 服务的启动脚本
        • 数据在 HDFS上 mapreduce 运行在本地
        • YARN 环境的配置
          • 启动yarn

一.大数据的概念

大数据的特点:数据量大, 数据的多样性 , 有一定的价值

大数据的兴起:WEB2.0 Ajax

数据的来源:

  • 企业内部的业务数据: 传统的数据都是结构化数据,非结构化数据,半结构化数据 例如日志
  • 外部收集的数据:消费记录 采集数据 爬虫 网站的埋点(jsSDK)
  • 传统的分析大数据的缺点: 慢, 安全性不高, 大批量的数据如何存储
  • Hadoop的诞生源自谷歌的三大论文
三大论文
关于存储的 GFS
关于计算 MapReduce
非结构化数据存储的 BigTable

二.Hadoop认识

三个概念
1. 分布式存储系统 HDFS (集群) 安全性的设计: 默认产生3个副本 进行复制保存
2. 分布式计算框架 MapReduce 输入的数据分开处理
3. 分布式数据库 Hbase Hadoop base 主要存储非结构化数据,半结构化数据
Hadoop 的版本
Hadoop1x HDFS MapReduce
Hadoop2x HDFS MapReduce YARN

YARN 相当于操作系统 ,MapReduce 相当是一个应用 可以在上面运行,但是 HBase 是不支持在YARN运行的

增加了YARN 平台的好处 应用不在但是单纯的MapReduce ,同时可以跑其他的应用 例如SPark

YARN 分布式的资源管理框架

主/从架构

领导        小弟 
--------------------
主节点      从节点   

三.Hadoop 生态圈

Hadoop 的四大核心组件:
1. Hadoop Common 主要存在JAVA的接口 ,HDFS API 工具
2. Hadoop Distributed File System (HDFS™):
3. Hadoop MapReduce
4. Hadoop YARN
YARN的资源调度 (CPU 内存 硬盘 )
1. 主节点: resourceManager 对整个集群的资源的管理,对任务进行调度
2. 从节点: nodeManager 每台机器上的资源管理
序号 安装的模式:
1 单机模式 单个java进程 如何调试 测试Local (Standalone) Mode
2 伪分布式 用java进程模拟出来的分布式程序Pseudo-Distributed Mode
3 完全分布式 适合生产环境(Fully-Distributed Mode) (学习)

四.搭建Hadoop伪分布式环境

安装前的准备:
1 需要JDK环境
2 防火墙关闭
3 修改seLinux
4 创建独立用户 Hadoop
5 设置主机名称 hadoop01
6 hosts 地址映射

准备

1.安装jdk

首先规划安装目录 :在opt 下创建app,softs
Softs 源文件的上传路径
App 软件的安装路径

	mkdir -p /opt/app /otp/softs

上传文件可以使用 yum install lrzsz 安装rz 命令用于上传文件到softs中

1 进行JDK 的解压, 到 opt /app 中

	 tar  -zvxf  jdk..... -C /opt/app  

2 配置环境变量
设置在 /etc/profile 下

vi /etc/profile
export JAVA_HOME=/opt/app/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH

使用环境变量生效

source  /etc/profile 

使用命令查看 java -version 输出版本信息

2.关闭防火墙
service iptables stop  临时关闭
chkconfig iptables off 永久性关闭
3. 修改seLinux
vi /ect/sysconfig/selinux 
SELINUX=disabled
4.修改主机名称
临时修改 hostname  hadoop01 
永久修改  vi /etc/sysconfig/network  修改里面hostname
5.IP绑定hostname
vi /etc/hosts
(自己的ip)    (映射的主机名)

安装Hadoop 环境

1)需要创建独立用户  hadoop  使用useradd hadoop

2)修改独立用户的密码 passwd hadoop  密码 sacsac

3)切换到Hadoop 用户下进行解压Hadoop 文件 ,之前必须要为Hadoop用户设置sudo 权限

4)使用visudo 设置hadoop 权限 

    Hadoop 默认是在linux 32位系统下编译的,如果自己下载官网上的hadoop 需要重新编译一下源码  不然会出现无法加载本地库的问题  

5)修改 Hadoop源文件的 用户 和用户组的权限 
    Sudo  Chown  -R  hadoop:hadoop  hadoop文件 

6)解压hadoop 安装目录 
 	
    Sudo tar -zvxf hadoop -C /opt/app

7)解压之后的Hadoop 的目录

    bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  README.txt  sbin  share 
    
    Bin:  Hadoop的最基本脚本目录, hadoop 命令  hdfs 的命令 都在该目录下执行
    
    Etc:  该目录下存放的位Hadoop 配置文件 Hadoop分为四大核心模块 core  hdfs  mapreduce yarn   该目录下的配置文件也是对应了四个核心模块的配置 
    
    Lib : 包含了hadoop中动态编程以及动态编程中引用的库文件  头文件信息 
    
    Sbin: hadoop脚本管理目录,主要存放了HDFS  YRAN 服务的启动和关闭
    
    Share: 包含了hadoop各个模块的编译后的jar包 
配置Hadoop 环境

1 编写etc/hadoop/hadoop-env.sh 增加JAVA_HOME 安装路径

export JAVA_HOME=/opt/app/jdk1.8.0_181 

2 尝试使用 bin/hadoop 命令看能否提示出hadoop命令

3.运行官方实例

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

在以上示例中,需要提供输入的路径文件夹, 例如 input , 需要拷贝计算的文件 
按照以上的案例格式运行mapreduce 看是否成功,查看output 目录输出结果 

part-r-00000  输出结果的文件  _SUCCESS  标记文件没有内容 代表任务运行成功

对于之前的操作,数据是存在本地文件系统上,接下来数据存储在HDFS上进行测试 

首先就要对HDFS进行配置,以及原理的讲解

core, hdfs ,yarn ,mapreduce 
配置HDFS

1) 配置 etc/hadoop/core-site.xml
配置HDFS的路径的地址


	  
        fs.defaultFS
        hdfs://hadoop01:8020
    

2) 配置etc/hadoop/hdfs-site.xml:HDFS 的复制因子 在伪分布式环境中 必须设置1


	
        dfs.replication
        1
    

HDFS 的架构

hadoop01--大数据概念,hadoop的认识以及伪分布式的搭建_第1张图片

HDFS是一个分布式文件系统,用于存储海量数据,架构分为主从架构

1. 主架构为namenode,负责管理元数据(文件的名称,文件的副本,文件的位置(只有一个节点)
2. 存储数据的节点为datanode为从架构 存在多个节点
3. secondaryNamenode 辅助节点,用于合并两类文件
4. Fsimage ,edits  作为元数据的镜像和操作的日志记录 
5. 在HDFS第一次使用的时候需要对其进行格式化,目的是生成fsimage 和 edits 文件
  • 对于HDFS 的临时存储目录,默认情况下是存储在linux /tmp 目录下,该目录的特点为重启之后内容可能丢失,所以需要配置自定义的目录

  • 自定义的文件路径地址: /opt/app/hadoop-2.7.2/data/tmp

    修改的文件为core-site.xml 修改hadoop临时保存目录,添加如下代码:


        hadoop.tmp.dir
        /opt/app/hadoop-2.7.2/data/tmp

    

启动Hadoop HDFS

格式化namenode 

    bin/hadoop namenode -format  
    
    在格式化中看到 successfully formatted. 说明格式化成功

Hadoop 服务的启动脚本

单个服务启动 不需要免密设置
    Hdfs 属于hadoop 模块 在sbin目录下存在hadoop-daemon.sh,该脚本负责启动hadoop模块相关服务
    
    启动namenode 
    sbin/hadoop-daemon.sh start namenode 
    
    启动datanode
    sbin/hadoop-daemon.sh start datanode
    
    通过jps 命令查看 java 进程发现namenode datanode 都在进程中运行 

    测试HDFS 命令  
        1) 可以尝试在HDFS上创建文件 bin/hdfs dfs -mkdir test /
        2) 查看创建的文件是否成功, bin/hdfs dfs -ls /

通过web 界面方式访问hdfs 测试能否访问成功 ,前提是必须关闭防火墙
http://192.168.91.100:50070   前面为本机的IP地址 

之前的应用是跑在本地,数据input 是在本地文件系统中, 既然安装完成了HDFS 则数据应该上传到HDFS 之后在运行MapReduce程序 

数据在 HDFS上 mapreduce 运行在本地

1) 把之前的input目录上传到HDFS 集群上
bin/hdfs dfs  -put input/ /  -put 代表上传   input  / 代表HDFS上根目录 

2) 在操作HDFS执行MapReduce的时候出现了如下错误
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://hadoop01:8020/user/hadoop/input

分析以上的错误产生的原因 

执行命令
 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

在HDFS 如果想要访问根路径则必须在访问目录之前加上根路径标识符/ 如果不加根路径/ 则默认访问/user/用户名/这个路径

以上的操作,就相当于mapredue 读取HDFS上的数据,进行分析 

HDFS  常用的命令:

    -ls  查看文件目录
    
    -text  查看文件
    
    -mkdir 创建目录 
    
    -put 上传文件 

YARN 环境的配置

1) 配置mapred-site.xml 文件 设置Mapreduce 框架运行名称yarn

    
    
    	
            mapreduce.framework.name
            yarn
        
    
    
    

2) 设置yarn 中的服务类 yarn-site.xml

    
      
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        
    
启动yarn
1)sbin/yarn-daemon.sh start resourcemanager

2)sbin/yarn-daemon.sh start nodemanager

通过以上命令分别启动 主节点 resourcemanager ,从节点  nodemanager 

也可以通过web页面进行访问 yarn 中资源管理页面
http://192.168.91.100:8088

以上框架的基本功能,已经搭建完成了,可以在上面运行一个Hadoop 中的wordcount 入门示例

单词的统计  

主要的目的就是,统计文本中每一个单词出现的次数 例如有如下文本

Hadoop java spark hive hbase 

Hadoop java hello myhello hbase 

运行wordcount 案例的步骤
1) 编写文件,每个单词中需要存在空格 
2) 上传文件到HDFS 集群中  -put命令 
3) 运行以下命令执行

运行wordcount 案例命令bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /a.txt /output3

你可能感兴趣的:(hadoop)