阿里云ubuntu服务器基于docker搭建hadoop集群详细步骤
今天记录一下前不久基于docker搭建hadoop集群的详细步骤!(本地ubuntu虚拟机搭建可能步骤不完全一样,本文只介绍ubuntu服务器上的操作步骤)1、肯定是安装docker此处可以参照菜鸟教程-ubuntu安装docker卸载旧版本:apt-get remove docker docker-engine docker.io containerd runc使用docker...
今天记录一下前不久基于docker搭建hadoop集群的详细步骤!(本地ubuntu虚拟机搭建可能步骤不完全一样,本文只介绍ubuntu服务器上的操作步骤)
我自己写的安装脚本,可以直接复制粘贴运行的,有需要的可以下载,没有积分的下方评论区找我
1、肯定是安装docker
此处可以参照 菜鸟教程-ubuntu安装docker
卸载旧版本:
apt-get remove docker docker-engine docker.io containerd runc
使用docker软件仓库安装,更新apt索引:
sudo apt-get update
安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
使用以下指令设置稳定版仓库:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
更新 apt 包索引:
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io
要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出您的仓库中可用的版本:
apt-cache madison docker-ce
使用第二行中的版本字符串安装特定版本,例如 :
apt-get install docker-ce=5:19.03.4~3-0~ubuntu-xenial docker-ce-cli=5:19.03.4~3-0~ubuntu-xenial containerd.io
测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功:
sudo docker run hello-world
查看安装的docker:
docker ps -a
2、下面开始在docker上搭建hadoop集群了
拉取docker镜像以及查看镜像
docker pull ubuntu:16.04
docker images
启动镜像
docker run -it ubuntu:16.04 /bin/bash
之后就进入了该镜像,下面的操作都是在容器里面(注意,容器里面)注意看@后面的字母是不一样的
加入源
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe" > /etc/apt/sources.list
更新软件源
apt-get update
安装jdk openssh-client openssh-server vim
apt-get install openjdk-8-jdk
在这里插入代码片
apt-get install openssh-client
apt-get install openssh-server
apt-get install vim
配置免费登陆(啥也别问,下面的命令直接就是回车加上yes就好了)
cd ~
ls -a
ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
service ssh start
ssh 127.0.0.1
下载hadoop安装包
(https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz 这是下载hadoop安装包的网站,清华大学免费镜像,注意了,不要傻乎乎的用什么xftp连接服务器,然后本地下载压缩包上传解压哈,前面说了这是一个容器,不能瞎搞!按我说的去做就好了。下载之后就是解压,重命名什么的看得懂撒就不说了!)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
tar -zxvf hadoop-3.2.1.tar.gz -C /usr/local/
cd /usr/local/
mv hadoop-3.2.1 hadoop
修改hadoop配置文件以及配置java环境
vim /etc/profile
最后面加上下面代码
#java
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_NAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
上面是配置java环境的,下面是配置hadoop的,两个目录是不一样的首先
cd /usr/local/hadoop/etc/hadoop
下面代码太多了,就直接放一起粘贴了,应该看得懂吧
vim hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
vim core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://h01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop3/hadoop/tmp</value>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop3/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>/home/hadoop3/hadoop/hdfs/data</value>
</property>
</configuration>
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>
/usr/local/hadoop/etc/hadoop,
/usr/local/hadoop/share/hadoop/common/*,
/usr/local/hadoop/share/hadoop/common/lib/*,
/usr/local/hadoop/share/hadoop/hdfs/*,
/usr/local/hadoop/share/hadoop/hdfs/lib/*,
/usr/local/hadoop/share/hadoop/mapreduce/*,
/usr/local/hadoop/share/hadoop/mapreduce/lib/*,
/usr/local/hadoop/share/hadoop/yarn/*,
/usr/local/hadoop/share/hadoop/yarn/lib/*
</value>
</property>
</configuration>
vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>h01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
下面配置hadoop节点和master
vim workers
这是一个空白文件,直接在里面加就好了,随便加。
配置开机自启
vim ~/.bashrc
最后面插入下面代码
service ssh start
**退出(按三次exit!,可能每个人都不一样,总之退出容器就好了)**看到没,下面图片#后面是不一样的
exit
exit
exit
查看容器
docker ps -a
将刚才配置好的打包成镜像(这一步可能有点慢)
docker commit 容器id hadoop_init
查看镜像
docker images
配置网络桥连接以及查看网络
docker network create --driver=bridge hadoop
docker network ls
指定master
docker run -itd --network hadoop -h 'h01' --name 'h01' -p 8088:8088 -p 9870:9870 hadoop_init /bin/bash
docker run -itd --network hadoop -h 'h02' --name 'h02' hadoop_init /bin/bash
docker run -itd --network hadoop -h 'h03' --name 'h03' hadoop_init /bin/bash
进入 h01以及格式化,启动等操作了
docker attach h01
cd /usr/local/hadoop/bin
./hadoop namenode -formate
cd ../sbin/
./start-all.sh
最后出现这个就代表你成功了!(这里是在另外一台服务器上搭建的截图,当时配了5个几点,总之只要每个节点后面出现有ip就可以了)
更多推荐
所有评论(0)