Hadoop-HDFS

本文介绍了大数据的基本概念、特点和应用场景,着重讲解了Hadoop及其核心组件HDFS。从HDFS的安装配置到相关操作,包括Shell命令、Java API的使用,深入探讨了HDFS的架构、数据存储流程和数据校验机制,帮助读者全面理解Hadoop在大数据处理中的作用。
摘要由CSDN通过智能技术生成

Hadoop

一、概述

1.1 大数据概念

大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。——来自研究机构Gartner
在这里插入图片描述

1.2 大数据面临问题

存储:单机存储有限,如何解决海量数据存储?

分析:如何在合理时间范围内对数据完成成本运算?

1.3 大数据的特点

4V 特性 Volume 数量Velocity多样 Variety 时效 Value价值

1)数据量大

B-KB-MB-GB-TB-PB-EB-ZB…

各种云存储解决方案,百度云、腾讯微云、OneDriver、GoogleDriver等,现有的

大数据产生的数据量根本还是在于人,日益进步的科技,更加美好的物质生活,更加自我的追求,催生出了互联网时代更多数据量的产生。

网购平台,视频网站,健身App,支付金融App,社交App,搜索引擎等能够在人们使用的时候收集大量的数据,日活人数上亿级别的互联网公司能够在一天内轻松获取超过1PB的数据。

2)数据时效性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQAmFITz-1569943141907)(assets/u=2166141108,24851986&fm=58&bpow=800&bpoh=528.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YeBiOLcX-1569943141908)(assets/u=1433661816,131453648&fm=58&bpow=800&bpoh=600.jpg)]

  • 天猫

    天猫双十一总成交额在开场后第2分05秒即突破100亿元,刷新去年创下的最快破百亿记录,用时不到1小时17分超过2015年双十一全天成交额,用时不到15小时50分,成交总额超越去年全天成交额。
    
  • 京东

    随着618大促的结束,大家也都在关注各个电商平台的销量情况,2018京东618销售额是多少?最新数据公布,京东618累计交易额1592亿元。
    

大量数据在短时间内迅速产生,即要求收集者在短时间内收集存储数据,且在近期分析出有效数据。

3)数据多样性

(1)数据存储类型多样性

​ 结构化数据:SQL,文本等

​ 非结构化数据:视频,音频,图片

(2)数据分析类型多样性

​ 地理位置:来自北京、上海…

​ 设备信息:PC、手机、手表、手环

​ 个人喜好:美女、面膜、显卡、数码、游戏

​ 社交网络:A可能认识B,C,B可能认识C

​ 电话号码:110,10086,10010

​ 网络身份证:设备Mac+电话+IP

4)数据价值

警察叔叔:只关注是否哪里有违规

AI研究:只关注对AI是否有帮助(阿尔法GO)

所以在海量数据中提取有用的数据最为关键,这就是数据分析第一步要做的事情,数据降噪(数据清洗|数据预处理)

1.4 应用场景

1)个人推荐

根据用户喜好,全平台数据共享推荐

例子:小明在网页上百度了一下跑步机,打开淘宝发现个人推荐已经有跑步机的推荐了,打开京东发现搜索框出现了跑步机三个字,打开抖音刷到广告是京东的跑步机,小米商城推送一条消息,亲,米家走步机了解一下?√,×

2)风控

大数据实时流处理,根据用户行为以及行为模型的支撑,判断该操作是否正常。

支付宝:在有人盗取并修改登录和支付密码,使用陌生的设备登录后,并且进行转账操作,支付宝会禁止操作,并提示风险。

3)成本预测

通过大数据分析,得出近几年商品销售成本以及效益,商家/企业可以根据此项数据进行合理产品策略的转变,来达到企业利润的最大化。

4)气候预测

根据当代收集的数据以及往年采集的数据,预测近几年的气候变化,或者回推古代的气象异常等

5)人工智能

无人汽车:百度、Google、特斯拉

智能助手:小爱、Sire、GoogleAssisant、边小溪、小冰、小娜

1.4 工作方向

1. 业务
电商的推荐系统,智能广告系统,专家系统,智慧城市,智能交通,金融大脑,智慧医疗,灾害预警....
2. 工作方向
大数据运维工程师,大数据开发工程师(实时计算,数据仓库,ETL,基本挖掘),数据分析师(算法)

