码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop

时间:2018-09-05 11:39:05      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:变量   flume   用户画像   地址映射   应用程序   app   存储类型   分布式协调   模块   

1. HADOOP背景介绍

1.1 什么是HADOOP

  1. HADOOPapache旗下的一套开源软件平台
  2. HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
  3. HADOOP的核心组件有
    1. HDFS(分布式文件系统)
    2. YARN(运算资源调度系统)
    3. MAPREDUCE(分布式运算编程框架)
  4. 广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈

Hadoop hive hbase flume kafka sqoop spark flink …….

 

1.2 HADOOP产生背景

  1. HADOOP最早起源于NutchNutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
  2. 2003年、2004谷歌发表的两篇论文为该问题提供了可行的解决方案

——分布式文件系统(GFS),可用于处理海量网页的存储

——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。

   3.Nutch的开发人员完成了相应的开源实现HDFSMAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到20081月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

 

 

1.3 HADOOP在大数据、云计算中的位置和关系

 

  1. 云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助IaaS(基础设施即服务)PaaS(平台即服务)SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。

 

    2.现阶段,云计算的两大底层支撑技术虚拟化”和“大数据技术

    3.而HADOOP则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。

 

 

1.4 国内外HADOOP应用案例介绍

 

1HADOOP应用于数据服务基础平台建设

  技术分享图片

2、HADOOP用于用户画像

  技术分享图片

 

3HADOOP用于网站点击流日志数据挖掘

  技术分享图片

1.5 国内HADOOP的就业情况分析

1、 HADOOP就业整体情况

  1. 大数据产业已纳入国家十三五规划
  2. 各大城市都在进行智慧城市项目建设,而智慧城市的根基就是大数据综合平台
  3. 互联网时代数据的种类,增长都呈现爆发式增长,各行业对数据的价值日益重视
  4. 相对于传统JAVAEE技术领域来说,大数据领域的人才相对稀缺
  5. 随着现代社会的发展,数据处理和数据挖掘的重要性只会增不会减,因此,大数据技术是一个尚在蓬勃发展且具有长远前景的领域

 

 

 

2、 HADOOP就业职位要求

 

大数据是个复合专业,包括应用开发、软件平台、算法、数据挖掘等,因此,大数据技术领域的就业选择是多样的,但就HADOOP而言,通常都需要具备以下技能或知识:

 

  1. HADOOP分布式集群的平台搭建
  2. HADOOP分布式文件系统HDFS的原理理解及使用
  3. HADOOP分布式运算框架MAPREDUCE的原理理解及编程
  4. Hive数据仓库工具的熟练应用
  5. Flumesqoopoozie等辅助工具的熟练使用
  6. Shell/python等脚本语言的开发能力

 

 

3、 HADOOP相关职位的薪资水平

 

大数据技术或具体到HADOOP的就业需求目前主要集中在北上广深一线城市,薪资待遇普遍高于传统JAVAEE开发人员

 

1.6 HADOOP生态圈以及各组成部分的简介

技术分享图片

各组件简介

 

重点组件:

HDFS:分布式文件系统

MAPREDUCE:分布式运算程序开发框架

HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具

HBASE:基于HADOOP的分布式海量数据库

ZOOKEEPER:分布式协调服务基础组件

Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库

Oozie:工作流调度框架

Sqoop:数据导入导出工具

Flume:日志数据采集框架

 

 

2 分布式系统概述

 

注:由于大数据技术领域的各类技术框架基本上都是分布式系统,因此,理解hadoopstormspark等技术框架,都需要具备基本的分布式系统概念

 

 

 

2.1 分布式软件系统(Distributed Software Systems)

 

2 该软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信进行协作,实现最终的整体功能

 

比如分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。

 

 

 

2.2 分布式软件系统举例:solrcloud 

 

  1. 一个solrcloud集群通常有多台solr服务器
  2. 每一个solr服务器节点负责存储整个索引库的若干个shard(数据分片)
  3. 每一个shard又有多台服务器存放若干个副本互为主备用
  4. 索引的建立和查询会在整个集群的各个节点上并发执行
  5. solrcloud集群作为整体对外服务,而其内部细节可对客户端透明

 

总结:利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统。

 

 

 

2.3 分布式应用系统模拟开发

 

需求:可以实现由主节点将运算任务发往从节点,并将各从节点上的任务启动;

 

程序清单:

 

AppMaster

 

AppSlave/APPSlaveThread

 

Task

 

程序运行逻辑流程:

  技术分享图片

 

 

 

 

3.集群搭建

3.1 HADOOP集群搭建

3.1.1集群简介

HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起

HDFS集群:

负责海量数据的存储,集群中的角色主要有 NameNode / DataNode

YARN集群:

负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager

(mapreduce是什么呢?它其实是一个应用程序开发包)

 

本集群搭建案例,以5节点为例进行搭建,角色分配如下:

 

hdp-node-01    NameNode  SecondaryNameNode

