【分布式计算框架】Hadoop伪分布式安装

news2024/9/29 19:30:45

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言

文章目录

  • Hadoop伪分布式安装
    • 一、实验目的
    • 二、实验环境
    • 三、实验内容
      • 基本任务1:安装Linux虚拟机(至少5台)
        • (1)BIOS设置(开启虚拟化)
        • (2)配置网络(/etc/sysconfig/network-scripts/ifcfg-eth0)
        • (3)关闭防火墙
        • (4)关闭selinux(/etc/selinux/config)
        • (5)删除/etc/udev/rules.d/70-persistent-net.rules //便于克隆,该文件也有网卡地址映射
        • (6)拍摄快照,克隆新的虚拟机 ,启动新虚拟机,MAC地址就会改变
        • (7)重复第2步,配置4台虚拟机IP
        • (8)配置主机名(/etc/sysconfig/network)
        • (9)配置映射(/etc/hosts)
        • (10)验证 在20191909node01上 ping 20191909node02 或 ping 192.168.87.34
        • (11)编辑 C:\WINDOWS\System32\drivers\etc\hosts //windows应用程序也可以访问主机名
        • (12) 最后结果
      • 基本任务2:hadoop伪分布式安装
        • (1)安装java //可以通过xftp传输安装文件到/root/software/
        • (2)设置ssh免密钥登录
        • (3)安装Hadoop
        • (4)修改配置文件
        • (5) 格式化
    • 四、出现问题及解决方案
    • 五、实验结果
        • (1)启动集群
        • (2)通过浏览器查看信息
        • (3)练习上传文件
    • 六、实验思考题

Hadoop伪分布式安装

一、实验目的

  • 安装Linux虚拟机(至少五台)
  • hadoop伪分布式安装

二、实验环境

  • centos 6.5

三、实验内容

基本任务1:安装Linux虚拟机(至少5台)

(1)BIOS设置(开启虚拟化)

image-20240228082345976

image-20240228082405234

image-20240228082418489

image-20240228082533919

image-20240228082712362

image-20240228082722403

image-20240228082732295

image-20240228082744512

image-20240228082835432

image-20240228082843767

image-20240228082922275

image-20240228082958319

image-20240228083009758

image-20240228083019879

image-20240228083144504

image-20240228083321183

image-20240228083352564

image-20240228083408905

image-20240228083425405

image-20240228083512038

image-20240228083534858

image-20240228083558205

image-20240228083621170

image-20240228083741251

image-20240228083814399

image-20240228083834857

image-20240228084130887

image-20240228084230649

image-20240228084312597

image-20240228085209127

image-20240228085227274

image-20240228085535840

image-20240228085659930

image-20240228085733771

image-20240228085749905

image-20240228085906535

image-20240228085920852

image-20240228090027652

image-20240228090223718

(2)配置网络(/etc/sysconfig/network-scripts/ifcfg-eth0)

image-20240228091521671

image-20240228091812642

image-20240228092629562

image-20240228092710387

image-20240228092832142

(3)关闭防火墙

image-20240228093316965

(4)关闭selinux(/etc/selinux/config)
 SELINUX=disabled        //将enforcing改为disabled

image-20240228093624485

(5)删除/etc/udev/rules.d/70-persistent-net.rules //便于克隆,该文件也有网卡地址映射

rm -f /etc/udev/rules.d/70-persistent-net.rules

image-20240228094903292

(6)拍摄快照,克隆新的虚拟机 ,启动新虚拟机,MAC地址就会改变

image-20240228095321424

image-20240228095344711

image-20240228095406877

image-20240228095440880

image-20240228095604604

重复创建5台虚拟机

(7)重复第2步,配置4台虚拟机IP

image-20240228102145388

(8)配置主机名(/etc/sysconfig/network)
 hostname=20191909node0x   (要求:主机名=学号+序号)

image-20240228102355763

(9)配置映射(/etc/hosts)
192.168.87.33 20191909node01 //初始机作备用
192.168.87.34 hxq20191909node02
192.168.87.35 hxq20191909node03
192.168.87.36 hxq20191909node04
192.168.87.37 hxq20191909node05
192.168.87.38 hxq20191909node06

image-20240228103317064

