目录

Hadoop

1.大数据特点:4V

2.Hadoop组成

3.hdfs主从节点

4.搭建集群

一、虚拟机环境准备

二、准备三台虚拟机(一、)

三、编写集群分发脚本xsync

四、集群部署规划

五、集群单点启动

六、SSH无密登录配置

5.hadoop运行模式

6.配置文件

7.NameNode格式化

8.免密登录SSH

(1)配置ssh

基本语法:ssh 登陆主机IP

(2)无密钥配置

(3) ssh文件夹下(~/.ssh)的文件功能解释

HA(高可用集群)

1.搭建ha集群

一、环境准备

二、规划集群

三、配置Zookeeper集群

四、配置HDFS-HA集群

五、启动HDFS-HA集群

六、配置HDFS-HA自动故障转移

2.HA作用

HDFS

1.hdfs块大小,原因

2.优缺点

(1)优点:

(2)缺点:

3.默认副本数量

4.黑白名单(谁更严格)

5.shell操作

MapReduce

1.mapreduce进程

2.序列化 text

3.mapreduce的编程规范

4.mapreuce框架

5.切片大小 ,原因

6.Shuffle

Yarn

1.yarn节点

2.资源调度器

(1)先进先出调度器(FIFO)

(2)容量调度器(Capacity Scheduler)

(3)公平调度器(Fair Scheduler)

Zookeeper

1.zookeeper选举机制

2.zookeeper端口号

Flume

1.流式架构

2.agent

(1)Sink

(2)Channel

(3)Event

Kafka

1.topic

Spark

1.算子

2.rdd

3.rdd,datafream,dateset三者关系

Tez

1.作用/优点

Hive

1.数据仓库是否擅长改操作


Hadoop

1.大数据特点:4V

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_大数据_02

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_03

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_04

2.Hadoop组成

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_05

3.hdfs主从节点

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_大数据_06

4.搭建集群

一、虚拟机环境准备

(1)克隆虚拟机

(2)修改克隆虚拟机的静态IP

(3)修改主机名

(4)关闭防火墙

(5)创建root用户

(6)配置root用户具有root权限

