第二章 关于MapReduce-1

气象数据收集,自行百度吧
MapReduce 的优势在于处理大规模数据集
win10 安装hadoop 3.1.2

win10 安装hadoop 3.1.2

hadoop Linux安装配置(ubuntu 18.04 hadoop3.1.2)
  • 解压 tar.gz
  • 配置JAVA_HOME
  • 配置HADOOP_HOME ,PATH等
 tar -zxvf hadoop-3.1.2.tar

 vim .bashrc
 export JAVA_HOME
 export PATH=$PATH:${JAVA_HOME}/bin
 export HADOOP_HOME
 export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

  • hdoop version 验证是否成功
  • 三种模式
    • 独立(或本地)模式,无需运行任何守护进程,所有程序都在同一个JVM上执行。适合测试和调试MapReduce 程序
    • 伪分布式,运行在本地机器上,模拟一个小规模的集群
    • 全分布式
    • 修改配置文件,参照代码 -- hdoopconfig
  • 配置ssh
ssh-keygen -t rsa -p '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost #测试
  • 格式化HDFS hdfs namenode -format
  • 启动和终止守护进程
    • start-dfs.sh
    • start-yarn.sh
    • mr-jobhistory-daemon.sh start historyserver
    • 终止服务
    • mr-jobhistory-daemon.sh stop historyserver
    • stop-yarn.sh
    • stop-dfs.sh
  • 创建用户目录
    • hadoop fs -mkdir -p /user/$USER
api 版本差异
  • 新api 位于 org.apache.hadoop.mapreduce
  • 新api 大量使用了 Context
  • 新api 通过Job来完成作业控制
示例代码 github

hadoop 权威指代码

横向扩展
  • 数据流
    • 输入数据 MapReduce 程序 配置信息
    • Hadoop 将作业分成若干个任务来执行,并通过 YARN进行调度。如果一个任务失败,它将在另一个不同的节点上自动重新调度运行
    • Hadoop将MapReduce 的输入数据划分成等长的小数据块,成为输入分片。每个分片构建一个map任务
    • 分片大小要合适,一个合理分片大小趋向于HDFS一个块的大小默认128MB
    • Hadoop 在存储有输入数据(HDFS中的数据)的节点上运行map任务,可获得最佳性能,因为不需要使用带宽资源
    • map任务将输出写入本地硬盘而非HDFS,因为是中间结果
    • 混洗?
  • combiner 函数
    • combiner 函数输出作为reduce 函数的输入,可以减少map和reduce任务之间的数据传输
    • combiner的规则制约着可用的函数类型
    • 不能取代reduce ,例如求平均值得程序就不能用combiner
  • hadoop Streaming
    • 允许使用非java 语言开发MapReduce

转载于:https://my.oschina.net/mrq/blog/3098661

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值