Hadoop环境搭建-单机、伪分布式、完全分布式

news2024/11/15 17:44:07

目录

一、单机安装

 二、伪分布式环境搭建

配置SSH免密登录

 三、完全分布式环境搭建

设置免密

修改配置文件


本文的所有配置文件,除注释部分都可直接复制粘贴。因为本文的配置文件的语言语法采用的是HTML或JAVA,注释部分可能和linux系统上的不同,因此如果直接复制粘贴记得将注释删除或调整语法。 

一、单机安装

1、安装虚拟机、操作系统(前期初步准备工作已完成)先关闭firewalld防火墙:

systemctl stop firewalld //停止防火墙
systemctl disable firewalld //关闭防火墙开机自启动
systemctl status firewalld //查看防火墙状态

2、设置主机名:

hostnamectl set-hostname master //设置主机名为master
hostname //查看主机名

3、映射主机名和IP地址:

ip add //查看IP地址
vi /etc/hosts //在文件最后一行加上IP地址和主机名
例:192... master

4、安装rz命令:

yum install -y lrzsz

5、利用rz将JDK上传至服务器:

mkdir -p /export/server //新建一个专用目录
cd /export/server //切换目录
rz
tar -zxvf /root/jdk.tar.gz //解压
mv jdk1.8.0_131/ jdk1.8 //重命名

6、配置JAVA环境

vi /etc/profile
//在文件最后加上
JAVA_HOME=/export/server/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
    
//保存并退出后,刷新文件
source /etc/profile
//查看jdk是否安装成功,出现版本号即可
java -version

7、上传hadoop压缩包至服务器并解压:

cd /export/server
rz
tar -zxvf /root/hadoop-2.7.2.tar.gz
//配置hadoop环境变量
cd hadoop-2.7.2
pwd //显示hadoop安装路径,方便后续配置
vi /etc/profile
//在文件最后加上
HADOOP_HOME=/export/server/hadoop-2.7.2
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME HADOOP_HOME PATH
​
//保存并退出后,刷新文件
source /etc/profile
//查看hadoop是否安装成功
hadoop version

 二、伪分布式环境搭建

 搭建伪分布式前提条件:文章上面的基础hadoop、jdk环境搭建完成

which java //查看java所在位置
vi hadoop-env.sh
//将export JAVA_HOME的值修改为我们安装的JDK路径
export JAVA_HOME=/export/server/jdk1.8

进入hadoop/etc/hadoop目录:

cd /export/server/hadoop/etc/hadoop

修改core-site.xml:

vi core-site.xml

如果配置了存放临时文件则需要创建一个目录:

mkdir -p /export/server/hadoop-2.7.2/data/tmp

<configuration>
    <property>
    	<name>fs.defaultFS</name> <!--设定namenode的主机名及端口-->
    	<value>hdfs://master:9000</value>
	</property>
<!--下面的不想要,可以不写-->
    <property>
        <name>hadoop.tmp.dir</name> <!--存放临时文件的目录,不想要可以不写-->
        <value>/export/server/hadoop-2.7.2/data/tmp</value>
    </property>
</configuration>

 修改hdfs-site.xml:

vi hdfs-site.xml

<configuration>
	<property>
    	<name>dfs.replication</name>
        <value>1</value> <!--设定HDFS存储文件的副本个数,默认为3-->
    </property>
    <property>
    	<name>dfs.secondary.http.address</name> <!--SecondaryNameNode地址和端口-->
        <value>master:50070</value>
    </property>
</configuration>

修改mapred-site.xml:

这个文件是不存在的,但是有一个模板文件mapred-site.xml.template,我们将这个文件改名为mapred-site.xml,然后进行修改:

mv  mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

<configuration>
	<property>
    	<name>mapreduce.framework.name</name>
        <value>yarn</value> <!--告诉hadoop mapreduce运行在yarn-->
    </property>
</configuration>

修改yarn-site.xml:

vi yarn-site.xml

该文件为Yarn框架配置文件,配置ResourceManager,nodeManager的通信端口,web监视端口等

<configuration>
	<property>
    	<name>yarn.resourcemanager.hostname</name>
        <value>master</value><!--指定ResourceManger的地址-->
    </property>
    <property>
    	<name>yarn.nodemanager.aux-services</name> <!--指定NodeManager获取数据的方式的shuffle-->
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

格式化DFS:

hdfs namenode -format

如果在格式化的日志中出现succefully format就证明格式化成功

启动所有服务:start-all.sh

关闭所有服务:stop-all.sh

配置SSH免密登录

输入:

ssh-keygen -t rsa

按四次回车

建立密钥对:

cd /root/.ssh

查看:ll

私钥:id_rsa

