Hadoop 3.4.0 项目实战

1环境基于 上一篇搭建

高可用分布式集群

2  官方提供MapReduce程序

#评估圆周率

cd  /data/hadoop/share/hadoop/mapreduce/
hadoop  jar  hadoop-mapreduce-examples-3.4.0.jar  pi 2 6

 

 

 3 实例项目分析1

#预分析的文件如,如单词统计

#

#上传文件到hdfs
hdfs dfs  -put word.txt /test/01/
#可以先测试下,在运行计算
[root@master11 01]# cat word.txt   |  python  m.py |python r.py
foo	1
quux	1
labs	1
foo	1
bar	1
quux	1
good	1
six	1
good	1
foo	2
quux	1
labs	1
foo	1
bar	1
quux	1
good	1
six	1
good	1
foo	1
# hadoop jar /data/hadoop/share/hadoop/tools/lib/hadoop-streaming-3.4.0.jar  -D stream.non.zero.exit.is.failure=false -mapper /data/test/01/m.py  -reducer /data/test/01/r.py   -input /test/01/  -output /test/output1/

 

 #拷贝文件到服务器本地

hadoop fs -copyToLocal /test/output1/part-00000 /root/part-00000
#查看
[root@master11 ~]# cat  part-00000 
bar	2
foo	6
good	4
labs	2
quux	4
six	2
[root@master11 01]# cat m.py 
#!/usr/bin/env python  import sys  for line in sys.stdin:  line = line.strip()  words = line.split()  for word in words:  print '%s\t%s' % (word, 1)
[root@master11 01]# cat r.py 
#!/usr/bin/env python  from operator import itemgetter  
import sys  current_word = None  
current_count = 0  
word = None  for line in sys.stdin:  line = line.strip()  word, count = line.split('\t', 1)  try:  count = int(count)  except ValueError:  continue  if current_word == word:  current_count += count  else:  if current_word:  print '%s\t%s' % (current_word, current_count)  current_count = count  current_word = word  if current_word == word:  print '%s\t%s' % (current_word, current_count)

 

4项目实战分析2,nginx日志 IP计数

 

hdfs dfs  -put t.log /test/01/
#执行计算
hadoop jar /data/hadoop/share/hadoop/tools/lib/hadoop-streaming-3.4.0.jar  -D stream.non.zero.exit.is.failure=false -mapper /data/test/01/map.py  -reducer /data/test/01/red.py   -input /test/01/t.log  -output /test/output2/

#下载
hadoop fs -copyToLocal /test/output2/part-00000 /root/part-00000
#查看

 

[root@master11 01]# cat  map.py 
#!/usr/bin/python
import sys
import re
for line in sys.stdin:  ipaddress=re.compile(r'([\d.]*)')match=ipaddress.match(line)  if match:ip=match.group(1)print ' %s\t%s' % (ip, 1)
[root@master11 01]# cat red.py 
#!/usr/bin/python
#-*-coding:UTF-8 -*-
import sys
import os
import string
res = {}
for line in sys.stdin:skey=line[0:-1]if(res.has_key(skey)==False): res[skey]=0res[skey]=res[skey]+1
for key in res.keys():print key+"\t"+str(res[key])

5  欢迎同学们一起交流

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706197.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高通QCS6490开发(四):FV01 AI开发板系统烧录

本期主要介绍如何在FV01开发板上烧录镜像 所用硬件有: FV01开发板和type C线 操作步骤如下: 首先连接电源线开机,然后通过Type C线连接FV01开发板和PC,接线如下: 1)将设备通过如下命令进入到EDL紧急下载…

三.使用HashiCorp Vault工具管理数据库

三.ubuntu安装使用HashiCorp Vault工具管理数据库 HashiCorp Vault 是一个基于身份的秘密和加密管理系统。机密是您想要严格控制访问的任何内容,例如 API 加密密钥、密码和证书。Vault 提供由身份验证和授权方法门控的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全…

Web3与物联网:构建智能连接的数字世界

引言 随着互联网的不断发展,物联网(Internet of Things, IoT)作为一种新兴的信息技术,正在逐渐渗透到我们的生活和工作中。而随着Web3的兴起,物联网将迎来新的发展机遇。本文将探讨Web3与物联网的结合,如何…

废品回收 小程序+APP功能介绍

基于您提供的废品回收应用的开发需求,以下是基于Uniapp(用户端和回收员端)、Thinkphp5(后台)、MySQL(数据库)的综合解决方案的概述。 一、技术栈选择 前端:Uniapp(跨平…

软考--试题六--中介者模式(Mediator)

中介者模式(Meditor) 意图 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 结构 适用性 1、一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关…

C语言性能深度剖析:从底层优化到高级技巧及实战案例分析

C语言以其接近硬件的特性、卓越的性能和灵活性,在系统编程、嵌入式开发和高性能计算等领域中占据着举足轻重的地位。本文将深入探讨C语言性能优化的各个方面,包括底层原理、编译器优化、内存管理和高级编程技巧,并结合多个代码案例来具体分析…

6大部分,20 个机器学习算法全面汇总!!建议收藏!(下篇)

上篇地址:6大部分,20 个机器学习算法全面汇总!!建议收藏!(上篇)-CSDN博客 上篇介绍了 接下来介绍新的内容 半监督学习算法 半监督学习算法结合了监督学习和无监督学习的元素,利用既…

告别手动截图!手把手教您在教程制作中,如何自动生成Windows操作步骤

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 操作演示 📒📝 记录器📝 操作步骤⚓️ 相关链接 ⚓️📖 介绍 📖 🚀 探索Windows的隐藏宝藏 —— 步骤记录器:你的操作,它来记录! 你是否曾经希望有一个助手,能够自动记录下你在电脑上的每一个操作步骤?无论是为…

基于 Spring Boot 博客系统开发(十)

基于 Spring Boot 博客系统开发(十) 本系统是简易的个人博客系统开发,为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。🌿🌿🌿 基于 Spring Boot 博客系统开发(九)&#x1f…

未授权访问:Rsync 未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 4、利用rsync下载任意文件 5、利用rsync反弹shell 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c…

华为OD机试【分奖金】(java)(100分)

1、题目描述 公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么&…

如何下载小米壁纸到本地分享给他人

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 操作方法 📒🚥 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾被小米主题壁纸软件中的精美壁纸所吸引,却苦于无法将其下载到本地或与朋友分享?本文将为你揭晓如何将小米壁纸下载到本地分享给他人! 🏡 演示环境 �…