(7)在/opt目录下创建文件夹:

  • 在/opt目录下创建module、software文件夹
  • 修改module、software文件夹的所有者(chown root:root module/ software/

(8)安装JDK,如果有低于1.7的版本,先卸载该版本JDK,修改系统环境变量/etc/profile文件中的变量为现在的版本

(9)安装Hadoop,同样修改系统环境变量

二、准备三台虚拟机(一、)

三、编写集群分发脚本xsync

  • 在/home/root目录下创建bin目录,并在bin目录下xsync创建文件
  • 修改脚本 xsync 具有执行权限

四、集群部署规划

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_07

  • 配置集群

核心配置文件:core-site.xml

HDFS配置文件:hadoop-env.sh、hdfs-site.xml

YARN配置文件:yarn-env.sh、yarn-site.xml

MapReduce配置文件:mapred-env.sh、mapred-site.xml

/opt/module/hadoop-2.7.2/etc/hadoop/slaves

  • 在集群上分发配置好的Hadoop配置文件,并查看文件分发情况

五、集群单点启动

  • 如果集群是第一次启动,需要格式化NameNode
  • 在第一台主机上启动NameNode
  • 在第二、三台主机上分别启动DataNode

六、SSH无密登录配置

  • 生成公钥和私钥
  • 将公钥拷贝到要免密登录的目标机器上

5.hadoop运行模式

本地模式、伪分布式、完全分布式

三种模式介绍

6.配置文件

核心配置文件:core-site.xml

HDFS配置文件:hadoop-env.sh、hdfs-site.xml

YARN配置文件:yarn-env.sh、yarn-site.xml

MapReduce配置文件:mapred-env.sh、mapred-site.xml

/opt/module/hadoop-2.7.2/etc/hadoop/slaves

7.NameNode格式化

(1)删除/opt/mudule/hadoop-2.7.2下的data和logs文件夹

(2) 重新格式化NameNode:hdfs namenode -format

8.免密登录SSH

(1)配置ssh

基本语法:ssh 登陆主机IP

  • ssh连接时出现Host key verification failed的解决方法:直接输入yes

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_08

(2)无密钥配置

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_09

  • 生成公钥和私钥:ssh-keygen -t rsa
  • 将公钥拷贝到要免密登录的目标机器上:ssh-copy-id IP

(3) ssh文件夹下(~/.ssh)的文件功能解释

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_10

HA(高可用集群)

通过双NameNode消除单点故障,切换工作模式

1.搭建ha集群

一、环境准备

(1)修改IP

(2)修改主机名及主机名和IP地址的映射

(3)关闭防火墙

(4)ssh免密登录

(5)安装JDK,配置环境变量等

二、规划集群

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_大数据_11

三、配置Zookeeper集群

(1)解压安装zookeeper

(2)在/opt/module/zookeeper-3.4.10/这个目录下创建zkData

(3)重命名/opt/module/zookeeper-3.4.10/conf这个目录下的zoo_sample.cfg为zoo.cfg

(4)配置zoo.cfg文件

(5)在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件

(6)编辑myid文件

(7)拷贝配置好的zookeeper到其他机器上,并分别修改myid文件中内容为3、4

(8)分别启动zookeeper:bin/zkServer.sh start

(9)查看状态:bin/zkServer.sh status

四、配置HDFS-HA集群

(1)在opt目录下创建一个ha文件夹,并修改所有者:chmod root:root ha

(2)将/opt/module/下的 hadoop-2.7.2拷贝到/opt/ha目录下

(3)配置hadoop-env.sh(JAVA_HOME环境变量)

(4)配置core-site.xml、hdfs-site.xml

(5)拷贝配置好的hadoop环境到其他节点

五、启动HDFS-HA集群

(1)在各个JournalNode节点上,输入以下命令启动journalnode服务:sbin/hadoop-daemon.sh start journalnode

(2)在[nn1]上,对其进行格式化,并启动:①bin/hdfs namenode -format②sbin/hadoop-daemon.sh start namenode

(3)在[nn2]上,同步nn1的元数据信息:bin/hdfs namenode -bootstrapStandby

(4)启动[nn2]:sbin/hadoop-daemon.sh start namenode

(5)查看web页面显示:IP:50070

(6)在[nn1]上,启动所有datanode:sbin/hadoop-daemons.sh start datanode

(7)将[nn1]切换为Active:bin/hdfs haadmin -transitionToActive nn1

(8)查看是否Active:bin/hdfs haadmin -getServiceState nn1

六、配置HDFS-HA自动故障转移

(1)启动

  • 关闭所有HDFS服务:sbin/stop-dfs.sh
  • 启动Zookeeper集群:bin/zkServer.sh start
  • 初始化HA在Zookeeper中状态:bin/hdfs zkfc -formatZK
  • 启动HDFS服务:sbin/start-dfs.sh

(2)验证

  • 将Active NameNode进程kill:kill -9 namenode的进程id
  • 将Active NameNode机器断开网络:service network stop

2.HA作用

  • 故障检测:一个namenode宕机后,zookeeper会通知另一个namenode需要出发故障转移
  • 现役NameNode选择
  • ---健康监测
  • ---ZooKeeper会话管理
  • ---基于ZooKeeper的选择

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hdfs_12

HDFS

1.hdfs块大小,原因

(1)默认大小为128M(HAdoop2.x版本中)

(2)原因:

  • HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置
  • 如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据是会非常慢

2.优缺点

(1)优点:

  • 容错性高
  • 适合处理大数据
  • 可构建在廉价机器上,通过多副本机制,提高可靠性

(2)缺点:

  • 不适合低延时数据访问
  • 无法高效的对大量小文件进行存储
  • 不支持并发写入、文件随即修改

3.默认副本数量

3

4.黑白名单(谁更严格)

白名单

5.shell操作

(1)-help:输出这个命令参数

hadoop fs -help rm

(2)-ls: 显示目录信息

hadoop fs -ls /

(3)-mkdir:在HDFS上创建目录(-p:多级目录)

hadoop fs -mkdir -p /sanguo/shuguo

(4)-moveFromLocal:从本地剪切粘贴到HDFS

[root@hadoop102 hadoop-2.7.2]$ touch kongming.txt
[root@hadoop102 hadoop-2.7.2]$ hadoop fs  -moveFromLocal  ./kongming.txt  /sanguo/shuguo

(5)-appendToFile:追加一个文件到已经存在的文件末尾

[root@hadoop102 hadoop-2.7.2]$ touch liubei.txt
[root@hadoop102 hadoop-2.7.2]$ vi liubei.txt
输入
san gu mao lu
[root@hadoop102 hadoop-2.7.2]$ hadoop fs -appendToFile liubei.txt /sanguo/shuguo/kongming.txt

(6)-cat:显示文件内容

root@hadoop102 hadoop-2.7.2]$ hadoop fs -cat /sanguo/shuguo/kongming.txt

(7)-chgrp 、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限

[root@hadoop102 hadoop-2.7.2]$ hadoop fs  -chmod  666  /sanguo/shuguo/kongming.txt
[root@hadoop102 hadoop-2.7.2]$ hadoop fs  -chown  root:root   /sanguo/shuguo/kongming.txt