公钥:id_rsa.pub

ssh-copy-id将本机的公钥复制到远程机器的authorized_keys文件中,这里是伪分布式,只有一台机器,所以仍然是master然后需要输入master的root用户密码:

ssh-copy-id master

可以查看:记录多台机器的公钥,让机器之间使用ssh不需要用户名和密码:

#more authorized_keys

可以看到authorized_keys中的内容就是id_rsa.pub的内容,再次使用start-dfs.sh和start-yarn.sh,发现不需要输入密码了,实现免密登录。

 三、完全分布式环境搭建

1、先将可以联网的单机,克隆三台:master、slave1、slave2

没有创建单机,直接搭建完全分布式的。可以创建三台虚拟机,然后配置好基础的hadoop、jdk环境,效果等于克隆三台单机。单机配置可看上文

2、把每台的文件都修改一下:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

按规划设置各节点IP,网段取决于自己的电脑。为方便记忆,建议master节点IP尾数用200,slave用201,slave用202

//将UUID删除
//修改IPADDR=网段
例:
master的IPADDR=192...200
slave1的IPADDR=192...201

3、重启网络服务:systemctl restart network

4、为了方便,三台都重命名:hostnamectl set-hostname 名字

例:master主节点重命名:hostnamectl set-hostname master

如果是用远程连接工具修改,需要重新连接才会显示修改后的名字

5、修改hosts文件,在主节点映射IP地址和主机名(每个节点都要)

vi /etc/hosts
//在文件最后加上:
//主节点IP地址+ master 例:192...200 master
//从一节点IP+ slave1
//从二节点IP+ slave2

6、将配置好的hosts文件发送给两个从节点:

scp /etc/hosts slave1:/etc/hosts

scp /etc/hosts slave2:/etc/hosts

7、查看三台时间是否相同:date

如果时间不同,手动时间同步:

安装NTP服务:yum install ntp

时间同步(三台都要):ntpdate -u ntp1.aliyun.com

查看防火墙是否开启:systemctl status firewalld.service

如果开启,则关闭:systemctl stop firewalld.service

设置免密

1、删除三台机上的.ssh目录:rm -rf /root/.ssh

2、生成新密钥对(三台都要):ssh-keygen -t rsa

连按三次回车

3、切换目录,将三个节点的.ssh目录下的公钥复制到主节点(master)上(前提是你已经在主节点把/etc/hosts文件配置好并分发给了两台从节点,不然会报不知道master的错误):

cd /root/.ssh

ssh-copy-id master (三个都要)

4、查看是否复制成功(要在/root/.ssh下):

cat authorized_keys

5、在主节点上远程拷贝到两个从节点:

scp authorized_keys slave1:/root/.ssh/authorized_keys

scp authorized_keys slave2:/root/.ssh/authorized_keys

在执行过程中输入yes并输入密码

验证:ssh slave1 可以切换

第五点也可以直接将master的/root/.ssh拷贝到另外两台主机上

scp -r /root/.ssh slave1:/root

scp -r /root/.ssh slave2:/root

修改配置文件

先在主节点创建三个文件夹:

mkdir -p /export/server/tmp(不配置文件可以不创)

mkdir -p /export/server/hdfs/name(不配置文件可以不创)

mkdir -p /export/server/hdfs/data(不配置文件可以不创)

切换目录:cd /export/server/hadoop-2.7.2/etc/hadoop

修改:vi core-site.xml

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
<!--HDFS的URI,设定namenode的主机名及端口-->
</property>

<!--下面可以不配-->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/export/server/tmp</value>
<!--节点上本地的hadoop临时文件夹,之前一定要先建立好-->
</property>

先查看自己的java所在,方便后续配置:which java

修改文件:vi hadoop-env.sh

//大概25行
//export JAVA_HOME=/export/server/jdk1.8 (写自己jdk的存放目录)

修改:vi mapred-env.sh

将java路径写上:

//export JAVA_HOME=/export/server/jdk1.8

修改:vi yarn-env.sh

//将java路径写上
//export JAVA_HOME=/export/server/jdk.18

将文件改名:mv mapred-site.xml.template mapred-site.xml

修改:vi mapred-site.xml

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
<!--指定mapreduce使用yarn框架-->
</property>

 修改:vi yarn-site.xml

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
<!--指定resourcemanager所在的hostname,即指定yarn的老大即ResourceManger的地址-->
</property>

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
<!--NodeManager上运行的附属服务。指定NodeManager获取数据的方式是shuffle需配置成mapreduce_shuffle,才可运行MapReduce程序-->
</property>

 修改:vi hdfs-site.xml(默认配好,可以不配)

