代码编织梦想

示例集群信息

以下表格为本教程所用示例集群节点信息:

我们准备了三台虚拟服务器,连接方式如下:

在这里插入图片描述
第一步我们需要在 evassh 服务器初始化虚拟服务器:

cd /opt
wrapdocker
ulimit -f unlimited
docker load -i ubuntu16-ssh.tar
docker-compose up -d

注意:请不要在各个虚拟服务器之间进行 ssh 登录,这种操作会导致无法保存配置数据。正确方法是:在虚拟服务器里执行 exit 后回到 evassh 服务器,再按上述方法登录各虚拟服务器。

一、文件传输

通过 scp 命令将 evassh 上面的 Java 安装包与 Hadoop 安装包放入 master 服务器上的/opt 目录下。

scp /opt/jdk-8u141-linux-x64.tar.gz root@172.18.0.2:/opt
scp /opt/hadoop-3.1.0.tar.gz root@172.18.0.2:/opt

第一次连接,会询问是否继续连接。键盘输入 yes 并输入密码 123123 即可进行传输。
在这里插入图片描述在这里插入图片描述

二、配置免密登录

在集群搭建过程中,我们会频繁的在各个服务器之间跳转,此过程是通过 SSH 去连接的,为了避免启动过程输入密码,我们可以配置免密登录。

1、分别在 master、slave1、slave2 生成密钥,命令如下:

在 master 服务器生成秘钥:

# 进入 master 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.2
ssh-keygen -t rsa
# 执行命令之后,连着按三个回车键即可生成秘钥。

在这里插入图片描述

这里我们可以开启多个命令行窗口,可以大大减少各个服务器之间的跳转次数。在这里插入图片描述

点击 + 号开启多个窗口,最多可以开启共 3 个命令行窗口。
在 salve1 服务器生成秘钥:

#进入 salve1 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.3
ssh-keygen -t rsa

在这里插入图片描述
在 salve2 服务器生成秘钥:

# 进入 salve2 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.4
ssh-keygen -t rsa

在这里插入图片描述

master、slave1和slave2直接已经做了映射,所以这里不需要再做映射。

2、 在 master 复制 master、slave1、slave2 的公钥。

cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

密码为:123123
在这里插入图片描述
3、 在 slave1 复制 master 的 authorized_keys 文件。

ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

在这里插入图片描述
4、 在 slave2 复制 master 的 authorized_keys 文件。

ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

在这里插入图片描述
集群之间免密至此设置成功

三、集群安装 JavaJDK

在 master 服务器的 /opt 目录下有 evassh 服务器传过来的 Java 安装包与 Hadoop 安装包。解压 Java 安装包至/usr/local目录下。

tar -zxvf /opt/jdk-8u141-linux-x64.tar.gz -C /usr/local/

解压好JDK之后还需要在环境变量中配置JDK,才可以使用,接下来就来配置JDK。
输入命令:vim /etc/profile 编辑配置文件;
在文件末尾输入如下代码(不可以有空格):

export JAVA_HOME=/usr/local/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin

然后,保存并退出。

最后:source /etc/profile使刚刚的配置生效。

输入:java -version 出现如下界面代表配置成功。
在这里插入图片描述
将解压好的JDK与配置文件通过 scp 命令发送至 slave1、slave2 中。

#发送JDK
scp -r /usr/local/jdk1.8.0_141/ root@slave1:/usr/local/
scp -r /usr/local/jdk1.8.0_141/ root@slave2:/usr/local/
#发送配置文件
scp  /etc/profile root@slave1:/etc/
scp  /etc/profile root@slave2:/etc/

slave1 和 slave2 服务器上分别执行source /etc/profile使发送来的配置生效。

四、Hadoop 分布式集群搭建

解压并改名
解压Hadoop的压缩包到/usr/local目录下,并将解压好的文件夹改名为 hadoop 。

tar -zxvf /opt/hadoop-3.1.0.tar.gz -C /usr/local/
cd /usr/local
mv hadoop-3.1.0/ hadoop

