前言

目前人工智能和大数据火热,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求。因此对大数据知识也有必要进行一些学习理解

基础概念

大数据的本质

一、数据的存储:分布式文件系统(分布式存储)
二、数据的计算:分部署计算

基础知识

学习大数据需要具备Java知识基础及Linux知识基础

学习路线

(1)Java基础和Linux基础
(2)Hadoop的学习:体系结构、原理、编程
第一阶段:HDFS、MapReduce、HBase(NoSQL数据库)
第二阶段:数据分析引擎 -> Hive、Pig

              数据采集引擎 -> Sqoop、Flume

第三阶段:HUE:Web管理工具

                    ZooKeeper:实现Hadoop的HAOozie:工作流引擎

(3)Spark的学习

    第一阶段:Scala编程语言第二阶段:Spark Core -> 基于内存、数据的计算第三阶段:Spark SQL -> 类似于mysql 的sql语句第四阶段:Spark Streaming ->进行流式计算:比如:自来水厂

(4)Apache Storm 类似:Spark Streaming ->进行流式计算

NoSQL:Redis基于内存的数据库

HDFS

分布式文件系统 解决以下问题:

1、硬盘不够大:多几块硬盘,理论上可以无限大
2、数据不够安全:冗余度,hdfs默认冗余为3 ,用水平复制提高效率,传输按照数据库为单位:Hadoop1.x 64M,Hadoop2.x 128M

管理员:NameNode 硬盘:DataNode

![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/8ca9f78b244c7f991e73f71fd1e56421.png)

MapReduce

基础编程模型:把一个大任务拆分成小任务,再进行汇总
MR任务:Job = Map + Reduce Map的输出是Reduce的输入、MR的输入和输出都是在HDFS

MapReduce数据流程分析:

    Map的输出是Reduce的输入,Reduce的输入是Map的集合

HBase

什么是BigTable?: 把所有的数据保存到一张表中,采用冗余 ---> 好处:提高效率

1、因为有了bigtable的思想:NoSQL:HBase数据库
2、HBase基于Hadoop的HDFS的
3、描述HBase的表结构
核心思想是:利用空间换效率

Hadoop环境搭建

环境准备

Linux环境、JDK、http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0-src.tar.gz

安装

1、安装jdk、并配置环境变量

vim /etc/profile 末尾添加
![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/a9bf2e19410f9b3d38c8b0ca64b2f264.png)

2、解压hadoop-3.0.0.tar.gz、并配置环境变量

tar -zxvf hadoop-3.0.0.tar.gz -C /usr/local/
mv hadoop-3.0.0/ hadoop


vim /etc/profile 末尾添加

配置

Hadoop有三种安装模式:

        本地模式  :1台主机  不具备HDFS,只能测试MapReduce程序伪分布模式:1台主机  具备Hadoop的所有功能,在单机上模拟一个分布式的环境(1)HDFS:主:NameNode,数据节点:DataNode(2)Yarn:容器,运行MapReduce程序主节点:ResourceManager从节点:NodeManager全分布模式:至少3台

我们以伪分布模式为例配置:

修改hdfs-site.xml:冗余度1、权限检查false

<!--配置冗余度为1-->
<property><name>dfs.replication</name><value>1</value>
</property><!--配置权限检查为false-->
<property><name>dfs.permissions</name><value>false</value>
</property>

修改core-site.xml

<!--配置HDFS的NameNode-->
<property><name>fs.defaultFS</name><value>hdfs://192.168.56.102:9000</value>
</property><!--配置DataNode保存数据的位置-->
<property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/tmp</value>
</property>

修改mapred-site.xml