hdp-node-02    ResourceManager

hdp-node-03 DataNode    NodeManager

hdp-node-04 DataNode    NodeManager

hdp-node-05 DataNode    NodeManager

 

 部署图如下:

技术分享图片

3.1.2服务器准备

本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本:

1、 Vmware 14.0

2、Centos  6.7  64bit

创建虚拟机:

1.点击文件,新建一个虚拟机

2.安装时选则自定义,下一步,兼容性直接点下一步

3.点稍后安装操作系统,下一步

4.客户机操作系统选择Linux,版本Centos 64位 ,下一步

5.修改虚拟机名称 指定虚拟机存放位置 下一步

6.处理器数量1  核心数量2  下一步

7.设置虚拟机大小2GB  下一步

8.网络连接类型选NAT 下一步

9.SCSI控制器选择推荐的 下一步

10.虚拟磁盘类型选择推荐的 下一步

11.创建新虚拟磁盘 下一步

12.磁盘大小20G(一般为20G-50G) 拆分为多个文件 下一步

13.下一步

14.完成

15.之后在VMware窗口 选择刚刚装好的虚拟机 点击 cd/dvd  然后选择 使用ISO映象文件 浏览选择

16.点击 VMware上方的 编辑 选择虚拟网络编辑器

17.进去后(win10需要点击右下方的 更改设置)  选择VMnet8(NAT模式)  设置子网IP:192.168.59.0  子网掩码:255.255.255.0

18.启动虚拟机 点击skip 之后选择下一步 然后选择中文 下一步 选择简体中文 下一步

19.选择存储类型 Basic 下一步

20.Yes 格式化硬盘 下一步

21.设置主机名 (主机名可更改) 下一步

22.设置时间 上海 点击上海的位置 下一步

23.设置root用户密码 123456 记住密码  密码简单 选择use anyway 下一步

24.磁盘划分使用默认划分方式 next

25.write change to disk  ,  next 等待安装  Reboot

26.重启之后 输入用户名: root  密码 :123456

之后 在3.1.4

3.1.3网络环境准备

1.   采用NAT方式联网

2.         3个服务器节点IP地址:192.168.59.130、192.168.59.131、192.168.59.132

3.   子网掩码:255.255.255.0

3.1.4服务器系统设置

 

添加映射(添加主机名和ip地址映射  即其他虚拟机所在位置)

 

vi /etc/hosts

 

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.59.130 hadoop
192.168.59.131 hadoop001
192.168.59.132 hadoop002

 

设置主机名

vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=hadoop

网卡配置  

vi /etc/sysconfig/network-scripts/ifcfg-eth0

   技术分享图片

 

本机进入 C:\Windows\System32\drivers\etc 修改hosts 添加

192.168.59.130  hadoop
192.168.59.131  hadoop001
192.168.59.132  hadoop002

# ip地址               主机名

查看防火墙状态

service iptables status

关闭防火墙

service iptables stop

 安装ssh

yum install -y openssh-clients

3.1.5 XShell

使用xshell连接虚拟机

主机那里输入192.168.59.130 或者 hadoop都可以(输入hadoop必须把本机hosts配置好)

技术分享图片

 

技术分享图片

技术分享图片

技术分享图片

技术分享图片

此时就可以用xshell连接虚拟机

3.1.6 克隆虚拟机 

3.1.5 Jdk环境安装

  上传jdk安装包

  规划安装目录  /home/hadoop/apps/jdk_1.8.65

  解压安装包

  配置环境变量 /etc/profile

 

 

3.1.6 HADOOP安装部署

  上传HADOOP安装包

  规划安装目录  /home/hadoop/apps/hadoop-2.8.3

  解压安装包

  修改配置文件  $HADOOP_HOME/etc/hadoop/

  最简化配置如下:

  在hadoop目录/etc/hadoop下

  vi  hadoop-env.sh

  JAVA_HOME    java放在哪个位置

# The java implementation to use.

export JAVA_HOME=/home/hadoop/apps/jdk_1.8.65

 

  vi  core-site.xml 

  fs.defaultFS   主机名:端口号

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-node-01:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/HADOOP/apps/hadoop-2.6.1/tmp</value>

</property>

</configuration>

 

  vi  hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoop/data/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/home/hadoop/data/data</value>

</property>

 

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

 

<property>

<name>dfs.secondary.http.address</name>

<value>hdp-node-01:50090</value>

</property>

</configuration>

  vi  mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

vi  yarn-site.xml 

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop01</value>

</property>

 

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

  vi  salves 

hdp-node-02

hdp-node-03

  

3.1.7 启动集群

初始化HDFS

 

bin/hadoop  namenode  -format

 

启动HDFS 

 

sbin/start-dfs.sh

 

启动YARN

 

sbin/start-yarn.sh

 

hadoop

标签:变量   flume   用户画像   地址映射   应用程序   app   存储类型   分布式协调   模块   

原文地址:https://www.cnblogs.com/lq0310/p/9591088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!