02hadoop伪分布式搭建

3. 环境安装

3.1 安装方式

  • 单机模式

    只能启动MapReduce

  • 伪分布式

    能启动HDFS、MapReduce 和 YARN的大部分功能

  • 完全分布式

    能启动Hadoop的所有功能

3.2 安装JDK

3.2.1 JDK安装步骤

下载JDK安装包(下载Linux系统的 .tar.gz 的安装包)

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

[root@vm ~]# tar -xf jdk-8u251-linux-x64.tar.gz -C /usr/local/
[root@vm ~]# cd /usr/local/
[root@vm local]# mv jdk1.8.0_251/ jdk8
[root@vm local]# cd
[root@vm ~]# vim .bashrc
...
export JAVA_HOME=/usr/local/jdk8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=.:$JAVA_HOME/bin:$PATH[root@vm ~]# source .bashrc
[root@vm ~]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

3.3 安装Hadoop并配置伪分布式

3.3.1 Hadoop安装配置步骤
  1. 配置免登录认证,避免使用Hadoop时的权限问题

    [root@vm ~]# ssh-keygen -t rsa
    [root@vm ~]# cd ~/.ssh;cat id_rsa.pub >> authorized_keys
    [root@vm .ssh]# ssh localhost
    [root@vm ~]# exit
    

    下载Hadoop 2.10(374M)

    https://archive.apache.org/dist/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz

  2. 解压到 /usr/local 目录中,并将文件夹重命名为 hadoop,

    [root@vm ~]# tar xf hadoop-2.10.0.tar.gz -C /usr/local/
    [root@vm ~]# cd /usr/local
    [root@vm local]# mv hadoop-2.10.0/ hadoop2.10
    #非root用户可能需要执行 chown -R user:user  hadoop2.10
    [root@vm local]# cd /usr/local/hadoop2.10/bin
    [root@vm bin]# ./hadoop version
    Hadoop 2.10.0
    Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
    Compiled by jhung on 2019-10-22T19:10Z
    Compiled with protoc 2.5.0
    From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
    This command was run using /usr/local/hadoop2.10/share/hadoop/common/hadoop-common-2.10.0.jar
    
  3. 设置JAVE_HOME环境变量

    [root@vm bin]# vim  /usr/local/hadoop2.10/etc/hadoop/hadoop-env.sh
    export JAVA_HOME=/usr/local/jdk8 #修改前JAVA_HOME=${JAVA_HOME}
    
  4. 设置Hadoop环境变量

    [root@vm bin]# cd
    [root@vm ~]# vim .bashrc
    #在末尾追加
    export HADOOP_HOME=/usr/local/hadoop2.10
    export CLASSPATH=.:{JAVA_HOME}/lib:${HADOOP_HOME}/sbin:$PATH
    export PATH=.:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH[root@vm ~]# source .bashrc
    
  5. 伪分布式配置,修改2个配置文件(core-site.xml 和 hdfs-site.xml)

    补充如下内容

    [root@vm ~]# vim /usr/local/hadoop2.10/etc/hadoop/core-site.xml
    <configuration><property><!--数据目录配置参数--><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop2.10/tmp</value></property><property><!--文件系统配置参数--><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
    </configuration>
    
    [root@vm ~]# vim /usr/local/hadoop2.10/etc/hadoop/hdfs-site.xml
    <configuration><property><!--副本数量--><name>dfs.replication</name><value>1</value></property><property><!--namenode数据目录--><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop2.10/tmp/dfs/name</value></property><property><!--datanode数据目录--><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop2.10/tmp/dfs/data</value></property>
    </configuration>#/usr/local/hadoop2.10/tmp/dfs/name/current/VERSION记录clusterid,与 /usr/local/hadoop2.10/tmp/dfs/data/current/VERSION记录clusterid 必须是相同的,否则启动失败
    
  6. 配置YARN,修改mapred-site.xml、yarn-site.xml

    补充如下配置

    [root@vm ~]# cd /usr/local/hadoop2.10/etc/hadoop
    [root@vm hadoop]# cp mapred-site.xml.template mapred-site.xml
    [root@vm hadoop]# vim mapred-site.xml<property><name>mapreduce.framework.name</name><value>yarn</value></property>
    
    [root@vm hadoop]# vim yarn-site.xml<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value> #计算方式</property>
    
  7. 执行NameNode格式化

    [root@vm hadoop]# cd /usr/local/hadoop2.10/bin
    [root@vm bin]# ./hdfs namenode -format出现 Storage directory /usr/local/hadoop2.10/tmp/dfs/name has been successfully formatted 则表示格式化成功
    
  8. 启动Hadoop所有组件

    [root@vm bin]# cd /usr/local/hadoop2.10/sbin
    [root@vm sbin]# ./start-all.sh
    启动时可能会出现警告,直接忽略即可,不影响正常使用
    [root@vm sbin]# jps #查看Hadoop相关组件进程
    14513 DataNode
    14882 NodeManager
    14643 SecondaryNameNode
    14789 ResourceManager
    14425 NameNode
    14921 Jps
    

