【Docker】Docker安装Hadoop分布式集群

news/2024/11/17 23:48:22/

Docker安装分布式Hadoop集群

一、准备环境

1. 查看docker的hadoop镜像

docker search hadoop

在这里插入图片描述

2. 拉取stars最多的镜像

docker pull sequenceiq/hadoop-docker

3. 拉取完成后查看镜像是否已到本地

docker images
在这里插入图片描述

4. 运行第一个容器hadoop102

docker run --name hadoop102 -d -h hadoop102 -p 9870:9870 -p 19888:19888 -v /Users/anjuke/opt/data/hadoop:/opt/data/hadoop sequenceiq/hadoop-docker

5. 进入该容器

docker exec -it hadoop102 bash

6. 配置ssh生成秘钥,所有的节点都要配置

/etc/init.d/sshd start

7. 生成密钥

ssh-keygen -t rsa
在这里插入图片描述

8. 复制公钥到authorized_keys中

cd /root/.ssh/
cat id_rsa.pub > authorized_keys

9. 运行hadoop103容器

docker run --name hadoop103 -d -h hadoop103 -p 8088:8088 sequenceiq/hadoop-docker

10. 运行hadoop104容器

docker run --name hadoop104 -d -h hadoop104 sequenceiq/hadoop-docker

11. 分别进入hadoop103、hadoop104容器执行ssh私钥配置,步骤5-8

12. 将三个密钥全部复制到authorized_keys文件

在这里插入图片描述

13. 配置地址映射

vi /etc/hosts
172.17.0.2    hadoop102
172.17.0.3    hadoop103
172.17.0.4    hadoop104

14. 检查ssh是否成功

ssh hadoop102
ssh hadoop103
ssh hadoop104

二、配置Hadoop

hadoop目录安装在:/usr/local/hadoop-2.7.0/etc/hadoop

1. core-site.xml

<configuration><property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:8020</value> </property> <property><name>hadoop.tmp.dir</name><value>/opt/data/hadoop</value></property><property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property>
</configuration>

在这里插入图片描述

2. hdfs-site.xml

<property> <name>dfs.namenode.http-address</name> <value>hadoop102:9870</value> </property> 

3. yarn-site.xml

<property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> </property>

4. mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

5. 分发文件

scp /usr/local/hadoop-2.7.0/etc/hadoop/core-site.xml hadoop103:/usr/local/hadoop-2.7.0/etc/hadoop
scp /usr/local/hadoop-2.7.0/etc/hadoop/hdfs-site.xml hadoop103:/usr/local/hadoop-2.7.0/etc/hadoop
scp /usr/local/hadoop-2.7.0/etc/hadoop/yarn-site.xml hadoop103:/usr/local/hadoop-2.7.0/etc/hadoopscp /usr/local/hadoop-2.7.0/etc/hadoop/core-site.xml hadoop104:/usr/local/hadoop-2.7.0/etc/hadoop
scp /usr/local/hadoop-2.7.0/etc/hadoop/hdfs-site.xml hadoop104:/usr/local/hadoop-2.7.0/etc/hadoop
scp /usr/local/hadoop-2.7.0/etc/hadoop/yarn-site.xml hadoop104:/usr/local/hadoop-2.7.0/etc/hadoop

三、启动集群

1. 配置slaves文件

hadoop102
hadoop103
hadoop104

2. 发送到其他节点

scp /usr/local/hadoop-2.7.0/etc/hadoop/slaves hadoop103:/usr/local/hadoop-2.7.0/etc/hadoop
scp /usr/local/hadoop-2.7.0/etc/hadoop/slaves hadoop104:/usr/local/hadoop-2.7.0/etc/hadoop

3. 格式化文件系统

hdfs namenode -format

4. 在hadoop102启动hdfs

sbin/start-dfs.sh

5. 在hadoop103启动yarn

sbin/start-yarn.sh
访问Hadoop102:9870,查看是否能够看到hdfs界面
在这里插入图片描述