数据量大/数据时效性|数据处理速度快/数据多样性(维度)/数据有价值-降噪

1.5 分布式

为了解决现实问题,存储和分析,大数据的存储和分析都必须在集群,一是为了拥有足够的容量进行存储,二是能够高效率分分析数据。

通常将跨机器/跨进程/跨虚拟机架构成为分布式架构,因为硬件垂直成本较高且不可控,相比垂直垂直提升成本较高且不可控,相比较垂直提升水平扩展成本较低,能够是的投入和产出趋近于线性。

硬件资源有了?软件实现怎么搞?

二、Hadoop

https://blog.csdn.net/lfq1532632051/article/details/53219558

Hadoop是在2006年雅虎从Nuthc(给予Java爬虫框架)工程中剥离一套分布式的解决方案。该方案参考了Google的GFSMapReduce论文,当时发布的版本称为Hadoop-1.x,并且在2010年雅虎对Hadoop又做了一次升级,该次升级的目的是优化了Hadoop的MapReduce框架,是的Hadoop更加易用,用户只需要少许的配置,就可以使用Hadoop实现海量数据存储和大规模数据集的分析。一个由Apache基金会所开发的分布式系统基本框架。

HDFS:Hadoop Distribute File System

Map Reduce:Hadoop中的分布式计算框架,实现对海量数据并行分析和计算

2.1 Hadoop 生态系统

HDFS:分布式存储系统

MapReduce:并行计算框架

HBase:基于HDFS之上一款NoSQL数据库(名副其实海量数据存储解决方案)

Hive:是一款SQL的解析引擎,可以将SQL翻译成MapReduce任务,将任务提交给MapReduce框架

Flume:分布式日志收集系统,用于收集海量数据,并且存储到HDFS/HBase

Kafka:分布式消息系统,实现分布式系统间解耦和海量数据的缓冲

ZooKeeper:分布式协调服务,用于服务注册中心/配置中心/集群选举/状态检测/分布式锁

2.2 大数据分析方案

Map Reduce:代表基于磁盘离线大数据静态批处理框架-延迟较高30分钟+

Saprk:代表基于内存实时(离线)大数据静态批处理框架-几乎是MapReduce的10-100倍速度

Storm/ Saprk Streaming|Flink|Kafka Stream:实时的流处理框架,达到对记录级别的数据显示毫秒级处理

三、HDFS

3.1 安装(伪集群)

目前使用伪分布式单机进行测试|学习,

1)安装CentOS 64Bit(需要开启Intel 虚化技术)

2)安装JDK 8

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载Java8 Linux 64位
并解压至指定目录

3)配置环境变量

(1)配置用户变量
vi  /root/.bashrc  
--------------------------
export JAVA_HOME=/home/java/jdk1.8.0_181 	#	Java在Linux下的安装路径	
export CLASSPATH=.						
export PATH=$PATH:$JAVA_HOME/bin		#	Path记得加上JAVA_HOME
							
(2)配置主机名和IP映射关系 /etc/hosts
vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=CentOS  #主机名|域名
vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.169.139 CentOS
(3)关闭防火墙
service iptables stop 	#关闭服务
chkconfig iptables off	#关闭开机自起

因为搭建分布式服务之间可能产生相互的调度,为了保证正常的通信,一般需要关闭防火墙

(4)配置主机SSH免密登录认证

SSH是Secure Shell 的缩写,SSH为建立在应用层基础上的安全协议,专为远程登录好会话和其他网络服务提供安全性的协议

基于口令的安全验证:基于口令用户名/密码

基于密钥的安全验证:需要依靠密钥,也就是你必须为你自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后 ,先在该服务器上你的主目录下寻找你的公用密钥,然后把它和你发过来的公用密钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密钥解密再把它发送给服务器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M88TJKXQ-1569943141909)(assets/ssh免密登录.png)]

ssh-keygen -t rsa  			  	#生成
ssh-copy-id HadoopNode00		#复制

4)Hadoop HDFS的安装与配置

参考:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

(1)解压至自定义目录
(2)配置Hadoop的环境变量
vi  /root/.bashrc  
--------------------------
export JAVA_HOME=/home/java/jdk1.8.0_181/ 	#	Java在Linux下的安装路径	
export CLASSPATH=.		
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0/
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin	