(10)验证 在20191909node01上 ping 20191909node02 或 ping 192.168.87.34

image-20240228103529123

(11)编辑 C:\WINDOWS\System32\drivers\etc\hosts //windows应用程序也可以访问主机名
192.168.87.33 20191909node01 
192.168.87.34 hxq20191909node02
192.168.87.35 hxq20191909node03
192.168.87.36 hxq20191909node04
192.168.87.37 hxq20191909node05
192.168.87.38 hxq20191909node06

image-20240228104245548

(12) 最后结果

image-20240228111135900

基本任务2:hadoop伪分布式安装

(本例在20191909node01上搭建伪分布式)

(1)安装java //可以通过xftp传输安装文件到/root/software/

1.1 解压

rpm -i jdk-7u67-linux-x64.rpm  //解压到/usr/java/jdk1.7.0_67

image-20240228154525995

1.2 配置环境变量

vi + /etc/profile   //通过. /etc/profile  或  source /etc/profile使其生效

export JAVA_HOME=/usr/java/jdk1.7.0_67
PATH=$PATH:$JAVA_HOME/bin

//下面未配置
export HADOOP_HOME=/opt/sxt/hadoop-2.6.5
PATH=$PATH:$JAVA_HOME:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HBASE_HOME=/opt/sxt/hbase-0.98.12.1-hadoop2
PATH=$PATH:$HBASE_HOME/bin

export ZOOKEEPER_HOME=/opt/sxt/zookeeper-3.4.6
PATH=$PATH:$ZOOKEEPER_HOME/bin

export HIVE_HOME=/opt/sxt/apache-hive-1.2.1-bin
PATH=$PATH:$HIVE_HOME/bin

image-20240228154815947

image-20240228154747731

image-20240228155032048

(2)设置ssh免密钥登录

rw-r–r-- 1 root root 1202 Nov 1 2019 authorized_keys
-rw------- 1 root root 668 Nov 1 2019 id_dsa
-rw-r–r-- 1 root root 601 Nov 1 2019 id_dsa.pub

cd /root/.ssh/ //如果没有.ssh目录,可以登录localhost自动产生

image-20240228155406355

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa   

cat id_dsa.pub >> authorized_keys           //将id_dsa.pub公钥文件追加到验证文件authorized_keys

image-20240228160250545

// 设置.ssh目录权限 chmod 700 -R .ssh

//第二种方法:

ssh-keygen

ssh-copy-id -i id_rsa.pub node01

(3)安装Hadoop

3.1 传输安装文件到/root/software

image-20240228160725618

3.2 建立解压目的目录

mkdir -p /opt/20191909

image-20240228160752664

3.3 解压

tar xf hadoop-2.6.5.tar.gz -C /opt/20191909/  

image-20240228160919114

3.4. 配置环境变量 //sbin目录存放系统级别脚本,bin目录存放一般命令

vi + /etc/profile

export HADOOP_HOME=/opt/2019109/hadoop-2.6.5
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

image-20240228165342644

image-20240228165521595

(4)修改配置文件

文件所在目录:/opt/20191909/hadoop-2.6.5/etc/hadoop

  1. 修改hadoop-env.sh,mapred-env.sh,yarn-env.sh

     export JAVA_HOME=/usr/java/jdk1.7.0_67
    

image-20240228162234972

  1. 修改core-site.xml
<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://20191909node01:9000</value>
   </property>
</configuration>

image-20240228162515350

  1. 修改hdfs-site.xml

    <configuration>
       <property>
          <name>dfs.replication</name>
          <value>1</value>
       </property>
    </configuration>
    

    image-20240228162803603

  2. slaves //从节点信息

    20191909node01

    image-20240228162923453

  3. 修改hdfs-site.xml,增加:

    <configuration>
       <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>20191909node01:50090</value>
       </property>
    </configuration>
    

    image-20240228163215042

6.修改core-site.xml,增加:

 <property>
       <name>hadoop.tmp.dir</name>
       <value>/var/20191909/hadoop/pseudo</value>
 </property>

image-20240228163648229

(5) 格式化

hdfs namenode -format
image-20240228165606159

image-20240228165638185

查看 /var/2019109/hadoop/pseudo/dfs/name/current/fsimage_…

