大数据应用——工程实践III

news2024/11/23 12:15:55


 

 

 

任务一:完成Hadoop集群部署前环境的准备工作

1.1 虚拟机环境准备

1.  安装虚拟机

2.  克隆虚拟机

3.  修改网络配置

4.  修改主机名和映射

5.  关闭防火墙

1.2 安装JDK

1.3 安装Hadoop

1.4 集群配置

1.  编写集群分发脚本xsync

2.  集群部署规划

表 1.1

hadoop101

hadoop102

hadoop103

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

  1.  配置集群

(1)核心配置文件

配置core-site.xml

(2)HDFS配置文件

配置 hadoop-env.sh

配置 hadoop-site.xml

(3)YARN配置文件

配置 yarn-env.sh

配置 yarn-site.xml

(4)MapReduce配置文件

配置 mapred-env.sh

配置 mapred-site.xml

  1. 在集群上分发配置好的Hadoop配置文件
  2. 查看文件分发情况

1.5 群起集群

1.  配置slaves

2.  启动集群

(1)如果集群是第一次启动,需要格式化NameNode

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format

(2)启动HDFS

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/start-dfs.sh

(3)启动YARN

[hadoop@hadoop102 hadoop-2.7.2]$ sbin/start-yarn.sh

(4)使用jps分别查看三台虚拟机的节点

[hadoop@hadoop101 hadoop-2.7.2]$ jps

(5)查看web端

http:192.168.2.122:50070/dfshealth.html#tab-overview

任务二:能够将本地文件存储到集群中

1.  上传小文件

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -put test/word.txt /user/hadoop/input1

  1.  上传大文件

[hadoop@hadoop101 hadoop-2.7.2]$bin/hadoop fs -put/opt/softw

are/hadoop-2.7.2.tar.gz /user/hadoop/input1

3.  查看上传文件位置

任务三:能够从集群中下载文件到本地

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop fs -get /user/hadoop/input1/hadoop-2.7.2.tar.gz test/

任务四:举例练习Hadoop的常用命令

  1.  启动集群命令

(1)启动HDFS

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/start-dfs.sh

(2)启动YARN

[hadoop@hadoop102 hadoop-2.7.2]$ sbin/start-yarn.sh

  1.  格式化NameNode命令

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format

  1.  在HDFS文件系统上创建一个input1文件夹

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -mkdir -p /user/had

oop/input1

  1.  将测试文件内容上传到文件系统上

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -put test/word.txt /user/hadoop/input1

  1.  查看上传的文件是否正确

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls /user/hadoo

p/input1/

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/hado

op/input/word.txt

  1.  运行MapReduce程序

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoo

p/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount/u

ser/hadoop/input1/ /user/hadoop/output

  1.  查看输出结果

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/hado