在这里插入图片描述
将Hadoop添加到环境变量中

vi /etc/profile

在文件末尾插入如下代码:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

最后使修改生效:source /etc/profile

创建文件夹

mkdir /var/hadoop
mkdir /var/hadoop/disk
mkdir /var/hadoop/logs
mkdir /var/hadoop/tmp
mkdir /var/hadoop/namenode

修改配置文件
进入 hadoop 配置文件夹中:

cd /usr/local/hadoop/etc/hadoop/

修改 core-site.xml文件

vim core-site.xml

core-site.xml 是核心配置文件我们需要在该文件中加入HDFSURINameNode的临时文件夹位置,这个临时文件夹在下文中会创建。
在文件末尾的configuration标签中添加代码如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop/tmp</value>
    </property>
</configuration>

修改 hdfs-site.xml文件

vim hdfs-site.xml

replication指的是副本数量,我们现在是3个节点,所以是3。属性名dfs.datanode.data.dir代表 datanode 上数据块的物理存储位置,属性名dfs.namenode.name.dir代表 namenode 上存储 hdfs 名字空间元数据

<configuration>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/var/hadoop/disk</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/var/hadoop/namenode</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
</configuration>

修改 yarn-site.xml文件

vim yarn-site.xml
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

修改 mapred-site.xml文件

vim mapred-site.xml
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

修改 hadoop-env.sh文件
文件主要是配置JDK的位置,在文件中添加语句:

export JAVA_HOME=/usr/local/jdk1.8.0_141

修改 workers文件

vim workers

打开文件后应该只有一个localhost,将其删除改为master、slave1、slave2即可。

hadoop-2.6 这个文件名为 slaves ,现在3.0版本为 workers。

master
slave1
slave2

在这里插入图片描述
因为root用户现在还不能启动hadoop,我们来设置一下就可以了。

在/hadoop/sbin路径下: cd /usr/local/hadoop/sbin。
start-dfs.shstop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

格式
在使用Hadoop之前我们需要格式化一些hadoop的基本信息。
使用如下命令:

hadoop namenode -format

在这里插入图片描述
发送至另外两台服务器

scp -r /usr/local/hadoop/ root@slave1:/usr/local/
scp -r /usr/local/hadoop/ root@slave2:/usr/local/

启动Hadoop
接下来我们启动Hadoop:

start-all.sh

输入命令应该会出现如下图界面:
出现如下界面代表成功:
在这里插入图片描述
使用 jps 查看 hadoop 进程是否启动成功。
master上:
在这里插入图片描述
slave1上:
在这里插入图片描述

slave2上:
,

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46526335/article/details/126983010

flume实践案例_lambda-小张的博客-爱代码爱编程

目录 安装flume:http://t.csdn.cn/J1Pnn 一、采集目录中的新文件到HDFS中 1.Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包 2.创建flume-file-hdfs.conf文件 二、采集文件新增内容到HDFS中 1.需求分析 2.实现  三、多级agent串联 1.配置hadoop

垃圾收集器_huangjiaxinz的博客-爱代码爱编程

垃圾收集器 图展示了七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用[3],图中收集器所处的区域,则表示它是属于新生代收集器抑或是老年代收集器。 ps:为什么垃圾收集器需要一般情况下需要

大数据面试之hive重点(二)_hive 底层引擎-爱代码爱编程

大数据面试之hive重点(二) Hive SQL转化为MR的过程? 可回答:1)Hive SQL的解析过程;2)Hive SQL的底层实现 问过的一些公司:阿里,头条,小米,滴滴,美团x2,网易,快手58,好未来 参考答案:

hadoop基础学习笔记_hadoop日志怎么看-爱代码爱编程

 告警和日志信息监控 目录 告警和日志信息监控 实验一:查看大数据平台日志信息          实验任务一:查看大数据平台主机日志 步骤一:查看内核及公共消息日志(/var/log/messages)。 步骤二:查看计划任务日志/var/log/cron。 步骤三:查看系统引导日志/var/log/dmesg。 步骤四:查看邮

