阿里雲ubuntu服務器基於docker搭建hadoop集羣詳細步驟

今天記錄一下前不久基於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就可以了)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章