一、集群搭建
1)安装操作系统以及免密环境
所用工具,如图1所示:

图1 vm虚拟机和镜像文件
[1]新建虚拟机,点击下一步,如图1-1-1所示。

图1-1-1 新建虚拟机
[2]选择“稍后安装操作系统”,点击下一步,如图1-1-2所示。

图1-1-2 手动安装Linux
[3]选择“客户机操作系统“为Linux,版本选择CentOS8 64位 如图1-1-3所示。

图1-1-3 选择操作系统
[4]命名虚拟机 如图1-1-4所示。

图1-1-4 命名虚拟机
[5]指定磁盘容量,使用默认就行,如图1-1-5所示。

图1-1-5 指定磁盘容量
[6]修改虚拟机配置,如图1-1-6所示。

图1-1-6 修改虚拟机配置
[6]使用ISO镜像文件,如图1-1-7所示

图1-1-7 使用镜像文件
[7]点击完成,到这虚拟机就完成创建了,如图1-1-8所示。

图1-1-8 完成创建
[9]启动虚拟机,选择Install CentOS Linux 8,如图1-1-9所示

图1-1-9 启动虚拟机
[10]确定虚拟机所使用的语言,点击继续,如图1-1-10所示。

图1-1-10 使用语言
[11]配置安装目标位置,不做任何改动,点击完成,如图1-1-11所示。

图1-1-11 配置安装目标位置
[12]配置网络和主机名,打开以太网,如图1-1-12所示。

图1-1-12 配置网络和主机名
[13]点击开始安装 如图1-1-13所示。

图1-1-13 开始安装
[14]设置登录密码,可以不用设置登录用户,默认用户root,如图1-1-14所示。

图1-1-14 设置登录密码
[15]点击重启虚拟机,如图1-1-15所示。

图1-1-15重启虚拟机
slave01和slave02操作步骤和上面一致

[16]安装jdk,如图1-1-16所示
yum install -y java-1.8.0-openjdk.x86_64

图1-1-16 完成jdk下载
根据上述设计构建集群免密环境如下:
—————————————————配置master节点———————————————
1)更改hostname
hostnamectl set-hostname master

2)修改网络地址
先通过ip addr查看系统的ip地址

然后通过ip route确定网关
vi /etc/sysconfig/network-scripts/ifcfg-ens??
??是根据系统分配的网络适配器(网卡)而定,可以用tab补全文件名
将文件内容dhcp修改为static
增加如下信息
IPADDR=192.168.???.100
NETMASK=255.255.255.0
GATEWAY=192.168.???.2
DNS1=192.168.???.2

3)配置包含所有节点名称的hosts作为通信依据
vi /etc/hosts
192.168.???.100 master
192.168.???.201 slave01
192.168.???.202 slave02

4)生成免密所需公钥
ssh-keygen -t rsa

—————————————————配置slave01—————————————————
1)更改hostname
hostnamectl set-hostname slave01

2)修改网络地址
vi /etc/sysconfig/network-scripts/ifcfg-ens??
??是根据系统分配的网络适配器(网卡)而定,可以用tab补全文件名
将文件内容dhcp修改为static
增加如下信息
IPADDR=192.168.???.201
NETMASK=255.255.255.0
GATEWAY=192.168.???.2
DNS1=192.168.???.2

3)生成免密所需公钥
ssh-keygen -t rsa

4)将公钥传输给master节点
scp -r /root/.ssh/id_rsa.pub root@master:/root/.ssh/slave01.pub
——————————————————配置slave02————————————————
1)更改hostname
hostnamectl set-hostname slave02

2)修改网络地址
vi /etc/sysconfig/network-scripts/ifcfg-ens??
??是根据系统分配的网络适配器(网卡)而定,可以用tab补全文件名
将文件内容dhcp修改为static
增加如下信息
IPADDR=192.168.???.202
NETMASK=255.255.255.0
GATEWAY=192.168.???.2
DNS1=192.168.???.2

3)生成免密所需公钥
ssh-keygen -t rsa

4)将公钥传输给master节点
scp -r /root/.ssh/id_rsa.pub root@master:/root/.ssh/slave02.pub
————————————————生成公钥链——————————————————
在master节点上创建钥匙链
1)创建钥匙链
cat id_rsa.pub >> authorized_keys
cat slave01.pub >> authorized_keys
cat slave02.pub >> authorized_keys

2)将authorized_keys发送到slave01和slave02
scp -r /root/.ssh/authorized_keys root@slave01:/root/.ssh/authorized_keys

scp -r /root/.ssh/authorized_keys root@slave02:/root/.ssh/authorized_keys