image-20240228170043564

cat VERSION clusterID(集群ID)

image-20240228170011063

四、出现问题及解决方案

问题:

  • DataNode未启动

解决方案:

  • 恢复快照,重新配置环境

五、实验结果

(1)启动集群

start-dfs.sh //可以jps查看启动哪些进程

image-20240228202744838

jps //命令

image-20240228202733104

(2)通过浏览器查看信息

ss -nal 查看通讯端口

image-20240228170933501

在火狐等浏览器输入20191909node01:50070,前提是要在windows下的c:/windows/system32/drivers/etc/hosts文件添加IP节点映射

image-20240228171005666

(3)练习上传文件
  1. 创建路径

    hdfs dfs -mkdir -p /user/root
    image-20240228171217581
    hdfs dfs -ls /

    image-20240228171330657 image-20240228171441398

  2. 上传文件

    cd ~/software

    ls -lh ./ //查看文件大小

    hdfs dfs -put hadoop-2.6.5.tar.gz /user/root

    image-20240228202941079

    在浏览器查看

    image-20240228202959078

    该文件应该生成两个块,块大小默认128MB

    image-20240228203750784

    查看/var/20191909/pseudo/data/…实际存储位置

    image-20240228204255990

    image-20240228204552642

  3. 在~/software目录里创建一个新文件

for i in seq 100000;do echo “hello jxxy$i” >> test.txt;done

查看新文件大小

ll -h //test.txt文件大小约为1.6M

设置块大小上传文件

hdfs dfs -D dfs.blocksize=1048576 -put test.txt

image-20240228205033212

image-20240228205115238

  1. 每次需要关闭集群

    stop-dfs.sh

    image-20240228205627758

六、实验思考题

  1. 安装linux时,如何配置网络?

    在安装Linux时配置网络,通常需要编辑网络配置文件,比如 /etc/network/interfaces 或者 /etc/sysconfig/network-scripts/ifcfg-eth0,设置IP地址、子网掩码、网关等信息,然后重启网络服务使配置生效。

  2. 为什么要删除/etc/udev/rules.d/70-persistent-net.rules?

    删除 /etc/udev/rules.d/70-persistent-net.rules 文件是因为这个文件会存储设备的 MAC 地址与接口名的映射关系,如果更换了网卡或者调整了网络配置,可能会导致网络接口名混乱,删除该文件可以让系统在下次启动时重新生成正确的映射关系。

  3. 为什么要设置ssh免密钥登录?如何设置?

    设置SSH免密钥登录可以提高安全性并方便远程登录管理。具体设置方法包括:生成密钥对、将公钥添加到目标服务器的 ~/.ssh/authorized_keys 文件中,确保权限正确;然后就可以直接SSH登录而无需输入密码。

  4. 搭建hadoop时,为什么要配置hadoop.tmp.dir?

    配置 hadoop.tmp.dir 参数是为了指定Hadoop在运行过程中存储临时数据的目录,一般情况下应该设置在一个独立的磁盘或者目录上,以避免对主要存储产生影响。

  5. 安装完全分布式,为什么要同步服务器时间?

    同步服务器时间在完全分布式环境下非常重要,因为各个节点之间需要保持时间同步以确保协调运行。可以使用NTP服务来实现时间同步,配置主服务器为时间服务器,其他服务器与其同步即可。

  6. 启动过程中如果发现某个datanode出现问题,如何处理?

    如果在启动过程中某个DataNode出现问题,可以先查看日志文件以确定具体问题,尝试重启DataNode服务或者进行故障排查处理。如果问题无法解决,可能需要考虑替换硬件或修复软件错误。

  7. zookeeper的作用是什么?

    Zookeeper的作用是提供分布式应用程序的协调服务,包括配置管理、命名服务、集群管理等功能。在Hadoop集群中,Zookeeper通常用于协调和管理Hadoop集群的各个组件,确保它们能够正确协同工作。

