阿里云CentOS7安装Hadoop3伪分布式

ECS准备

开通阿里云ECS

控制台设置密码

 

连接ECS

远程连接工具连接阿里云ECS实例,这里远程连接工具使用xshell

根据提示接受密钥

根据提示写用户名和密码

        用户名:root

        密码:在控制台设置的密码

修改主机名

将主机名从localhost改为需要的主机名,例如:node1

[root@iZwz9hpiui8zhoe2pkat8nZ ~]# hostnamectl set-hostname node1
[root@iZwz9hpiui8zhoe2pkat8nZ ~]# hostname
node1

发现未重启时,命令行@后面显示的主机名未变

重启
[root@iZwz9hpiui8zhoe2pkat8nZ ~]# reboot
​
​
重新连接
[root@node1 ~]# 

重启后,命令行中的主机名改变了

创建普通用户

因为root用户权限太高,误操作可能造成一些麻烦。一般情况下,我们不会用root用户来安装hadoop,所以我们需要创建普通用户来安装hadoop。

创建新用户方法如下:

创建新用户,例如用户名为:hadoop,并设置新用户密码,重复设置2次,看不到输入的密码,这是linux的安全机制,输入即可。

[root@node1 ~]# adduser hadoop
[root@node1 ~]# passwd hadoop
Changing password for user hadoop.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

给普通用户添加sudo执行权限

[root@node1 ~]# chmod -v u+w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----)
​
[root@node1 ~]# vim /etc/sudoers
在%wheel  ALL=(ALL)       ALL一行下面添加如下语句:
hadoop    ALL=(ALL)       ALL
​
[root@node1 ~]# chmod -v u-w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)

这种情况下,执行sudo相关命令时,需要输入当前普通用户的密码。

如果不想输入密码,在%wheel ALL=(ALL) ALL一行下面添加的语句更改为如下:

hadoop  ALL=(ALL)    NOPASSWD:ALL

关闭root连接

普通用户登录

使用xshell新建一个连接,

        用户名:hadoop

        密码:创建hadoop用户时设置的密码

映射IP和主机

[hadoop@node1 ~]$ sudo vim /etc/hosts

文件末尾一行,将ECS内网IP与实际的主机名node1映射,修改如下内容:

192.168.0.100 node1

注意:192.168.0.100为ECS内网IP,ECS内网IP可以在阿里云控制台查询,请根据实际情况设置。

配置免密登录

生成密钥对

ssh-keygen -t rsa

执行命令后,连续敲击三次回车键,运行过程如下:

[hadoop@node1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:F7ztwW9iUTYORd3jGBD46lvznVHbxe0jZcAHeI7kVRk hadoop@node1
The key's randomart image is:
+---[RSA 2048]----+
|          .o+o+E+|
|         o o.=.oo|
|          * *oB..|
|           O Bo+.|
|        S + = .o=|
|         o . +o.=|
|        .  o+.o+o|
|         ...ooo +|
|         ..  . o |
+----[SHA256]-----+
​

拷贝公钥

ssh-copy-id node1

安装jdk

创建安装包目录

创建一个目录,专门存放安装包(可选)

[hadoop@node1 ~]$ mkdir ~/installfile

下载jdk8安装包

官网下载jdk安装包:jdk-8u271-linux-x64.tar.gz,并将安装包上传到Linux的installfile目录。

解压安装包

解压安装包

[hadoop@node1 installfile]$ tar -zxvf jdk-8u271-linux-x64.tar.gz -C ~/soft

切换到soft目录,查看解压后的文件

[hadoop@node1 softinstall]$ cd ~/soft
[hadoop@node1 soft]$ ls
jdk1.8.0_271
​

配置环境变量

[hadoop@node1 soft]$ sudo nano /etc/profile.d/my_env.sh

内容如下

export JAVA_HOME=/home/hadoop/soft/jdk1.8.0_271
export PATH=$PATH:$JAVA_HOME/bin

让配置立即生效

[hadoop@node1 soft]$ source /etc/profile

验证版本号

[hadoop@node1 soft]$ java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
​

看到输出java version "1.8.0_271",说明jdk安装成功。

遇到的问题

验证java版本号时,遇到找不到libjli.so的问题

[hadoop@node1 ~]$ java -version
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
​

排查问题,发现解压jdk包时出现了错误,造成该问题

jdk1.8.0_271/jre/lib/
jdk1.8.0_271/jre/lib/amd64/
jdk1.8.0_271/jre/lib/amd64/server/
jdk1.8.0_271/jre/lib/amd64/server/Xusage.txt
jdk1.8.0_271/jre/lib/amd64/server/libjvm.so
tar: Skipping to next header
​
gzip: stdin: invalid compressed data--format violated
tar: Child returned status 1
tar: Error is not recoverable: exiting now
​

重新上传jdk安装包,确保文件完整,然后再重新解压,解压正常,版本号验证正常。

安装hadoop伪分布式

下载hadoop

[hadoop@node1 soft]$ cd ~/softinstall/
[hadoop@node1 soft]$ wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
[hadoop@node1 softinstall]$ ls
hadoop-3.3.4.tar.gz  jdk-8u271-linux-x64.tar.gz
​

解压hadoop

[hadoop@node1 softinstall]$ tar -zxvf hadoop-3.3.4.tar.gz -C ~/soft

配置环境变量

[hadoop@node1 softinstall]$ sudo nano /etc/profile.d/my_env.sh

在文件末尾添加如下配置

export HADOOP_HOME=/home/hadoop/soft/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

让环境变量生效

[hadoop@node1 softinstall]$ source /etc/profile

验证版本号

执行hadoop version命令,能看到Hadoop 3.3.4版本号,说明环境变量配置成功。

[hadoop@node1 softinstall]$ hadoop version
Hadoop 3.3.4
Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb
Compiled by stevel on 2022-07-29T12:32Z
Compiled with protoc 3.7.1
From source with checksum fb9dd8918a7b8a5b430d61af858f6ec
This command was run using /home/hadoop/soft/hadoop-3.3.4/share/hadoop/common/hadoop-common-3.3.4.jar

配置hadoop

进入配置目录
[hadoop@node1 softinstall]$ cd $HADOOP_HOME/etc/hadoop
配置core-site.xml
[hadoop@node1 hadoop]$ vim core-site.xml

<configuration></configuration>之间添加如下内容:

    <!-- 指定NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><!-- 指定hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/home/hadoop/soft/hadoop-3.3.4/data</value></property>
​<!-- 配置HDFS网页登录使用的静态用户为hadoop,value里的hadoop代表用户 --><property><name>hadoop.http.staticuser.user</name><value>hadoop</value></property>
​<!-- 配置该hadoop(superUser)(第二个hadoop代表用户)允许通过代理访问的主机节点 --><property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value></property><!-- 配置该hadoop(superUser)(第二个hadoop代表用户)允许通过代理用户所属组 --><property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value></property><!-- 配置该hadoop(superUser)(第二个hadoop代表用户)允许通过代理的用户--><property><name>hadoop.proxyuser.hadoop.users</name><value>*</value></property>

配置hdfs-site.xml
[hadoop@node1 hadoop]$ nano hdfs-site.xml

<configuration></configuration>之间添加如下内容:

    <!-- nn web端访问地址--><property><name>dfs.namenode.http-address</name><value>node1:9870</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>node1:9868</value></property><!-- HDFS副本的数量1 --><property><name>dfs.replication</name><value>1</value></property>

注意:node1为ECS的主机名称,注意根据实际情况修改,之后的配置文件node1也需要注意修改。

配置yarn-site.xml
[hadoop@node1 hadoop]$ nano yarn-site.xml

<configuration></configuration>之间添加如下内容:

    <!-- 指定MR走shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><!-- 环境变量的继承 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property><!--yarn单个容器允许分配的最大最小内存 --><property><name>yarn.scheduler.minimum-allocation-mb</name><value>512</value></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value></property><!-- yarn容器允许管理的物理内存大小 --><property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value></property><!-- 关闭yarn对物理内存和虚拟内存的限制检查 --><property><name>yarn.nodemanager.pmem-check-enabled</name><value>true</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>

配置mapred-site.xml
[hadoop@node1 hadoop]$ nano mapred-site.xml

<configuration></configuration>之间添加如下内容:

    <!-- 指定MapReduce程序运行在Yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>

配置workers
[hadoop@node1 hadoop]$ nano workers 

删除原有内容,配置workers的主机名称,内容如下

node1

配置历史服务器
[hadoop@node1 hadoop]$ nano mapred-site.xml

添加如下配置

    <!-- 历史服务器端地址 --><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value></property>
​<!-- 历史服务器web端地址 --><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value></property>
​

配置日志聚集

开启日志聚集功能,应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

[hadoop@node1 hadoop]$ nano yarn-site.xml

添加如下功能

    <!-- 开启日志聚集功能 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property>
​<!-- 设置日志聚集服务器地址 --><property>  <name>yarn.log.server.url</name>  <value>http://node1:19888/jobhistory/logs</value></property>
​<!-- 设置日志保留时间为7天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>

格式化

格式化hdfs文件系统

[hadoop@node1 hadoop]$ hdfs namenode -format

部分输出如下

看到successfully formatted.说明格式化成功。

注意:格式化只能进行一次。

启动集群

[hadoop@node1 hadoop]$ start-dfs.sh 
[hadoop@node1 hadoop]$ start-yarn.sh 

查看进程

[hadoop@node1 hadoop]$ jps
16944 DataNode
18818 Jps
17413 ResourceManager
17144 SecondaryNameNode
17513 NodeManager
16844 NameNode

看到如上进程,说明正常。

如果缺少进程:

1.检查配置是否正确;

2.查看对应$HADOOP_HOME/logs目录对应进程log文件的报错信息来解决。

放开Web UI端口

登录阿里云控制台,在安全组放开9870、8088、9868端口

注意:0.0.0.0/0代表所有ip均能访问,不安全。可以只授权给特定ip,例如自己当前电脑的公网ip地址,一般情况下,当前电脑的公网ip会变化,变化后就需要重新查询当前电脑的公网ip,再重新设置授权对象。

访问Web UI

浏览器访问

公网IP:9870

公网IP:8088

公网IP:9868

如果不想输入公网ip,可以在windows的hosts文件做映射:

公网IP node1 alinode

含义:公网IP映射的主机为node1alinodenode1机器的别名。

使用node1或者alinode代替公网IP,访问相关端口,也能正常访问如下:

完成!enjoy it!

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

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

相关文章

excel中批量插入分页符

excel中批量插入分页符&#xff0c;实现按班级打印学生名单。 1、把学生按照学号、班级排序好。 2、选择班级一列&#xff0c;点击数据-分类汇总。汇总方式选择计数&#xff0c;最后三个全部勾选。汇总结果一定要显示在数据的下发&#xff0c;如果显示在上方&#xff0c;后期…

操作教程|在MeterSphere中通过SSH登录服务器的两种方法

MeterSphere开源持续测试平台拥有非常强大的插件集成机制&#xff0c;用户可以通过插件实现平台能力的拓展&#xff0c;借助插件或脚本实现多种功能。在测试过程中&#xff0c;测试人员有时需要通过SSH协议登录至服务器&#xff0c;以获取某些配置文件和日志文件&#xff0c;或…

Python爬虫:爬虫常用伪装手段

目录 前言 一、设置User-Agent 二、设置Referer 三、使用代理IP 四、限制请求频率 总结 前言 随着互联网的快速发展&#xff0c;爬虫技术在网络数据采集方面发挥着重要的作用。然而&#xff0c;由于爬虫的使用可能会对被爬取的网站造成一定的压力&#xff0c;因此&#…

HarmonyOS实战开发-实现带有卡片的电影应用

介绍 本篇Codelab基于元服务卡片的能力&#xff0c;实现带有卡片的电影应用&#xff0c;介绍卡片的开发过程和生命周期实现。需要完成以下功能&#xff1a; 元服务卡片&#xff0c;用于在桌面上添加2x2或2x4规格元服务卡片。关系型数据库&#xff0c;用于创建、查询、添加、删…

SQL,group by分组后分别计算组内不同值的数量

SQL&#xff0c;group by分组后分别计算组内不同值的数量 如现有一张购物表shopping 先要求小明和小红分别买了多少笔和多少橡皮&#xff0c;形成以下格式 SELECT name,COUNT(*) FROM shopping GROUP BY name;SELECT name AS 姓名,SUM( CASE WHEN cargo 笔 THEN 1 ELSE 0 END)…

Prometheus +Grafana +node_exporter可视化监控Linux虚机

1、介绍 待补充 2、架构图 待补充 Prometheus &#xff1a;主要是负责存储、抓取、聚合、查询方面。 node_exporter &#xff1a;主要是负责采集物理机、中间件的信息。 3、搭建过程 配置要求&#xff1a;1台主服务器 n台从服务器 &#xff08;被监控的linux虚机&am…

百度智能云千帆,产业创新新引擎

本文整理自 3 月 21 日百度副总裁谢广军的主题演讲《百度智能云千帆&#xff0c;产业创新新引擎》。 各位领导、来宾、媒体朋友们&#xff0c;大家上午好。很高兴今天在石景山首钢园&#xff0c;和大家一起沟通和探讨大模型的发展趋势&#xff0c;以及百度最近一段时间的思考和…

软件杯 深度学习+python+opencv实现动物识别 - 图像识别

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 inception_v3网络5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

在Semantic Kernel中使用Qdrant向量数据库

本文将介绍如何在Semantic Kernel中使用Qdrant向量数据库&#xff0c;并演示如何在Semantic Kernel中进行向量更新和查询操作。 1. 背景 在前一篇文章《Qdrant 向量数据库的部署以及如何在 .NET 中使用 TLS 安全访问》中&#xff0c;我们介绍了如何使用 Docker 部署 Qdrant 向…

RestTemplate 请求响应数据出现乱码问题,RestTemplate 如何解压缩 gzip 数据

文章目录 1.问题描述2.问题分析3.问题解决3.1 Apache HttpClient 依赖3.2 RestTemplate 配置类3.3 测试 1.问题描述 直接通过浏览器访问请求没有问题&#xff0c;但是通过 RestTemplate 访问请求却会出现乱码问题。 2.问题分析 首先我认为是 SpringBoot 版本、JDK 版本、项目结…

jmockit-01-test 之 jmockit 入门使用案例

拓展阅读 jmockit-01-jmockit 入门使用案例 jmockit-02-概览 jmockit-03-Mocking 模拟 jmockit-04-Faking 伪造 jmockit-05-代码覆盖率 mockito-01-入门介绍 mockito-02-springaop 整合遇到的问题&#xff0c;失效 jmockit 说明 jmockit 可以提供基于 mock 的测试能力…

【黑马头条】-day04自媒体文章审核-阿里云接口-敏感词分析DFA-图像识别OCR-异步调用MQ

文章目录 day4学习内容自媒体文章自动审核今日内容 1 自媒体文章自动审核1.1 审核流程1.2 内容安全第三方接口1.3 引入阿里云内容安全接口1.3.1 添加依赖1.3.2 导入aliyun模块1.3.3 注入Bean测试 2 app端文章保存接口2.1 表结构说明2.2 分布式id2.2.1 分布式id-技术选型2.2.2 雪…

【TB作品】MSP430G2553,超声波倒车雷达PCB,单片机,超声波SR04,键盘,oled,

题目 硬件&#xff1a;MSP430G2553、 SR04超声波传感器 、3*4键盘、 无源蜂鸣器、oled显示屏 软件 1 、实时显示测量得到的距离 2、按键设置一个报警门限数值&#xff0c;直接输入数值后确认 3、低于报警门限数值就开始报警&#xff0c;而且距离越近蜂鸣器的鸣叫频率越高 程序…

uniapp 微信小程序 canvas 手写板获取书写内容区域并输出

uni.canvasGetImageData 返回一个数组&#xff0c;用来描述 canvas 区域隐含的像素数据&#xff0c;在自定义组件下&#xff0c;第二个参数传入自定义组件实例 this&#xff0c;以操作组件内 组件。 // 获取目标 canvas 的像素信息 pixelData let canvas uni.createSelector…

追踪Aurora(欧若拉)勒索病毒,Emsisoft更新解密工具

Aurora(欧若拉)勒索病毒首次出现于2018年7月左右&#xff0c;加密后的文件后缀为Aurora&#xff0c;2018年11月&#xff0c;此勒索病毒的一款变种样本&#xff0c;加密后的文件后缀为Zorro&#xff0c;同时发现了此勒索病毒的一个BTC钱包地址&#xff1a; 18sj1xr86c3YHK44Mj2…

Day54:WEB攻防-XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架

目录 XSS跨站-攻击利用-凭据盗取 XSS跨站-攻击利用-数据提交 XSS跨站-攻击利用-flash钓鱼 XSS跨站-攻击利用-溯源综合 知识点&#xff1a; 1、XSS跨站-攻击利用-凭据盗取 2、XSS跨站-攻击利用-数据提交 3、XSS跨站-攻击利用-网络钓鱼 4、XSS跨站-攻击利用-溯源综合 漏洞原理…

蓝桥杯 java 凑算式 16年省赛Java组真题

题目 思路&#xff1a; 求有多少种解法 比如:68/3952/714就是一种解法&#xff0c;53/1972/486 是另一种解法 8/3952/714是可以除尽的 但是后面一个不行 所以我们也要通分 代码&#xff1a; public class 凑算式 {static int[] a {1, 2, 3, 4, 5, 6, 7, 8, 9};static int c…

力扣热门算法题 135. 分发糖果,146. LRU 缓存,148. 排序链表

135. 分发糖果&#xff0c;146. LRU 缓存&#xff0c;148. 排序链表&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.28 可通过leetcode所有测试用例。 目录 135. 分发糖果 解题思路 完整代码 Python Java 146. LRU 缓存 …

Web系统开发之——文章管理

原文地址&#xff1a;Web系统开发之——文章管理 - Pleasure的博客 下面是正文内容&#xff1a; 前言 经过一番考量&#xff0c;关于Web应用系统功能部分的开发&#xff0c;决定采取基础的文字文章管理为核心功能。 不再采取前后端分阶段完成的方式&#xff0c;而是以一个一个…

jupyter notebook的各种问题和解决办法

安装jupyter&#xff0c;无法启动&#xff0c;或者经常crash 解决办法&#xff1a; 1,不要安装anaconda全家桶&#xff0c;速度慢&#xff0c;而且会安装另外一套python和库&#xff0c;导致代码跑不起来&#xff0c;容易crash。 2&#xff0c;直接安装jupyter&#xff1a; p…