启动成功后,可访问Web页面查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件 http://localhost:50070

  1. 测试 - 将本地文件上传至hdfs

    [root@vm ~]# hadoop fs -put jdk-8u251-linux-x64.tar.gz /
    [root@vm ~]# hadoop fs -ls /
    Found 1 items
    -rw-r--r--   1 root supergroup  195132576 2024-03-10  /jdk-8u251-linux-x64.tar.gz
    #也可以在浏览器中Utilities->Browse the file system查看,及上传下载删除操作
    

4. HDFS Shell操作

hadoop fs -ls / 	#查看HDFS系统目录
hadoop fs -mkdir -p 绝对路径		#创建文件夹
hadoop fs -put    本地文件     HDFS目录		#上传文件
hadoop fs  -get   HDFS文件    本地目录		#下载文件
hadoop fs -rm -r 目录		#删除文件或目录
haddop fs -text 文件绝对路径		#查看文件内容
hadoop fs -mv 源文件 目标目录
hadoop fs -cp 源文件  目标目录

5. MapReduce详解

5.1 MapReduce概述

5.1.1 MapReduce定义
  1. MapReduce是Hadoop提供的一套进行分布式计算的框架,用于大规模数据集(大于1TB)的并行运算
  2. MapReduce将计算过程拆分为2个阶段:Map(映射)阶段和Reduce(规约)阶段
5.1.2 MapReduce编程模型
  • MapReduce分而治之思想

    【示例1】需要在一堆扑克牌(张数未知)中统计四种花色的牌有多少张思路:需要找几个人(比如说四个人),每人给一堆,数出来四种花色的张数,然后汇总【示例2】一堆钞票,请查找出各种面值的钞票分别有多少张?思路:每个人分一部分钞票,数出各种面值的分别有多少张,然后再汇总
    
  • 统计文件中每个单词出现的次数原理图
    在这里插入图片描述

5.2 MapReduce编程实现

5.2.1 相关库安装
sudo pip3 install mrjob
5.2.2 Python实现wordcount案例(了解)
  1. 新建words.txt,并写入如下内容

    hello world
    hello tarena
    I am world and tarena
    I love tarena world
    
  2. python代码实现wordcount

    from mrjob.job import MRJobclass WordCount(MRJob):
    #重写mapper   reducer  方法 完成自己的需求, hive可以实现sql转方法的实现def mapper(self, _, line):#def mapper(self, key, line):# _: key,每行行首的偏移量,一般不使用,这里写成_# line: 每行的内容#重写功能for word in line.split():yield word, 1# shuffle 和 sort 过程不用关注,hadoop自动去做,看不到# hi 1 1# hello 1 1 1 1# world 1def reducer(self, key, values):# key: map shuffle和sort之后的单词# values: 每个单词出现次数的序列yield key, sum(values)if __name__ == '__main__':WordCount.run()
    
  3. 运行MapReduce程序的两种方式

    [1]本地模式(一次启动多个进程)python3 wordCount.py -r local word.txt #本地运行-r local,不会排序[2]Hadoop模式 (比较消耗内存)python3 wordCount.py -r hadoop word.txt	#会排序"I"     2
    "am"    1
    "and"   1
    "hello" 2
    "love"  1
    "tarena"        3
    "world" 3
    
    [1]本地模式(一次启动多个进程)python3 wordCount.py -r local word.txt #本地运行-r local,不会排序[2]Hadoop模式 (比较消耗内存)python3 wordCount.py -r hadoop word.txt	#会排序"I"     2
    "am"    1
    "and"   1
    "hello" 2
    "love"  1
    "tarena"        3
    "world" 3
    

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

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

相关文章

循序渐进丨MogDB 数据库特性之动态数据脱敏机制

数据脱敏是行之有效的数据库隐私保护方案之一&#xff0c;可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化脱敏策略来实现对隐私数据保护的技术&#xff0c;可以在保留原始数据的前提下有效地解决非授权用户对敏感信息访问的问题。当管理员…

稀碎从零算法笔记Day10-LeecCode:赎金信

题型&#xff1a;哈希表、字符串 链接&#xff1a;383. 赎金信 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以…

Cloud-Sleuth分布式链路追踪(服务跟踪)

简介 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败 GitHub - spring-cloud/spring-cloud-sl…

文案高手不能说的秘密,拿来就用的文案素材库

一、素材描述 本套文案素材&#xff0c;大小58.20M&#xff0c;共有43个文件。 二、素材目录 &#xff08;一&#xff09;、一阶文案库 01.1-文案写作行业&#xff1a;年入百万文案高手的赚钱朋友圈&#xff01;.pdf 02.2-个人品牌创业&#xff1a;全网顶流个人品牌大咖都…

WPF(1)的MVVM的数据驱动学习示例

MVVM Model:数据模型、View 界面、ViewModel 业务逻辑处理 项目结构 界面数据绑定 <Window x:Class"WpfApp1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/x…

自然语言发展历程

一、基础知识 自然语言处理&#xff1a;能够让计算理解人类的语言。 检测计算机是否智能化的方法&#xff1a;图灵测试 自然语言处理相关基础点&#xff1a; 基础点1——词表示问题&#xff1a; 1、词表示&#xff1a;把自然语言中最基本的语言单位——词&#xff0c;将它转…

