大数据架构与概念

所谓大数据,从字面理解就是数据量大,大到传统的单机根本无法存储和运算。hadoop使用分布式存储和分布式计算。在这里不过多的介绍概念,
只想把大数据的架构以及应用讲一下,首先来看一个图
在这里插入图片描述

1.首先要应用大数据,进行数据存储和计算,就必须把这个数据放到大数据的世界里,也就是数据抓取。
外部数据来源可以是关系型数据库oracle ,mysql,非关系型redis等
也可以是一些分布在各处的文件
1.1使用sqoop
其是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
1.2 使用hadoop的命令行
将要导出到hadoop的文件放到namenode中,然后通过如下命令导入
hadoop fs -copyFromLocal a.txt /data/weblogs1
a.txt是namenode机器上的一个没有在hadoop管理下的文件
/data/weblogs1 是 在hadoop建立的一个目录。
1.3 通过java(scala pathon)代码
指定hadoop的ip以及端口号,引用hadoop的依赖就可以操作hdfs了,
也可以导入到hbase以及hive。
1.4 通过flume实时读取数据到hdfs或者HBase中
flume官网:http://flume.apache.org/
另外上面的图写错了,我写成logstash了。
logstash我会在另一个文章里会讲,关于ELK的,一个很帅的日志查询开源架构
E:Elasticsearch L:logstash K:kibana
1.5 通过kafka
这个没有深入研究,以后在补充。
2。通过上边的数据抓取,现在数据已经进入到大数据的世界了,那么我们就可以分析了
2.1 使用mapreduce
讲写好的 mapreduce jar包放到Namenode,通过yarn调度执行即可。
2.2 使用spark
方法同上,mapreduec和spark等的区别自行百度
3. 经过分析后,通常会把这些数据存储到外部世界,在分析的时候就可以存到orace redis mysql了,也可以是一个文件。

下面对hadoop内的一些概念做一些介绍:
HDFS:hadoop的文件系统,相当于windows的NTFS。HDFS最终的目的是把一些个大文件 大数据分布式的存储在不通过的机器上。
Hive:设计的目的是让精通sql技能但是不懂java的人,能够对hdfs进行查询,其也是基于hdfs存储的,即把数据文件映射成一张表,执行的时候,内部会把sql命令转化为mapreduce。
namenode和datanode:
namenode存储的是数据元信息,例如哪些数据存在哪个datanode机器上等等,所以说namenode最重要了,他的数据没了,整个数据就没了找不到了,所有要把它做成高可用。即主备 通过zk选举来做。
datanode也就是最终存储数据的地方,也是任务最终执行的地方。
mapreduce运行的时候有一个就近原则,首先尝试在自己的datanode上执行,然后同机柜 同机房 这样的顺序。
hbase:在hdfs开发的面向列的分布式数据库,只要目的是为了随机读取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值