5分钟装好hadoop分布式集群

2021-07-20  本文已影响0人  小肥爬爬

简介

这是一篇快速安装 hadoop集群的博客(安装jdk8和hadoop3.3 版本) , 应该只需要你5分钟.

真的, 我希望你用5分钟就能装好 hadoop, 虽然我自己花了差不多4天才装好它.... 但程序员的时间是宝贵的, 希望你会喜欢这种博客风格.

如果你想一步步来安装hadoop, 你可以看这篇勤快版本: https://www.jianshu.com/p/0c5176216b1d

预备工作

你当然要装好docker, 同时需要对docker 有一定的使用知识.

你也需要下载好工程:

git clone https://gitee.com/xiaofeipapa/docker_hadoop

开始

构建 docker

进入下载好的git目录, 然后

cd 到目录 ubuntu-ssh, 运行:

sudo docker build -t 'cys/ubuntu-ssh' . 

cd 到目录 ubuntu-jdk8, 运行:

sudo docker build -t 'cys/ubuntu-ssh-jdk8' . 

cd 到目录 ubuntu-jdk8-hadoop, 运行:

sudo docker build -t 'cys/ubuntu-ssh-jdk8-hadoop' .

构建自定义网络

sudo docker network create --subnet=172.20.0.0/24 my_net

--subnet :设置前 24 位为网络位,后 8 位为主机位,该网段可用 IP 地址:172.20.0.1 到 172.20.0.254

其中, 172.20.0.1 为网关, 其他容器不能再使用.

集群规划

名称 ip
主节点 hadoop1 172.20.0.2
从节点 hadoop2 172.20.0.3
从节点 hadoop3 172.20.0.4

这里列出需要的集群信息. 注意ip和自定义网络的网段一致.

启动容器

# hadoop 1 : 172.20.0.2
sudo docker run --name hadoop1 --hostname hadoop1 --net my_net --ip 172.20.0.2 -d -P -p 50070:50070 -p 8088:8088 cys/ubuntu-ssh-jdk8-hadoop    # hadoop1 对外开放端口50070和8088

sudo docker run --name hadoop2 --hostname hadoop2 --net my_net --ip 172.20.0.3 -d -P cys/ubuntu-ssh-jdk8-hadoop    

sudo docker run --name hadoop3 --hostname hadoop3 --net my_net --ip 172.20.0.4 -d -P cys/ubuntu-ssh-jdk8-hadoop   

进入主节点进行操作

sudo docker exec -it hadoop1 /bin/bash

ping 172.20.0.3

可以看到该容器能够ping 通其余两台机器. 后续的所有操作如无提示, 都是在主节点机器进行操作.

设置免密码登录

ssh-keygen
# 一路回车

# 提示输入密码, 密码是 root
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

执行命令

cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh

检查主节点进程

现在应该还是在主节点容器里, 敲入 jps, 应该看到以下进程:


image.png

检查从节点进程

对 hadoop2 和 hadoop3 依次进入, 并运行 jps

sudo docker exec -it hadoop2 /bin/bash
jps

应该能看到:

image.png

这样, hadoop 就算安装成功了.

测试

在主节点创建文件并上传

创建 a.txt

vim a.txt
hello hadoop
hello spark
hello flink

上传

hdfs dfs -put a.txt /
hadoop fs -ls /

应该能看到文件已成功上传


image.png

提交job至集群测试

cd /usr/local/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-3.3.1.jar wordcount /a.txt /out

首先应该能看到类似如下输出:


image.png

然后执行:

hadoop fs -ls /out

可以看到 out 的内容如下:

image.png

再查看输出内容:

hadoop fs -cat /out/part-r-00000

可以看到:


image.png

到此为止, 大功告成!!

感谢

https://www.cnblogs.com/rmxd/p/12051866.html#_label5_5

上一篇下一篇

猜你喜欢

热点阅读