扣丁学堂大数据培训

扣丁学堂大数据入门培训之Hadoop基础学习

2018-07-12  本文已影响1人  994d14631d16

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

​  大数据的本质

  一、数据的存储:分布式文件系统(分布式存储)

  二、数据的计算:分部署计算

  (1)Java基础和Linux基础

  (2)Hadoop的学习:体系结构、原理、编程

  第一阶段:HDFS、MapReduce、HBase(NoSQL数据库)

  第二阶段:数据分析引擎->Hive、Pig

  数据采集引擎->Sqoop、Flume

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

  ZooKeeper:实现Hadoop的HA

  Oozie:工作流引擎

  (3)Spark的学习

  第一阶段:Scala编程语言

  第二阶段:SparkCore->基于内存、数据的计算

  第三阶段:SparkSQL->类似于mysql的sql语句

  第四阶段:SparkStreaming->进行流式计算:比如:自来水厂

  (4)ApacheStorm类似:SparkStreaming->进行流式计算

  NoSQL:Redis基于内存的数据库

  HDFS

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

  硬盘不够大:多几块硬盘,理论上可以无限大

  数据不够安全:冗余度,hdfs默认冗余为3,用水平复制提高效率,传输按照数据库为单位:Hadoop1.x64M,Hadoop2.x128M

  管理员: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的集合

  大数据入门之Hadoop基础学习

  HBase

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

  因为有了bigtable的思想:NoSQL:HBase数据库

  HBase基于Hadoop的HDFS的

  描述HBase的表结构

  核心思想是:利用空间换效率

  大数据入门之Hadoop基础学习

  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-zxvfhadoop-3.0.0.tar.gz-C/usr/local/

  mvhadoop-3.0.0/hadoop

  大数据入门之Hadoop基础学习

  大数据入门之Hadoop基础学习

  vim/etc/profile末尾添加

  大数据入门之Hadoop基础学习

  配置

  Hadoop有三种安装模式:

  本地模式:

  1台主机

  不具备HDFS,只能测试MapReduce程序

  伪分布模式:

  1台主机

  具备Hadoop的所有功能,在单机上模拟一个分布式的环境

  (1)HDFS:主:NameNode,数据节点:DataNode

  (2)Yarn:容器,运行MapReduce程序

  主节点:ResourceManager

  从节点:NodeManager

  全分布模式:

  至少3台

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

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

  

  dfs.replication

  1

  

  dfs.permissions

  false

  修改core-site.xml

  

  fs.defaultFS

  hdfs://192.168.56.102:9000

  

  hadoop.tmp.dir

  /usr/local/hadoop/tmp

  修改mapred-site.xml

  

  mapreduce.framework.name

  yar

  

  yarn.app.mapreduce.am.env

  HADOOP_MAPRED_HOME=/usr/local/hadoop

  

  mapreduce.map.env

  HADOOP_MAPRED_HOME=/usr/local/hadoop

  

  mapreduce.reduce.env

  HADOOP_MAPRED_HOME=/usr/local/hadoop

  

  mapreduce.application.classpath

  

  /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/*,

  修改yarn-site.xml

  

  yarn.resourcemanager.hostname

  192.168.56.102

  

  yarn.nodemanager.aux-service

  mapreduce_shuffle

  格式化NameNode

  hdfsnamenode-format

  看到common.Storage:Storagedirectory/usr/local/hadoop/tmp/dfs/namehasbeensuccessfullyformatted表示格式化成功

  启动

  start-all.sh

  (*)HDFS:存储数据

  (*)YARN:

  访问

  (*)命令行

  (*)JavaApi

  (*)WEBConsole

  HDFS:http://192.168.56.102:50070

  Yarn:http://192.168.56.102:8088

  基本操作:

  HDFS相关命令

  -mkdir在HDFD创建目录hdfsdfs-mkdir/data

  -ls查看目录hdfsdfs-ls

  -ls-R查看目录与子目录hdfsdfs-ls-R

  -put上传一个文件hdfsdfs-putdata.txt/data/input

  -copyFromLocal上传一个文件与-put一样

  -moveFromLocal上传一个文件并删除本地文件

  -copyToLocal下载文件hdfsdfs-copyTolocal/data/input/data.txt

  -put下载文件hdfsdfs-put/data/input/data.txt

  -rm删除文件hdfsdfs-rm

  -getmerge将目录所有文件先合并再下载

  -cp拷贝

  -mv移动

  -count统计目录下的文件个数

  -text、-cat查看文件

  -balancer平衡操作

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

上一篇下一篇

猜你喜欢

热点阅读