【H5C3】提高课程笔记

一.HTML5新特性 1.语义化标签 &#xff08;★★&#xff09; 以前布局&#xff0c;我们基本用 div 来做。div 对于搜索引擎来说&#xff0c;是没有语义的 <div class“header”> </div> <div class“nav”> </div> <div class“content”> &l…

python:布伊山德U检验(Buishand U test,BUT)突变点检测(以NDVI时间序列为例)

作者:CSDN @ _养乐多_ 本文将介绍布伊山德U检验(Buishand U test,BUT)突变点检测代码。以 NDVI 时间序列为例。输入数据可以是csv,一列NDVI值,一列时间。代码可以扩展到遥感时间序列突变检测(突变年份、突变幅度等)中。 结果如下图所示, 文章目录 一、准备数据二、…

基于Token的身份验证:安全与效率的结合

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

前端文件上传

文件上传方式 前端文件上传有两种方式&#xff0c;第一种通过二进制blob传输&#xff08;formData传输&#xff09;&#xff0c;第二种是通过base64传输 文件相关的对象 file对象其实是blob的子类 blob对象的第一个参数必须是一个数组&#xff0c;你可以把一个file对象放进去…

C语言连接【MySQL】

稍等更新图片。。。。 文章目录 安装 MySQL 库连接 MySQLMYSQL 类创建 MySQL 对象连接数据库关闭数据库连接示例 发送命令设置编码格式插入、删除或修改记录查询记录示例 参考资料 安装 MySQL 库 在 CentOS7 下&#xff0c;使用命令安装 MySQL&#xff1a; yum install mysq…

关于查看 CentOS7虚拟机的 ip地址

1. 启动网卡 1.1 打开网卡配置文件。 vi /etc/sysconfig/network-scripts/ifcfg-eth01.2 启动网卡 修改为下图中的ONBOOTyes 2. 重启网络服务 sudo service network restart3. 查看ip地址 ip addr

MySQL8.0数据库开窗函数

简介 数据库开窗函数是一种在SQL中使用的函数&#xff0c;它可以用来对结果集中的数据进行分组和排序&#xff0c;以便更好地分析和处理数据。开窗函数与聚合函数不同&#xff0c;它不会将多行数据聚合成一行&#xff0c;而是保留每一行数据&#xff0c;并对其进行分组和排序。…

HellaSwag数据集分享

来源: AINLPer公众号&#xff08;每日干货分享&#xff01;&#xff01;&#xff09; 编辑: ShuYini 校稿: ShuYini 时间: 2024-3-10 该数据集是由斯坦福大学研究人员提出的&#xff0c;用于评估NLP模型在常识自然语言推理&#xff08;NLI&#xff09;任务上的性能&#xff0c;…

凌鲨微应用架构

微应用是静态网页加上凌鲨提供的扩展能力而形成的一种应用&#xff0c;主要特点是开发便捷&#xff0c;安全。 微应用架构 组件说明 名称 说明 微应用 webview窗口&#xff0c;显示web服务器上的页面 接口过滤器 根据权限配置,屏蔽非授权接口访问 接口提供者 tauri注入…

一个开源免费的实时AI绘画软件Krita

Krita是由Krita插件ComfyUILCM插件结合的一个实时可预览的AI绘画工具&#xff0c;是一款自由开源、免费的专业级绘画软件&#xff0c;Krita采用的是GNU GPL许可证确保它将一直保持自由开源的本色。 一&#xff1a;搭建Krita创作平台 1、Krita客户端软件&#xff0c;该软件下载…

乡村治理深度解析:策略、挑战与解决方案

毋庸置疑&#xff0c;在今天这个崭新的时代&#xff0c;乡村治理的过程已然向我们发出了挑战。为了迎难而上&#xff0c;我们必须摒弃陈旧观念&#xff0c;勇敢迎接并大胆尝试探索与实践新的思路&#xff01;为了达到这一宏伟目标&#xff0c;我们需要首先廓清如下关键概念&…

新一代电话机器人正式上线

演示账户 代理商演示账户 地址&#xff1a;http://119.23.229.15:8080 用户名&#xff1a;c0508 密码&#xff1a;123456 功能&#xff1a;包含AI外呼管理&#xff0c;话术管理&#xff0c;CRM管理&#xff0c;坐席管理等功能。 管理员演示账户&#xff1a; 地址&#xff1a;h…

拥塞控制的作用和方法

目录 1.概念 2.慢启动 3.快速恢复 4.快速重传 1.概念 TCP数据流的控制. 为了保证可靠传输和提高网络通信质量,内核需要对TCP数据流进行控制 TCP数据流控制的两个方面:超时重传和拥塞控制, 在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等&#xff0c;都是…

复合查询【MySQL】

文章目录 复合查询测试表 单表查询多表查询子查询单行子查询多行子查询IN 关键字ALL 关键字ANY 关键字 多列子查询 合并查询 复合查询 测试表 雇员信息表中包含三张表&#xff0c;分别是员工表&#xff08;emp&#xff09;、部门表&#xff08;dept&#xff09;和工资等级表&…