hadoop.tmp.dir` 参数是为了指定Hadoop在运行过程中存储临时数据的目录,一般情况下应该设置在一个独立的磁盘或者目录上,以避免对主要存储产生影响。

  1. 安装完全分布式,为什么要同步服务器时间?

    同步服务器时间在完全分布式环境下非常重要,因为各个节点之间需要保持时间同步以确保协调运行。可以使用NTP服务来实现时间同步,配置主服务器为时间服务器,其他服务器与其同步即可。

  2. 启动过程中如果发现某个datanode出现问题,如何处理?

    如果在启动过程中某个DataNode出现问题,可以先查看日志文件以确定具体问题,尝试重启DataNode服务或者进行故障排查处理。如果问题无法解决,可能需要考虑替换硬件或修复软件错误。

  3. zookeeper的作用是什么?

    Zookeeper的作用是提供分布式应用程序的协调服务,包括配置管理、命名服务、集群管理等功能。在Hadoop集群中,Zookeeper通常用于协调和管理Hadoop集群的各个组件,确保它们能够正确协同工作。

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

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

相关文章

[Vue3] 配置 Pinia 并存储、读取、修改数据 | 集中式状态(数据)管理

安装 npm i pinia main.ts import ./assets/main.cssimport { createApp } from vue import App from ./App.vue import { createPinia } from pinia // 引入Pinia// 创建一个应用 const app createApp(App)const pina createPinia() app.use(pina) // 挂载整个应用到app容器…

『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用

&#x1f680;『Apisix系列文章』探索新一代微服务体系下的API管理新范式与最佳实践 【点击此跳转】 &#x1f4e3;读完这篇文章里你能收获到 &#x1f3af; 掌握APISIX中多种负载均衡策略的原理及其适用场景。&#x1f4c8; 学习如何通过APISIX的Admin API和Dashboard进行负…

AIGC趋势下软件工程强智能编码来临了么?

一、背景 在AIGC&#xff08;AI Generated Content&#xff0c;人工智能生成内容&#xff09;的趋势下&#xff0c;软件工程领域的“强智能编码”是指通过深度学习、自然语言处理等前沿技术&#xff0c;使AI具备理解、学习、推理和生成代码的能力&#xff0c;从而实现自动化或…

操作系统:经典进程同步问题的高级探讨

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

ChatGPT提升工作生产力方法和技巧ChatGPT enhances work productivity methods and techniques

使用ChatGPT提升工作效率的一些详细步骤和技巧&#xff1a; 1. 快速撰写和编辑文档 撰写文档&#xff1a;当需要撰写报告、方案、邮件等内容时&#xff0c;可以直接向ChatGPT提出请求&#xff0c;例如&#xff1a;“请帮我写一份关于第一季度销售业绩的总结报告。”之后&#x…

Mybatis-plus + 通用mapper(tk.mybatis)

推荐课程&#xff1a;MyBatisPlus实战教程02-课程介绍与案例演示_哔哩哔哩_bilibili 官网&#xff1a;MyBatis-Plus (baomidou.com) 目录 01 引言 1&#xff09;MyBatis与MyBatis-Plus区别 2&#xff09;Mybatis-plus入门案例 案例一&#xff1a;spring容器版本的案例 案例…

将二进制数a的每一位右移b位operator.rshift(a,b)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将二进制数a的 每一位右移b位 operator.rshift(a,b) [太阳]选择题 请问执行operator.rshift(4, 1)的结果为&#xff1f; import operator print("【显示】二进制2&#xff1a;",bi…

Tuxera for Mac2024免费读写硬盘U盘工具

作为软件产品专家&#xff0c;我对各类软件都有较为深入的了解&#xff0c;下面介绍Tuxera for Mac这款读写硬盘/U盘工具的相关信息&#xff1a; Tuxera for Mac是一款高效稳定的NTFS读写工具&#xff0c;专为解决Mac系统无法直接读写NTFS格式驱动器的问题而设计。它提供了完整…

【文献分享】FLUNED(一种用于流体活化计算的开源工具)在水中的开发和验证

题目&#xff1a;Development and validation in water of FLUNED, an open-source tool for fluid activation calculations 链接&#xff1a;Redirecting FLUNED&#xff08;一种用于流体活化计算的开源工具&#xff09;在水中的开发和验证 在核聚变装置中&#xff0c;高…

【数据结构】树、二叉树与堆(长期维护)

下面是关于树、二叉树、堆的一些知识分享&#xff0c;有需要借鉴即可。 一、初识树&#xff08;了解即可&#xff09; 1.树的概念 概念&#xff1a;一种非线性数据结构&#xff0c;逻辑形态上类似倒挂的树 树的构成&#xff1a;由一个根左子树右子树构成&#xff0c;其中子树…

布隆过滤器详讲

本文旨在讲解布隆过滤器的原理以及实现方式&#xff0c;希望通过本文能使读者对布隆过滤器有一定的认识&#xff01; 一、布隆过滤器的引入 在讲解布隆过滤器之前&#xff0c;我们还是先提及一下前面讲的位图行&#xff0c;位图可以处理大量的数据&#xff0c;广泛用于查找等…

Vue-vue3

一、Vue3简介二、Vue3有那些优化性能的提升源码升级拥抱TypeScript新的特性 三、创建Vue3.0工程四、Vue3工程结构&#xff08;使用cli创建的vue3&#xff09;五、常用的Composition API&#xff08;组合式API&#xff09;setupsetup的两个注意点 ref函数reactive函数Vue3.0中的…

【Java程序设计】【C00381】基于(JavaWeb)Springboot的爱心商城管理系统(有论文)

【C00381】基于&#xff08;JavaWeb&#xff09;Springboot的爱心商城管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#x…

SSH 连接工具-Tabby(使用教程)

文章目录 SSH 连接工具-Tabby&#xff08;使用教程&#xff09;1.Tabby简介2.Tabby安装3.实现 SSH 远程连接4.SFTP文件传输5.将 Anaconda Prompt 配置到 Tabby 中 SSH 连接工具-Tabby&#xff08;使用教程&#xff09; 提起 SSH 大家首先想到的应该是国内的一款 Xshell 工具&a…

UE4 根据任意多个点,生成最近的线条

UE4自带的SplineMesh特点&#xff1a;Tangent值为0的时候&#xff0c;会断开一段距离&#xff0c;起点和终点并不是同一个位置&#xff1b;Tangent值不为0的时候&#xff0c;会计算出转角的mesh 1.计算所有线条的组合 2.Clear0宏&#xff1a;清除掉数组Distance0的值。注意这…

git提交-分支开发合并-控制台操作

git提交-分支开发合并-控制台操作 git的基本概念工作区、暂存区和版本库工作区&#xff1a;就是你在电脑里能看到的目录&#xff08;隐藏目录 .git不算工作区&#xff09;。暂存区&#xff1a;英文叫 stage 或 index。一般存放在本地的.git目录下的index 文件&#xff08;.git/…

Qt/QML编程之路:QPainter与OpenGL的共用(49)

在Qt编程中,有时会有这样一种场景:用OpenGL显示了一个3维立体图,但是想在右下角画一个2D的表格,里面写上几个字。那么这个时候就会出现QPainter与OpenGL共用或者说2D、3D共用。但是问题是调用了QPainter,drawline之后呢,OPenGL的状态被清空了丢失了,3D不显示了。 在Ope…

共射极放大电路理论计算

目录&#xff1a; 1、概述 2、理论计算 3、Multisim仿真验证 1&#xff09;静态工作点与放大倍数 2&#xff09;输入阻抗仿真 1、概述 如下图所示的共射极放大电路&#xff0c;本内容主要计算静态工作点电压、电压放大倍数与输入输出阻抗。 2、理论计算 列出方程如下&am…

helm 部署 Kube-Prometheus + Grafana + 钉钉告警部署 Kube-Prometheus

背景 角色IPK8S 版本容器运行时k8s-master-1172.16.16.108v1.24.1containerd://1.6.8k8s-node-1172.16.16.109v1.24.1containerd://1.6.8k8s-node-2172.16.16.110v1.24.1containerd://1.6.8 安装 kube-prometheus mkdir -p /data/yaml/kube-prometheus/prometheus &&…

NSString有哪些创建对象的方法?创建的对象分别存储在什么区域?

NSString有哪些创建对象的方法&#xff1f;创建的对象分别存储在什么区域&#xff1f; 一般通过NSString创建对象的方法有&#xff1a; NSString *string1 "123";NSString *string2 [[NSString alloc] initWithString:"123"];NSString *string3 [NSSt…