`
Tristan_S
  • 浏览: 383611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hadoop_3

 
阅读更多
云计算
概念
   广义上的云计算包括所有对外提供服务系统。 类似webservice,SOA等概念
   狭义上的是指分布式计算和分布式存储。这里说的都是狭义上的云计算
云计算 vs 网格计算
    网格计算将作业分散到集群的各台机器上,这些机器访问共享的文件系统。(就是分布式计算)
云计算 如果需要处理的数据量过大(上百G的数据), IO会成为主要瓶颈,这时候分布式存储的优势就能体现出来了

Hadoop
Hadoop已经发展成一个生态体系, 从计算模型,到文件存储,再到数据库都有其具体的实现。所以很难被取代
核心  分布式计算模型MapReduce/ 分布式存储模型 HDFS
外围工具  Hive Mahout Pig
数据库导入文件系统工具 sqoop
数据库 HBase Zookeeper

场景
互联网网站统计每个IP的访问次数

MapReduce流程
【数据输入】 按行分割,输出<key, value> key为字节数,value为该行的字符串
【map】 业务处理 用空格来分隔word,输出<word,1>
【shuffle洗牌】  系统自动合并key值,将value值放入value_list中 输出<key, value_list> 注: 会自动排序
Map端的shuffle包括 partition sort spill分隔/combine
Reduce端的shuffle包括 merge
【reduce】 业务处理 输出结果
【其他】
Combiner 就是将Map端的值做些处理, 可以将reduce的代码写在这里,那么reduce端得代码只要负责输出文件

Partitioner  针对多个Reducer,用来决定向哪个reduce发送。
场景: 按照月份将Reducer分为12个, 计算每个月ip访问的数量(有点像Oracle的分区表)
注意: 该例子只能用命令在cmd下执行, 无法用eclipse插件

Counter 一些简单的应用可以只使用Map, 将结果通过Counter统计结果并输出到文件, 不需要使用Reducer

搭建本地环境
在本地用cygwin来搭建环境
在.bash_profile中加入
export JAVA_HOME=/usr/java/jdk1.6.0_02
export PATH=$PATH:/usr/java/jdk1.6.0_02/bin
export PATH=$PATH:/opt/hadoop/bin
加入path后可以不用./的方式来启动命令了
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
hadoop-daemon.sh start jobtracker
hadoop-daemon.sh start tasktracker

访问路径
http://localhost:50070/dfshealth.jsp
http://localhost:50030/jobtracker.jsp


在eclipse中运行
出现内存不足的问题
设置其为Java运行,并设置VM参数
将input和output改成hdfs://localhost:9000开头

外围工具  Hive Mahout Pig
假设有一个场景是多表关联的。
Movie.txt (movie_id, movie_name)有3900条记录
Movierating.txt (user_id, movie_id, scores)有上百万条记录
问题1 找出user_id为6037 6038 6039 评分最高的电影
问题2 找出最受欢迎的10部电影
如果用纯mapreduce来做, 需要构建两个对象 将TXT文件的内容根据空格分隔来读入,再对这两个对象循环操作, 而且还要融入mapreduce的算法。
Hive 可以将两个txt文件模拟成两张表, 用类sql的方式来实现查询。并且其底层实现了hdfs,可以和hadoop无缝对接
Mahout 集成一系列的算法, 可以用命令行的方式来调用。 值得好好研究下。
Pig有一套自己的语法来处理,没有Hive方便。

Sqoop 数据库导入文件系统工具

HBase基于分布式文件系统的Nosql数据库
前景 在国外HBase是最火爆的Hadoop组件。Facebook,ebay,yahoo,淘宝,华为, 阿里, 百度, 腾讯等公司都有大量的使用。 MongoDB在小公司使用的很多,但是在大公司中很少用。
特点
易修改  关系型数据库需要添加一个字段的话需要停机, Hbase只有在修改列族时才需要停机
水平伸缩(Region按行分,mongo分片, mysql用分库分表,oracle表分区)
缺点  没有二级索引(无法按某列来查), 运维(备份还原), 稳定性不足。

本地环境
单机运行 需要修改
hbase-env.sh
export CLASSPATH=/opt/hbase/lib/zookeeper-3.4.3.jar:$CLASSPATH
export HBASE_CLASSPATH=/opt/hbase/lib
export JAVA_HOME=/usr/java/jdk1.6.0_02/


淘宝中使用
1,实时类型
实时推荐(天猫精选,根据最近用户访问的数据推荐不同的内容), 实时计费(广告)
2, 大数据量类型
历史类(已买到的宝贝,没有3个月的限制了/ 支付宝最近交易) 数据是离线去写,在线去读。
长期累积的数据(卖家档案)
阿里旺旺 聊天记录
3, 二次分析
卖家魔方(一个产品在某个地区的销量)

不适用于交易流程等不能失败的业务
适用于  瞬间写入量很大(每秒10MB)/大数量的增长(NOSQL)


mahout
频繁模式挖掘  尿片与啤酒的故事
聚类分类      图书馆分类/路透社新闻分类
推荐引擎      预测人们的喜好
mahout可以单独使用,但如果基于hadoop的话,能利用其大数据的优势。

企业应用实例
Yahoo
主页个性化
反垃圾邮件
网页搜索
广告定位

eBay
商品信息

facebook
用户 消息机制
管理员 统计信息
分享到:
评论

相关推荐

    pc机连接集群的HADOOP_HOME

    在IT行业中,Hadoop是一个广泛使用的开源框架,用于存储和处理大数据。Hadoop分布式文件系统(HDFS)和MapReduce是其核心组件,允许数据在集群中的多台服务器上进行分布式计算。标题“pc机连接集群的HADOOP_HOME”指...

    hadoop_join.jar.zip_hadoop_hadoop query_reduce

    在大数据处理领域,Hadoop和MapReduce是两个至关重要的概念,它们构成了大数据处理的基础框架。本文将深入探讨如何使用Hadoop和MapReduce进行高效的Join查询,并解析如何通过`hadoop_join.jar`这个工具来实现这一...

    hadoop_hadoop-2.7.2-hbase-jar.rar linux下包

    3. **MapReduce**:MapReduce是Hadoop处理数据的核心计算框架。它将大任务拆分成小任务,并在集群中的多个节点上并行处理,然后汇总结果。 4. **HBase**:HBase是一个NoSQL数据库,基于Google的Bigtable设计,运行...

    Hadoop_进行分布式并行编程.doc

    Hadoop_进行分布式并行编程.doc Hadoop_进行分布式并行编程.doc

    hadoop_dll_winutil_2.7

    3. 可能还有其他支持库,如`jvm.dll`,它们是Java虚拟机的一部分,确保Hadoop在Windows上的稳定运行。 4. 配置文件和文档,帮助用户理解如何正确配置和使用这些库。 在实际应用中,用户需要将这些DLL文件放置在系统...

    hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_

    3. **Environment.class**: 这可能涉及到 Hadoop Streaming 中的任务环境设置,包括配置参数和系统变量,这些对运行脚本的上下文非常重要。 4. **HadoopStreaming.class**: 这个类是 Hadoop Streaming 的核心,它...

    hadoop_test.rar_API_client_hadoop test 作用_hadoop test_hadoop-te

    3. **错误处理和容错**:学习如何处理API调用中可能出现的异常,并理解HDFS的自动故障恢复机制。 4. **性能调优**:探究如何通过调整参数来提高HDFS的读写性能。 5. **MapReduce集成**:如果测试中包含MapReduce任务...

    hadoop_spark_数据算法

    hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法

    hdfs-webdav.rar_hadoop_hadoop webdav_hadoop 系统_hadoop2.0 d_hdfs

    3. hadoop_系统:暗示可能涉及Hadoop集群的管理和配置。 4. hadoop2.0_d:指的是Hadoop的2.0版本,这个版本引入了许多重要的改进和特性。 5. hdfs:Hadoop Distributed File System,是Hadoop的核心组件,负责数据的...

    hadoop_dll_winutil_2.7.1

    标题 "hadoop_dll_winutil_2.7.1" 指的是 Apache Hadoop 的一个特定版本(2.7.1)的 Windows 实用工具包,这个包包含了在 Windows 上运行 Hadoop 所必需的动态链接库(DLL)文件。Hadoop 是一个开源的分布式计算框架...

    windows连接Hadoop需要的文件winutils和hadoop_dll

    在Windows环境下与Linux上的Hadoop集群进行交互时,由于操作系统之间的差异,往往需要特定的工具和库文件。这里提到的"windows连接Hadoop需要的文件winutils和hadoop_dll"正是为了解决这个问题。这两个文件是针对...

    MASTERING_HADOOP_3.pdf

    在最新版本的《Mastering Hadoop 3》中,读者可以学习到Hadoop 3的最新特性和案例实战。这本书不仅介绍了Hadoop的核心概念,还通过案例演练,让读者能够亲自动手,实现大数据处理和分析,从而解锁独特的商业洞察力。...

    hdfs.rar_hadoop_hadoop ubuntu_hdfs_分布式系统_基于hadoop

    此外,HDFS的副本策略是其高可用的关键,通常默认设置为3份副本,以防止单点故障。 为了充分利用Hadoop和HDFS,开发者和管理员需要掌握如何规划集群、监控系统状态、进行故障排查,以及如何通过MapReduce或Spark等...

    hadoop_class-master.zip_Master Class_hadoop_社交

    【标题】"hadoop_class-master.zip_Master Class_hadoop_社交" 涉及到的核心知识点是Hadoop在处理社交网络数据时的应用,特别是在社交网络分析中的三角形统计和倒排索引的实现。 Hadoop是一个开源的分布式计算框架...

    hadoop2.7_winutils_exe和hadoop_dll

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7是其一个重要的版本,提供了许多改进和优化。在Windows操作系统上搭建Hadoop环境时,由于默认不支持,我们需要借助一些...

    hadoop_dll2.6.0_64bit_windows_dll_hadoop_

    3. 可能还包括配置文件,如hadoop-env.sh或core-site.xml,它们配置了Hadoop的运行环境。 4. 以及其他的辅助文件,如日志配置、安全证书等。 为了在Windows上成功部署和运行Hadoop,你需要: 1. 安装Java开发套件...

    hadoop2.7.x_winutils_exe&&hadoop;_dll

    3. **权限设置**:winutils.exe用于处理HDFS权限,因此可能需要管理员权限才能执行某些操作。在运行winutils.exe之前,可能需要以管理员身份打开命令提示符。 4. **JDK兼容性**:确保安装了与Hadoop 2.7版本兼容的...

    hadoop_hello_world

    3. `hadoop.conf`:可能包含配置文件,用于设置Hadoop作业的参数,如输入和输出路径、内存分配等。 4. `pom.xml`:如果是Maven项目,这个文件定义了项目的依赖和构建规则。 5. `README.md`:可能包含项目说明和运行...

Global site tag (gtag.js) - Google Analytics