HADOOP_HOME环境变量被第三方产品所依赖例如:hbase/Hive/Flume/Spark在集成Hadoop的时候,是通过读取HADOOP_HOME环境确定Hadoop位置

(3)配置ect/hadoop/core-site.xml
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://CentOS:9000</value>
</property>

<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop-2.6.0/hadoop-${user.name}</value>
</property>
(4)配置etc/hadoop/hdfs-site.xml
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

5)启动HDFS

(1)格式化namenode

如果是第一次启动HDFS,需要格式化namenode

hdfs namenode -format    #配置环境变量后,任何位置都可找到hdfs命令

格式化成功后,用户可以看到以下目录结构

[root@CentOS ~]# tree /usr/hadoop-2.6.0/hadoop-root/
/usr/hadoop-2.6.0/hadoop-root/
└── dfs
    └── name
        └── current
            ├── fsimage_0000000000000000000
            ├── fsimage_0000000000000000000.md5
            ├── seen_txid
            └── VERSION
(2)启动HDFS服务
 start-dfs.sh 	#直接复制进命令行,回车即可
 jps 			#可以通过jps命令查看系统中Java进程 一般有DataNode NameNode SecondaryNameNode
 stop-dfs.sh 	#停止HDFS的进程

配置WIN下的hosts文件 C:\Windows\System32\drivers\etc

用户可以通过访问浏览器http://虚拟IP或者域名:50070

3.2 HDFS相关的操作

1)HDFS Shell

Usage: hadoop fs [generic options]
	[-appendToFile <localsrc> ... <dst>]
	[-cat [-ignoreCrc] <src> ...]
	[-checksum <src> ...]
	[-chgrp [-R] GROUP PATH...]
	[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
	[-chown [-R] [OWNER][:[GROUP]] PATH...]
	[-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
	[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
	[-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...]
	[-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
	[-createSnapshot <snapshotDir> [<snapshotName>]]
	[-deleteSnapshot <snapshotDir> <snapshotName>]
	[-df [-h] [<path> ...]]
	[-du [-s] [-h] [-x] <path> ...]
	[-expunge]
	[
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园2.0是高校信息化建设的新阶段,它面对着外部环境变化和内生动力的双重影响。国家战略要求和信息技术的快速发展,如云计算、大数据、物联网等,为智慧校园建设提供了机遇,同时也带来了挑战。智慧校园2.0强调以服务至上的办学理念,推动了教育模式的创新,并对传统人才培养模式产生了重大影响。 智慧校园建设的解决之道是构建一个开放、共享的信息化生态系统,利用互联网思维,打造柔性灵活的基础设施和强大的基础服务能力。这种生态系统支持快速迭代的开发和持续运营交付能力,同时注重用户体验,推动服务创新和管理变革。智慧校园的核心思想是“大平台+微应用+开放生态”,通过解耦、重构和统一运维监控,实现服务复用和深度融合,促进业务的快速迭代和自我演化。 智慧校园的总体框架包括多端协同,即“端”,它强调以人为中心,全面感知和捕获行为数据。这涉及到智能感知设备、超级APP、校园融合门户等,实现一“码”或“脸”通行,提供线上线下服务端的无缝连接。此外,中台战略是智慧校园建设的关键,包括业务中台和数据中台,它们支持教育资源域、教学服务域等多个领域,实现业务的深度融合和数据的全面治理。 在技术层面,智慧校园的建设需要分期进行,逐步解耦应用,优先发展轻量级应用,并逐步覆盖更多业务场景。技术升级路径包括业务数据化、数据业务化、校园设施智联化等,利用IoT/5G等技术实现设备的泛在互联,并通过人工智能与物联网技术的结合,建设智联网。这将有助于实现线上线下一网通办,提升校园安全和学习生活体验,同时支持人才培养改革和后勤管理的精细化。 智慧校园的建设不仅仅是技术的升级,更是对教育模式和管理方式的全面革新。通过构建开放、共享的信息化生态系统,智慧校园能够更好地适应快速变化的教育需求,提供更加个性化和高效的服务,推动教育创新和人才培养的高质量发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值