—————————————————¬¬¬¬—测试环境—————————————————
若在master节点,则可通过如下指令测试是否配置成功
ssh slave01
若成功,则无需输入密钥
退出登录执行
exit

2)安装Hadoop以及相应配置
[1] 安装wget,如图1-2-1所示。

图1-2-1 安装wget
[2] 下载hadoop,如图1-2-2所示。
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.5/

图1-2-2 下载Hadoop
[3] 使用 tar -xzvf Hadoop-3.3.0.tar.gz命令解压Hadoop,如图1-2-3所示。
cd /home
tar -xzvf hadoop-3.3.0.tar.gz

图1-2-3 解压Hadoop
[4] 使用yum install -y java-1.8.0-openjdk.x86_64命令安装Hadoop所需的Java环境,如图1-2-4所示。

图1-2-4 安装JDK
[5]配置环境变量并激活环境变量,如图1-2-5所示。

图1-2-5 配置并激活环境
[6]配置hadoop-env.sh,如图1-2-6所示。

图1-2-6 配置hadoop-env.sh
[7]配置core-site.xml,如图1-2-7所示。

图1-2-7 配置core-site.xml
[8]配置hdfs-site.xml,如图1-2-8所示。

图1-2-8 配置hdfs-site.xml
[9]配置mapped-site.xml,如图1-2-9所示。

图1-2-9 配置mapped-site.xml
[10]配置yarn-site.xml,如图1-2-10所示。

图1-2-10 配置yarn-site.xml
[11]配置workers,如图1-2-11所示。

图1-2-11 配置workers
至此,Hadoop安装配置完成。

3)Hadoop自带wordcount实例测试
[1]创建HDFS空间,如图1-3-1所示。

图1-3-1 创建HDFS空间
[2]进行wordcount,如图1-3-2所示。

图1-3-2 wordcount
[3]进计算完成,如图1-3-3及图1-3-4所示。

图1-3-3 计算结果

图1-3-4 输出结果
至此,Hadoop自带wordcount实例测试完成。

二、大规模数据分析
1)数据的来源以及意义
该数据集是由 Allen Institute for AI 与Chan Zuckerberg Initiative,乔治敦大学安全与新兴技术中心,微软研究院以及美国国立卫生研究院国家医学图书馆与美国白宫办公室合作创建的科技政策。涵盖目前所有的冠状病毒文献,旨在通过其丰富的元数据和结构化全文本来促进文本发掘和信息检索系统的开发;汇聚计算机界,生物医学界专家和决策者,以寻求有效的COVID-19的治疗和管理政策。
2)数据的详细介绍
CORD-19的资源超过47,000篇学术文章,其中包括36,000篇以上的全文,涉及COVID-19,SARS-CoV-2和相关的冠状病毒。这份数据集包括csv元数据和json文件,可以用于信息检索,信息抽取,知识图谱,问答对,预训练模型,摘要,推荐,蕴含,辅助文献综述,增强阅读等多个方向。

3)数据分析的目标以及思路
数据分析的目标:统计2020年5月1日,12日,19日,26日到2020年5月31日title中出现词频数,分析出五月份热度比较高的几个词。
分析思路,以及分析的方法:需要以title中的单词作为Key,它的个数作为value值,通过MapReduce方法将出现的单词个数做出累计和,统计每个单词出现次数的情况。

4)数据分析结果展示
将处理过后的数据,通过可视化的方式展示出来,并配合文字描述,说明数据表现的原因。

通过分析这几个比较高频的词汇得知SARS病毒是危害健康的,SARS病毒应该是以DNA为遗传物质的,SRAS病毒在中国应该大规模发生过,SARS病毒应该是有着方法可以治愈的。
5)附上Java部分的代码
import java.io.IOException;

import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class CovAnalysis {

static class TempMapper extendsMapper<LongWritable, Text, Text, IntWritable> {public static final IntWritable one = new IntWritable(1);public static Text word = new Text();@Overridepublic void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {String line = value.toString();String[] tmp = line.split(",");if(tmp.length>3){String itr_tmp=tmp[3].toString().replaceAll("[^a-zA-Z ]"," ");StringTokenizer itr = new StringTokenizer(itr_tmp);while (itr.hasMoreTokens()) {word.set(itr.nextToken());context.write(word, one);}}    }}static class TempReducer extendsReducer<Text, IntWritable, Text, IntWritable> {private IntWritable result = new IntWritable();@Overridepublic void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable value : values) {sum += value.get();}result.set(sum);context.write(key, result);}
}public static void main(String[] args) throws Exception {String dst = "hdfs://master:9000/cov";String dstOut = "hdfs://master:9000/output-cov5";Configuration hadoopConfig = new Configuration();Job job = new Job(hadoopConfig);FileInputFormat.addInputPath(job, new Path(dst));FileOutputFormat.setOutputPath(job, new Path(dstOut));job.setMapperClass(TempMapper.class);job.setReducerClass(TempReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);job.waitForCompletion(true);System.out.println("Finished");
}

}