op/output/*

  1.  将测试文件内容下载到本地

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/hadoop/

output/part-r-00000 ./test/

  1.  删除文件系统上的output文件

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/hadado

op/output

  1. 关闭集群命令

(1)关闭HDFS

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/stop-dfs.sh

(2)关闭YARN

[hadoop@hadoop102 hadoop-2.7.2]$ sbin/stop-yarn.sh

任务五:编写程序,用MR计算单词个数

  1.  在hadoop-2.7.2文件下面创建一个test文件夹

[hadoop@hadoop101 hadoop-2.7.2]$ mkdir test

  1.  在test文件夹下创建一个word.txt文件

[hadoop@hadoop101 test]$ touch word.txt

  1.  编辑word.txt文件

[hadoop@hadoop101 test]$ sudo vi word.txt

  1.  将word.txt文件上传到hdfs文件系统上

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -put test/word.txt /user/hadoop/input

  1.  执行MapReduce程序

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoo

p/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount/u

ser/hadoop/input/ /user/hadoop/output

  1.  查看结果

[hadoop@hadoop101 hadoop-2.7.2]$cat test/part-r-00000

出现问题:在从节点(Slave)执行命令jps后,发现没有运行DataNode。

问题原因:在启动Hadoop之前,进行了多次格式化,导致DataNode的ID发生了变化。

解决方案:格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。(先关闭namenode和datanode进程)或者让 NameNode与DataNode的ID一致 。

我在学习Hadoop过程中的体会和心得如下:

Hadoop是一个庞大的生态系统,包含了很多的组件和工具,学习曲线比较陡峭。初学者最好从基础入手,先学习Hadoop的基本概念和核心组件,如HDFS和MapReduce等。

Hadoop的学习不仅是理论知识的积累,更需要实践和经验的积累。通过实际操作和开发Hadoop应用程序,才能更好地掌握和理解Hadoop的知识和技能。

Hadoop是一个分布式计算框架,需要具备一定的计算机编程技能。特别是对于开发MapReduce应用程序,需要掌握Java编程语言和基本的算法知识。

Hadoop的学习需要耐心和坚持不懈的精神,很多时候需要花费大量的时间和精力去理解和解决问题。但是,只要坚持下去,学习Hadoop的收获也是十分丰富的。

总之,学习Hadoop是一项具有挑战性的任务,需要花费不少时间和精力。但是,通过实践和不断的学习,我们可以掌握Hadoop的核心知识和技能,并为大数据时代做出贡献。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一份老网工珍藏多年的网络配置笔记

我的网工朋友大家好 俗话说得好,好记性不如烂笔头。 学生时代,我们考试前最喜欢看的就是学霸笔记,但工作之后,却没有人会愿意借给你他们的珍藏笔记了。 今天,想给你分享一个老网工分享在网上的精选笔记,…

java 8 新特性讲解Optional类--Fork/Join 框架--新时间日期API--以及接口的新特性和注解

Optional类 到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写…

六、Docker容器数据卷

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、容器数据卷1.1 容器数据卷1.2 怎么用1.3 能干什么 二、实践案例2.1 启动ubuntu容器实例,挂载目录:2.2 在ubuntu容器实例的/tmp/docker_data中…

Android 组件化架构思路

作者:往事一块六毛八 为什么要模块化/组件化 随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加,而且每个模块的代码也变的越来越多,这样发展下去单一…

GNS3报错“unable to open TAP device tap0 (No such file or directory)”解决

系统:MacOS 13.4 GNS3版本:2.2.35.1 Tunnelblick:3.8.8b 起因 在gns3中使用cloud节点创建 tap 接口连接路由器报错: 解决办法 借助 Tunnelblick工具创建 Tap 虚拟网卡。Tunnelblick下载地址: https://tunnelblic…

Kubernetes入门实战课-初始容器

Kubernetes入门实战课-初始容器 文章目录 Kubernetes入门实战课-初始容器课前准备初始容器Docker 的形态Docker 的安装Docker 的架构 容器的本质隔离原因与虚拟机区别隔离是怎么实现的 镜像创建容器镜像:如何编写正确、高效的Dockerfile镜像的内部机制是什么Dockerf…

MySQL数据库连接查询和存储过程

MySQL数据库连接查询和存储过程 一、连接查询1、内连查询2、左连接3、右链接 二、存储过程1、存储过程简介2、存储过程的优点3、语法3.1 参数分类3.2 不加参数的存储过程3.3 带参数的存储过程3.4删除存储过程3.5 事务和存储过程有什么区别? 三、总结1、连接查询2、存…

【Java项目中 利用Redis实现数据缓存】

文章目录 Java SpringBoot项目中 用Redis实现数据缓存1 环境搭建1.1 maven坐标1.2 配置文件1.3 配置类 2 实现缓存短信验证码3 缓存菜品数据4 Spring Cache 缓存框架4.1 Spring Cache介绍4.2 Spring Cache常用注解4.3 Spring Cache使用方式 Java SpringBoot项目中 用Redis实现数…

一文了解Moonbeam互连合约

什么是互连合约Connected Contracts 简单来说,互连合约是通过Moonbeam连接其他区块链上的一个或多个智能合约,其允许目标链上的用户通过跨链消息传递协议在一个应用中操作不同链上的资产或是服务。 通过互连合约方案,不同迥异的公链技术架构…

计算机内部总线详解

文章目录 总线概述地址总线位宽 数据总线位宽CPU性能指标 例题 总线概述 众所周知,总线就是用来帮助连接两个或多个计算机组件,用于数据传输,计算机内部存在三种类型的总线: 地址总线:用于传输指示计算机中的内存或外…

【uboot1】常用指令

文章目录 1.U-Boot命令之常用命令:7.U-Boot命令之EMMC和SD卡操作命令:一般EMMC和SD卡是同一个东西,没特殊说明,统一MMC来代指EMMC和SD卡8.U-Boot命令之内存操作命令:直接对DRAM进行读写操作,uboot命令中的数…

MySQL数据库高级查询语句

MySQL数据库高级查询语句 一、语句SELECT ----显示表格中一个或数个字段的所有数据记录DISTINCT ----不显示重复的数据记录WHERE ----有条件查询AND OR ----且 或IN ----显示已知的值的数据记录BETWEEN ----显示两个值范围内的数据记录通配符 ----通常通配符都是跟 LIKE 一起使…

强化学习从基础到进阶-案例与实践[5]:梯度策略、添加基线(baseline)、优势函数、动作分配合适的分数(credit)

【强化学习原理项目专栏】必看系列:单智能体、多智能体算法原理项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现 专栏详细介绍:【强化学习原理项目专栏】必看系列:单智能体、多智能体算法原理项目实战、相关技巧…

解决关于msvcp120.dll丢失的问题(解决方法)

msvcp120.dll是微软软件包的一部分。它是一个库文件,可用于支持软件运行时,msvcp120.dll的作用是提供计算机程序所需的标准库,msvcp120.dll还负责管理堆内存、线程和异常处理函数等。在使用windows编写的应用程序中,通常需要使用此…

【新星计划·2023】Linux系统的架构和组件讲解

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 本文将讲解Linux系统的架构和组件。 目录 一、Linux系统的架构 1、硬件层 2、内核层 3、进程管理子系统 4、内存管理子系统 5、…

JDBC和数据库应用总结

文章目录 1. JDBC介绍2. 相关jar包引入3. JDBC与数据库基本连接4. JDBC API 详解4.1 Connection 接口4.2 Statement 接口4.3 ResultSet 5. PreparedStatement 详解 1. JDBC介绍 JDBC是一套标准接口,这套接口用于操作所有的数据库,不同的数据库厂商对迎合…

在C#下运行Python:IronPython和Pythonnet

在C#下运行Python可能有不同的原因。其中一些原因包括: 使用C#应用程序中不可用的特定Python功能或库。结合Python的简单性和表现力以及C#的性能和稳健性,完成不同任务。与基于Python的系统或服务进行集成。 为实现Python和C#之间的互操作性&#xff0…

Java日志框架介绍

​今天来聊一聊 Java 日志框架,不管是在项目开发阶段的调试,还是项目上线后的运行,都离不开日志。日志具有处理历史数据、定位程序问题、理解程序运行过程等重要作用。在 Spring 项目开发过程中我们常见的日志框架可能就是 logback、log4j2 和…

Go学习圣经:Go语言实现高并发CRUD业务开发

说在前面: 现在拿到offer超级难,甚至连面试电话,一个都搞不到。 尼恩的技术社群中(50),很多小伙伴凭借 “左手云原生右手大数据”的绝活,拿到了offer,并且是非常优质的offer&#…

APP/小程序嵌入游戏,游戏飞跃的赛道

APP/小程序接入游戏运营已不是新鲜事,然而,其仍具有巨大的发展潜力,尤其是社交类APP,多以加入娱乐游戏增加互动,获取目标客户,同时为产品增加变现渠道,实现双赢。 对于APP嵌入式游戏&#xff0…