(8)-copyFromLocal:从本地文件系统中拷贝文件到HDFS路径去

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -copyFromLocal README.txt /

(9)-copyToLocal:从HDFS拷贝到本地

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -copyToLocal /sanguo/shuguo/kongming.txt ./

(10)-cp :从HDFS的一个路径拷贝到HDFS的另一个路径

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -cp /sanguo/shuguo/kongming.txt /zhuge.txt

(11)-mv:在HDFS目录中移动文件

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -mv /zhuge.txt /sanguo/shuguo/

(12)-get:等同于copyToLocal,就是从HDFS下载文件到本地

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -get /sanguo/shuguo/kongming.txt ./

(13)-getmerge:合并下载多个文件,比如HDFS的目录 /user/root/test下有多个文件:log.1, log.2,log.3,...

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -getmerge /user/root/test/* ./zaiyiqi.txt

(14)-put:等同于copyFromLocal

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -put ./zaiyiqi.txt /user/root/test/

(15)-tail:显示一个文件的末尾

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -tail /sanguo/shuguo/kongming.txt

(16)-rm:删除文件或文件夹

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -rm /user/root/test/jinlian2.txt

(17)-rmdir:删除空目录

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -mkdir /test
[root@hadoop102 hadoop-2.7.2]$ hadoop fs -rmdir /test

(18)-du统计文件夹的大小信息

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -du -s -h /user/root/test
2.7 K  /user/root/test

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -du  -h /user/root/test
1.3 K  /user/root/test/README.txt
15     /user/root/test/jinlian.txt
1.4 K  /user/root/test/zaiyiqi.txt

(19)-setrep:设置HDFS中文件的副本数量

[root@hadoop102 hadoop-2.7.2]$ hadoop fs -setrep 10 /sanguo/shuguo/kongming.txt

MapReduce

1.mapreduce进程

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_13

2.序列化 text

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_大数据_14

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_15

3.mapreduce的编程规范

用户编写的程序分成三个部分:Mapper、Reducer和Driver。

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_16

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_17

4.mapreduce框架

5.切片大小 ,原因

(1)默认大小为128M

(2)原因:

切片只是对数据块进行切割,块大小默认为128M,切大切小都会存在跨节点切片的情况

6.Shuffle

Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_18

Shuffle机制

Yarn

1.yarn节点

ResourceManager、NodeManager

2.资源调度器

FIFO、Capacity Scheduler和Fair Scheduler

(1)先进先出调度器(FIFO)

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_19

(2)容量调度器(Capacity Scheduler)

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_20

(3)公平调度器(Fair Scheduler)

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_21

Zookeeper

1.zookeeper选举机制

半数选举:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。与myid有关

2.zookeeper端口号

2181

Flume

1.流式架构

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_HDFS_22

2.agent

Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的

Agent 主要有三个组成部分,Source、Channel、Sink

(1)Sink

       Sink 不断地轮询 Channel 中的事件且批量移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个 Flume Agent。
  Sink 组件的目的地包括 hdfs、logger、avro、thrif、file、HBase、solr、自定义

(2)Channel

        Channel 是位于 Source 和 Sink 之间的缓冲区。因此,Channel 允许 Source 和 Sink 运作在不同的速率上。Channel 是线程安全的,可以同时处理几个 Source 的写入操作和几个 Sink 的读取操作

        Flume 常用的 Channel:Memory Channel 和 File Channel

(3)Event

        传输单元,Flume数据传输的基本单元,以Event的形式将数据从源头送至目的地。Event由HeaderBody两部分组成,Header用来存放该event的一些属性,为K-V结构,Body用来存放该条数据,形式为字节数组

Kafka

1.topic

Topic :可以理解为一个队列,生产者和消费者面向的都是一个topic

Spark

1.算子

2.rdd

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据(计算)抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。

3.rdd,datafream,dateset三者关系

关系

hadoop大数据技术原理与应用 实训题 hadoop大数据技术期末考试_hadoop_23

1. RDD是最基础的数据类型,在向上转换时,需要添加必要的信息;

转DataFrame:需要添加结构信息并加上列名  toDF("id","name")

转DataSet:需要添加类型信息,写样例类       map(x=>{Emp(x)}).toDS()

2. DataFrame在向上转换时,本身包含结构信息,只添加类型信息即可;

转DataSet:先写样例类,as[Emp]

转RDD:df.rdd

3. DataSet作为最上层的抽象,转换其他对象直接可以往下转;

转DataFrame:ds.toDF

转RDD:ds.rdd

RDD与DF/DS转换都需要引入(import spark.implicits)

Tez

1.作用/优点

  • 优点:Tez可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升作业的计算性能。
  • 作用:

Hive

1.数据仓库是否擅长改操作