大数据hadoop集群运算相关推荐

  1. 大数据Hadoop集群搭建

    大数据Hadoop集群搭建 一.环境 服务器配置: CPU型号:Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz CPU核数:16 内存:64GB 操作系统 版本:CentO ...

  2. 大数据Hadoop集群中常用的任务调度框架

    在大数据的集群环境中,经常用到的任务调度框架有如下几个,根据公司的业务的需要选择适合自己的业务调度的框架, 调度框架anzkaban,crontab(Linux自带).zeus(Alibaba).Oo ...

  3. 大数据 -- Hadoop集群环境搭建

    首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...

  4. 大数据+Hadoop集群学习

    文章目录 1.课前资料 2.课程整体介绍 3.大数据介绍 什么是大数据? 为什么要学习大数据? 大数据相关技术 海量数据存储 海量数据清洗 海量数据处理 4.集群环境准备 4.1准备虚拟机 4.2修改 ...

  5. [喵咪大数据]Hadoop集群模式

    既然是大数据无论存储和处理都需要相当大的磁盘或者是处理的资源消耗,那么单机肯定是满足不了我们的需求的,所以本节我们就来了解Hadoop的集群模式搭建,在集群情况下一同配合处理任务分发,存储分担等相关的 ...

  6. 大数据-Hadoop集群测试

    一.通过UI界面查看Hadoop运行状态 1.查看HDFS集群状态 在浏览器里访问http://master:9870 不能通过主机名master加端口9870的方式,原因在于没有在hosts文件里I ...

  7. 大数据——Hadoop集群调优

    注意:本文使用的Hadoop版本为3.2.1版本 目录 一.HDFS多目录存储 1.1 生产环境服务器磁盘情况 1.2 在hdfs-site.xml文件中配置多个目录,需要注意新挂载磁盘的访问权限问题 ...

  8. 大数据 -- Hadoop集群搭建

    Hadoop集群搭建 1.修改/etc/hosts文件 在每台linux机器上,sudo vim /etc/hosts 编写hosts文件.将主机名和ip地址的映射填写进去.编辑完后,结果如下: 2. ...

  9. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第五讲Hadoop图文训练课程:解决典型Hadoop分布式集群环境搭建问题

    王家林的"云计算分布式大数据Hadoop实战高手之路---从零开始"的第五讲Hadoop图文训练课程:解决典型Hadoop分布式集群环境搭建问题 参考文章: (1)王家林的&quo ...

最新文章

  1. 使用vim保存权限不够的文件
  2. python处理表格-python如何处理表格?
  3. java+queue+se_「013期」JavaSE面试题(十三):多线程(3)
  4. echart triggeron设置两个方法_6个超实用方法:打造PPT立体空间感
  5. C++项目參考解答:累加求圆周率
  6. day21 java的日期类
  7. 小程序 背景图 repeat_简单可爱的微信聊天背景图片
  8. 0-1背包(动态规划)
  9. VC++程序设计与应用--数据库编程
  10. 矩阵计算器——大一c++大作业回顾
  11. HighNewTech:Gartner发布2021年新兴技术成熟度曲线和2022年重要战略技术趋势(信任、增长和变革三大新兴技术趋势)解读
  12. 微信小号来了,微信小号怎么申请(内附微信小号注册说明)
  13. epoll精粹二 - Linux C++网络编程(二十三)
  14. 数年沉寂之后,VR/AR产业开始起飞!
  15. OLEDB简介,OLEDB与ODBC的关系
  16. oracle常用SQL语句(汇总版)
  17. 3、JVM JDK 和 JRE
  18. 工具集电子书等4G资料免费分享(IT 信安菜鸟入门必备)
  19. 5个流水灯c语言程序,五种编程方式实现流水灯的单片机C程序
  20. 知道创宇发布重磅战略方案,构建持续交火的实战化防御体系

热门文章

  1. 20170322埃森哲电话面试
  2. 【概率深度学习简介】
  3. Robot Framework作者建议如何选择自动化测试框架
  4. 云计算存储之Ceph是什么?
  5. SWE_Browser编译
  6. POST请求和GET请求如何传递和接收解析参数
  7. UE4 C++入门之路1-C++和蓝图的关系和介绍
  8. 数睿数据资讯 |《洞见・大咖说》对话数睿数据李争辉 探讨400%高增长背后的关键抓手
  9. dvi转vga接口图及相关接法
  10. esp01s ntp TM1637 数码管时钟源代码