<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/export/server/hdfs/name</value>
<!--namenode上存储hdfs名字空间元数据-->
</property>

<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/export/server/hdfs/data</value>
<!--datanode上数据块的物理存储位置-->
</property>

<property>
        <name>dfs.replication</name>
        <value>2</value>
<!--副本个数,默认是3,应小于datanode机器数量-->
</property>

vi slaves

将两个从节点的名字写到最后:

slave1

slave2

将文件发送给两个从节点:

scp -r /export/server/hadoop-2.7.2/etc/hadoop slave1:/export/server/hadoop-2.7.2/etc

scp -r /export/server/hadoop-2.7.2/etc/hadoop slave2:/export/server/hadoop-2.7.2/etc

格式化文件:

hdfs namenode -format

启动集群,主节点有4个,从节点有3个:

start-all.sh

 

 

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

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

相关文章

Arcgis建筑面shp由DSM和DEM获取高度

效果 1、准备数据 DEM、DSM数据精度尽量高一些 1)DEM 2)DSM 3)建筑shp 所有数据坐标统一,而且加载后位置能对上 2、准备数据前的一些操作 1)矢量shp裁剪 2)栅格tif裁剪

【iOS】—— URL Scheme

URL Scheme URL Scheme是一个非常炫酷的东西&#xff0c;用法很简单,在我们平时使用app的时候&#xff0c;经常一不小心就点入广告&#xff0c;打开了其他的app或者打开了浏览器的某个网站&#xff0c;这个东西就用到了URL Scheme。 用法非常非常简单&#xff0c;最重要的只有…

3D 三角形的顶点顺序

在三维空间&#xff0c;一个表面是有正反之分的。WPF只会渲染正面&#xff0c;反面不渲染。 一个三角形有三个顶点&#xff0c;这三个顶点有一个排列顺序。 如下图画一个三角形&#xff0c; 定义顶点坐标&#xff0c;<MeshGeometry3D Positions"-1,0,0 0,-1,0 0,0,-1&…

抗CD4单抗偶联表阿霉素/单克隆抗体Zh805/特异性靶向肽A54偶联阿霉素的制备

小编给大家整理了抗CD4单抗偶联表阿霉素/单克隆抗体Zh805/特异性靶向肽A54偶联阿霉素的制备&#xff0c;一起来看看吧&#xff01; 抗CD4单抗偶联表阿霉素制备方法&#xff1a; 采用低分子右旋糖苷(DextranTl0)作联接桥,将表阿霉素分子偶联到抗CD4单抗上,制备成抗CD4单抗免疫结…

数字信号处理-2-三角函数与谱

1 弧度的定义 为了便于数学上的运算&#xff0c;设以半径为 1 的圆的中心为原点&#xff0c;x 轴正方向为基准测量角度。这样的圆为单位圆&#xff0c;此单位圆的长度为 1&#xff0c;在圆周上取与半径相同长度的圆弧&#xff0c;对应的角度为 1 弧度。 在三角函数中弧度能大大…

TPS63020DSJR(LDO)NCP51200MNTXG IC REG 稳压器参数

1、TPS63020电源管理IC是业界最小和性能最高的buck-boost转换器&#xff0c;具有4-A开关和高达96%的效率。TI TPS63020电源管理IC有助于延长智能手机&#xff0c;便携式医疗设备&#xff0c;DLPpico投影仪和其他电池供电多媒体设备的电池寿命。TI TPS63020 buck-boost转换器工作…

一次请求的来龙去脉 - Tomcat架构解析(二)

> 容器&#xff0c;简单理解就是用来装东西的工具。在Tomcat里面&#xff0c;容器被设计用来装载Servlet&#xff0c; 也就是我们平常写的普通的Servlet &#xff0c;就会存放在容器里面。这也就是咱们平常念叨的Servlet容器&#xff0c;其实从广义上理解&#xff0c;Servle…

JSON.stringify() 、JSON. parse()方法详解

JSON.stringify() 用法&#xff1a;JSON.stringify(value, [replacer], [space]) 第一个参数&#xff1a; value: 必选&#xff0c;将要序列后成 JSON 字符串的值。 第二个参数&#xff1a; replacer: 可选 如果是一个函数&#xff0c;则在序列化过程中&#xff0c;属性进行转…

机器学习之K-Means聚类(python手写实现+使用Silhouette Coefficient来选取最优k值)

文章目录K-MeansSilhouette Coefficient&#xff08;轮廓系数&#xff09;代码实现参考K-Means K-Means聚类又叫K均值聚类&#xff0c;是一种线性时间复杂度的聚类方法&#xff0c;也是比较成熟的一种聚类算法。 具体计算步骤如上。 Silhouette Coefficient&#xff08;轮廓…