访问hadoop103:8088,查看能够看到yarn界面
在这里插入图片描述

集群搭建成功

四 案例

1. 执行一些hdfs命令

hadoop fs -ls /
hadoop fs -mkdir /hadoop
hadoop fs -ls /

在这里插入图片描述

2. 上传文件到hdfs上

hadoop fs -put word.txt /hadoop
hadoop fs -ls /hadoop

在这里插入图片描述

3. 执行wordcount案例

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount /hadoop/word.txt /output

在这里插入图片描述

在yarn上可以看到执行情况

在这里插入图片描述

五、关闭集群

hadoop102上:
stop-dfs.sh
hadoop103上:
stop-yarn.sh

http://www.ppmy.cn/news/40984.html

相关文章

不可变数据类型

不可变对象 不可变(immutable)&#xff1a; 即对象一旦被创建初始化后&#xff0c;内存中该类型的值永远不会改变&#xff0c;之后的每次改变都会产生一个新对象。 作为不可变类型&#xff0c;最主要的特性表现是&#xff1a;一旦创建&#xff0c;只要修改&#xff0c;就会在托…

cv2(OpenCV)下载安装

cv2对应库是OpenCV&#xff0c;官网下载链接&#xff1a;https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 最好下载对应python版本的&#xff0c;通过pip命令安装可能会出现版本过高或者过低的问题&#xff0c;导致import cv2没问题&#xff0c;但是内部函数无法调用。 …

CSS选择器基础1.1(查找标签)

1&#xff0c;标签选择器&#xff08;以标签名命名的选择器&#xff09; 结构&#xff1a; 标签名{CSS属性名:属性值;} 注&#xff1a;选中所有的这个标签都生效CSS。 2&#xff0c;类选择器 结构&#xff1a; .类名{CSS属性名&#xff1a;属性值;} 作用&#xff1a;通过类…

「MongoDB」时序数据库和MongoDB第二部分-模式设计最佳实践

在上一篇博客文章时间序列数据与MongoDB&#xff1a;第一部分-简介中&#xff0c;我们介绍了时间序列数据的概念&#xff0c;然后介绍了一些可以用于帮助收集时间序列应用程序需求的发现问题。对这些问题的回答有助于指导支持大容量生产应用程序部署所需的模式和MongoDB数据库配…

接口自动化【一】(抓取后台登录接口+postman请求通过+requests请求通过+json字典区别)

文章目录 前言一、requests库的使用二、json和字典的区别三、后端登录接口-请求数据生成四、接口自动化-对应电商项目中的功能五、来自postman的代码-后端登录总结前言 记录&#xff1a;json和字典的区别&#xff0c;json和字段的相互转化&#xff1b;postman发送请求与Python…

第三章 运算符

文章目录1. 什么是运算符2 算术运算符2.1 基本四则运算符 、-、*、/、%2.2 增量赋值运算符 、- 、* 、/ 、%2.3 自增/自减运算符 、--3. 关系运算符4. 逻辑运算符5. 位运算符6. 移位运算7. 条件运算符8. 运算符的优先级1. 什么是运算符 计算机的最基本的用途之一就是执行数学运…

一篇搞定Lambda和Stream流

一、Lambda表达式 jdk8中的语法糖&#xff0c;优化某些匿名内部类的写法&#xff0c;函数式编程的重要体现&#xff0c;不再关注对象是什么&#xff0c;更关注数据进行了什么操作 1、练习 练习1 练习2 练习3 练习4 练习5 2、省略规则 参数类型可以省略方法体只有一句代码时…

分库分表的知识

简述 分库分表是数据量大的场景下的一种技术优化方案&#xff0c;当数据量逐渐增大&#xff0c;单库单表已经无法满足业务需求时&#xff0c;分库分表成为了一个必要的选项。 分库分表可以有效地缓解数据库的性能瓶颈&#xff0c;提高系统的稳定性和可扩展性。但是&#xff0c…