linux 中的 20 大网络监控工具_linux 网络监控-爱代码爱编程

在本教程中,让我们讨论可用于 linux 系统的最佳网络监控工具。有很多可用的工具,如 nethogs、ntopng、nload、iftop、iptraf、bmon、slurm、tcptrack、cbm、netwatch、collectl、trafshow、cacti、etherape、ipband、jnettop、netspeed 和 speedomet

hive 的数据存储单元结构_hive存储结构-爱代码爱编程

hive的数据都存储在HDFS,主要是指Hive中的数据模型存储。 Hive中的数据存储单元结构有:数据库Database、表table(内部表table、外部表external table)、分区part

安装 windows server 2019 vm虚拟机_desktop experience-爱代码爱编程

目录 (1)系统语言设置(2)点击【Install now】(3)激活Windows(4)选择安装版本(5)同意【license terms】(6)选择安装类型(7)选择系统盘(8)设置管理员账户密码(9)登录

2.x版本又一个极端情况下的偶现严重问题-爱代码爱编程

【概述】 前段时间,在异常测试的环境里,发现yarn任务无法提交,经过逐步排查,最后发现在一个极端的场景下,存在JN不会重新向kerberos进行认证,导致整体均无法提供服务的情况。本文就来详细聊聊问题出现时的情况以及分析复现过程。 【问题分析】 某天下午,突然被拉到一个群里,上层业务的开发兄弟@我,说所有的yarn任务都无法提交了,麻烦

hadoop系列——hadoop集群安装day2-爱代码爱编程

Hadoop系列——Hadoop集群安装day2-1 Hadoop系列——Hadoop集群安装day2-1集群角色规划准备工作1.克隆centos准备三台机器2.更改三台主机名3.更改主机映射3.1获取ip地址

spark(ha)集群安装,算子,及与hive交互-爱代码爱编程

事先搭建好zookeeper和hadoop集群,(启动zk和hadoop) 1、下载安装包 https://archive.apache.org/dist/spark/spark-2.3.3/spark-2.3.3-bin-hadoop2.7.tgz spark-2.3.3-bin-hadoop2.7.tgz 2、解压文件 cd /

大数据培训技术phoenix和hbase表的关系_phoenix查看所有表-爱代码爱编程

Phoenix和Hbase表的关系 默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的。如图1和图2,US_POPULATION是在phoenix中直接创建的,而kylin相关表是在hbase中直接创建的,在phoenix中是查看不到kylin等表的。 图1 phoenix命令行中查看所有表: 图2 hbase命令行中查看所有

flume介绍和使用_[root@hadoop01 file]# flume-爱代码爱编程

概念 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。 Flume is a distributed, reliable,

我眼中的大数据(一)-爱代码爱编程

前言 在正式落地谈技术之前,先花一些篇幅说说大数据技术的发展史。我们常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable(如果大家需要可以留言给我,我可以专门解读一下)。 一、从搜索引擎开始 搜索引擎主要就做两件事情,一个是

hive ddl操作出现卡住现象源码分析与解决方法_hive 执行 提交前卡住-爱代码爱编程

最近遇到对Hive进行alter table时卡住无后续响应的问题,如下图所示:  即使重启Hive Metastore也依然无法解决这个问题,但是其他表的ddl操作都是正常的,只有这张表不行,经过排查后基本知道了原因所在,以及可以解决的办法。 一、相关机制和源码 1.1、如何维护锁信息 Hive2之后引入了一张新的MySQL元数据表叫hive

离线数仓搭建_09_ods层数据导入_ods层的数据要如何导入-爱代码爱编程

文章目录 11.0 数仓搭建ODS层11.1 ODS层(用户行为数据11.1.1 创建日志表ods_log11.1.2 Shell中单引号和双引号区别11.1.3 ODS层日志表加载数据脚本 11.2