以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

以笔者本套教材为例&#xff0c;每一步骤的源代码都托管在本人 Github 仓库里&#xff0c;每次上传之前&#xff0c;都确保本地测试通过。 但笔者编写过程中发现&#xff0c;之前测试通过的代码&#xff0c;可能几个月之后再执行&#xff0c;就会遇到白屏现象&#xff0c;即应…

ffplay数据读取线程

从这张图开始&#xff0c;主要介绍ffplay的读取线程部分。 从图中可以看出&#xff0c;解码线程的主要工作内容是将资源包从待解码列队中取出&#xff0c;然后送进解码器&#xff0c;最后将解码出的数据帧放入帧队列中&#xff0c;等待SDL获取播放。 【学习地址】&#xff1a;F…

【开源电路】ST-LINK/V2、ST-LINK/V2-1、DAP-LINK烧录器(已验证)

【开源电路】ST-LINK/V2、ST-LINK/V2-1、DAP-LINK烧录器&#xff08;已验证&#xff09;PCBA实物图 最终的的PCB 3D效果图 效果图和PCBA实物图差异说明 由于设计之初只考虑当ST-LINK V2来用&#xff0c;主要是用来给STM8和stm32烧录程序。没有考虑到会将固件升级到ST-LINK…

可变电阻元件封装

实验目的 掌握原理图封装的绘制操作掌握原理图封装和PCB封装的联系掌握PCB封装的绘制探索逻辑元件的选择 实验原理 采用EDA软件进行电路原理图设计 实验仪器 电脑、Altium Designer软件、相关元器件 实验内容 制作可变电阻元件 1. 创建工作环境2. 管理元件库在左侧面板中打开…

2023年,pmp还值得去考试吗?

为什么不值得呢&#xff1f;PMP的中文翻译过来就是项目管理专业人士&#xff0c;专业人士才考的证难道会差吗&#xff1f;有了它&#xff0c;即使是项目管理小白也能变成PMP专业人士&#xff01; 张嘴就冒那种别人听了就一脸懵但依然觉得你牛逼坏了的专业术语&#xff08;笑&a…

站稳前沿消费趋势,IU酒店持续领跑轻中端品牌

站稳前沿消费趋势&#xff0c;IU凸显品牌影响魅力 在疫情点状散发的背景下&#xff0c;身处一线的酒店行业深受影响&#xff0c;在现今错综复杂的市场环境中&#xff0c;投资者如何谋求机遇?酒店业为何破局重生?另一方面&#xff0c;随着消费升级以及年轻一代消费群体的崛起…

【SpringCloud】02 搭建springcloud微服务项目

文章目录搭建springcloud微服务项目1. 微服务父工程2. 创建子模块-shop-common3. 创建子模块--shop-product4. 创建子模块--shop-order搭建springcloud微服务项目 技术栈: springcloud-alibabamybatis-plus 持久性框架mysql数据库5.7以上springboot来搭建每个微服务。 1. 微服…

艾美捷Immunochemistry MitoPT JC-1试剂盒

艾美捷Immunochemistry MitoPT JC-1测定利用荧光染料JC-1检测线粒体膜去极化。当积聚在带负电的极化线粒体中时&#xff0c;JC-1发出橙色荧光。当线粒体膜电位在凋亡或代谢应激的细胞中崩溃时&#xff0c;JC-1试剂分散在细胞中并发出绿色荧光。使用流式细胞仪、荧光平板读取器或…

【场景化解决方案】慧致造ERP,为企业提供生产全流程数字化管理

方案简介 慧致造ERP以钉钉为基座&#xff0c;借助钉钉待办、工作通知、OA审批、工作台组件、酷应用、定制工作台等开放能力&#xff0c;围绕制造业生产管理场景与钉钉深度融合&#xff0c;为中小制造业打造业财一体化的生产制造解决方案&#xff0c;企业用户只需一个平台&…

Linux企业运维之git的使用

文章目录前言一、git简介以及基础操作二、github或者在gitee上创建项目并且上传本地项目自动化创建&#xff08;触发jenkins&#xff09;前言 一、git简介以及基础操作 git 简单来说就是版本控制系统 但是相对于其他版本控制系统来说&#xff0c;它又具有一些优点&#xff1a;…

集群渲染和渲染农场是什么意思?跟云渲染有什么关系?

嗨咯&#xff0c;大家好&#xff0c;今天后台有同学问集群渲染什么意思&#xff1f;集群渲染怎么做&#xff1f; 集群渲染&#xff08;cluster rendering&#xff09;指的是一组计算机通过通信协议连接在一起的计算机群&#xff0c;它们能够将工作负载从一个超载的计算机迁移到…