<!--配置MR运行的框架-->
<property><name>mapreduce.framework.name</name><value>yar</value>
</property>
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property><name>mapreduce.application.classpath</name><value>/usr/local/hadoop/etc/hadoop,/usr/local/hadoop/share/hadoop/common/*,/usr/local/hadoop/share/hadoop/common/lib/*,/usr/local/hadoop/share/hadoop/hdfs/*,/usr/local/hadoop/share/hadoop/hdfs/lib/*,/usr/local/hadoop/share/hadoop/mapreduce/*,/usr/local/hadoop/share/hadoop/mapreduce/lib/*,/usr/local/hadoop/share/hadoop/yarn/*,/usr/local/hadoop/share/hadoop/yarn/lib/*,</value>
</property>

修改yarn-site.xml

<!--配置ResourceManager地址-->
<property><name>yarn.resourcemanager.hostname</name><value>192.168.56.102</value>
</property><!--配置NodeManager执行任务的方式-->
<property><name>yarn.nodemanager.aux-service</name><value>mapreduce_shuffle</value>
</property>

格式化NameNode

hdfs namenode -format
看到common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted表示格式化成功

启动

start-all.sh
(*)HDFS:存储数据
(*)YARN:

访问

(*)命令行
(*)Java Api
(*)WEB Console
HDFS: http://192.168.56.102:50070
Yarn: http://192.168.56.102:8088

查看HDFS管理界面和yarn资源管理系统

基本操作:

HDFS相关命令

    -mkdir   在HDFD创建目录    hdfs dfs -mkdir /data-ls         查看目录                 hdfs dfs -ls-ls -R      查看目录与子目录    hdfs dfs -ls -R-put        上传一个文件        hdfs dfs -put data.txt /data/input-copyFromLocal 上传一个文件 与-put一样-moveFromLocal 上传一个文件并删除本地文件 -copyToLocal        下载文件 hdfs dfs -copyTolocal /data/input/data.txt-put    下载文件 hdfs dfs -put/data/input/data.txt-rm     删除文件 hdfs dfs -rm-getmerge     将目录所有文件先合并再下载-cp    拷贝-mv    移动-count    统计目录下的文件个数-text、-cat    查看文件-balancer    平衡操作

MapReduce示例


结果:

如上 一个最简单的MapReduce示例就执行成功了

思考

Hadoop是基于Java语言的,前端日常开发是用的PHP,在使用、查找错误时还是蛮吃力的。工作之余还是需要多补充点其它语言的相关知识,编程语言是我们开发、学习的工具,而不应成为限制我们技术成长的瓶颈

大数据入门之Hadoop基础学习相关推荐

  1. 大数据入门(Hadoop生态系统)

    Hadoop生态系统为大数据领域提供了开源的分布式存储和分布式计算的平台,这一章我们进行Hadoop生态系统的入门学习,介绍其中分布式文件系统HDFS.分布式资源调度YARN.分布式计算框架MapRe ...

  2. 【大数据笔记】hadoop基础——各组件介绍

    目录 故事背景 Hadoop 与大数据之间到底是什么关系? 1.数据存储:HDFS,一个分布式文件系统 2. 数据分析:MapReduce 计算引擎 HDFS(Hadoop 分布式文件系统) MapR ...

  3. 大数据新手的0基础学习路线,从菜鸟到高手的成长之路

    大数据作为一个新兴的热门行业,吸引了很多人,但是对于大数据新手来说,按照什么路线去学习,才能够学习好大数据,实现从大数据菜鸟到高手的转变.这是很多想要学习大数据的朋友们想要了解的. 今天我们就来和大家 ...

  4. 自动化专业学习大数据开发,零基础学习分享

    上课一直坐在前排的杨同学,年前辞职来专心学习大数据技术.被问到为什么想转行学习大数据时,之前从事无线通信优化工作的他说:"我的工作经常出差,而且上升空间不是很大,因为经常出差肯定要转行,不如 ...

  5. 大数据入门(Hadoop)

    大数据的开发流程: 产品人员提需求 数据部门搭建数据平台(搭建一个集群),分析数据指标. 数据可视化(邮件的展示,邮件的发送,大屏展示) 大数据部门的组织结构: Hadoop是什么?作用? 狭义:Ha ...

  6. 【大数据入门】Hadoop技术原理与应用之基于Hadoop的数据仓库Hive

    基于Hadoop的数据仓库Hive 文章目录 基于Hadoop的数据仓库Hive @[toc] 6.1 概述 6.1.1 数据仓库概念 6.1.2 传统数据仓库面临的挑战 6.1.3 Hive简介 6 ...

  7. 大数据笔记30—Hadoop基础篇13(Hive优化及数据倾斜)

    Hive优化及数据倾斜 知识点01:回顾 知识点02:目标 知识点03:Hive函数:多行转多列 知识点04:Hive函数:多行转单列 知识点05:Hive函数:多列转多行 知识点06:Hive函数: ...

  8. 大数据入门培训之大数据开发基础知识学习

    在目前相信大多数IT开发人员对于人工智能+大数据并不陌生,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求.因此对大数据知识也有必要进行一些学习理解,带大家来学习了解一下 ...

  9. 女友问粉丝过万如何庆祝,我发万字长文《保姆级大数据入门篇》感恩粉丝们支持,学姐|学妹|学弟|小白看了就懂

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 粉丝破万了 新星计划申 ...

最新文章

  1. 来玩Play框架07 静态文件
  2. 笔记-项目整体管理-开工会议-kick-off-meeting
  3. 易语言微凉模块oracle,跟着微凉学易语言 【简单子类化】
  4. Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
  5. android 默认浏览器 视频播放 二维码,Android调用系统默认浏览器访问的方法
  6. Linux用管道移动文件夹,常用的Linux上的文件管理类命令讲解及演示
  7. r语言插补法_R语言用多重插补法估算相对风险
  8. 计算机教育部 学科分类,教育部学科分类与代码分类查询
  9. 景深的计算及弥散圆、光圈的概念
  10. 电子计算机上面cutup,cutup(cut up用法总结)
  11. 我对TCP协议的一点形而上的看法
  12. 小样儿老师:我的嵌入式学习之路(一)
  13. Ubuntu / Debian: sudo 出现 unable to resolve host 错误解决办法
  14. IJCAI TEXT PAPERS
  15. 统计学第四周-概率分布
  16. 一线PPT制作理论——简洁电磁环境构建
  17. WordPress论坛主题:LightSNS - 主打轻社交
  18. android 分辨率 2k,小米8分辨率是不是2k?
  19. 基于双向LSTM的影评情感分析算法设计学习记录
  20. Foxmail 配置公司邮箱

热门文章

  1. 汽车开放系统架构(AUTOSAR)是什么
  2. 用Spark实现简单的单词统计
  3. execute taskaction$gradle怎么解决_Spring 源码中设计模式?怎么回答面试官才稳?
  4. scipy 图像处理-深度学习
  5. LeetCode171——Excel Sheet Column Number
  6. NS2仿真:公交车移动周期模型及性能分析
  7. ecside使用笔记(1)
  8. ThinkPHP URL模式和URL重写
  9. 数据结构学习笔记4.1--查找节点
  10. Xcode 中关于#的小知识