阿里雲服務器80端口開啟方法:阿里雲端口開放無效

吐血整理,搭建了兩遍,親測可用!!!
我買的是阿里雲2C4G的服務器,使用的是CentOS 7.7版本。在搭建過程中踩了不少坑,本篇文章希望對大家有用

CentOS 7.7安裝Docker

查看內核版本(使用root用戶登陸)

uname -a

把yum包更新到最新

yum update

安裝需要的軟件包

yum install -y yum-utils device-mapper-persistent-data lvm2

設置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

創建目錄

cd /mnt
mkdir docker 
cd docker

可以查看所有倉庫中所有docker版本,並選擇特定版本安裝

yum list docker-ce --showduplicates | sort -r

安裝Docker,命令:yum install docker-ce-版本號

yum install docker-ce-18.06.3.ce

啟動並加入開機啟動

systemctl start docker
systemctl enable docker

驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

docker version

Ubuntu 18.04 安裝Docker

創建目錄

cd /mnt
mkdir docker 
cd docker

下載

wget https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/bionic/pool/stable/amd64/containerd.io_1.2.6-3_amd64.deb
wget https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce-cli_19.03.9~3-0~ubuntu-bionic_amd64.deb
wget https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_19.03.9~3-0~ubuntu-bionic_amd64.deb

安裝

sudo dpkg -i *.deb

啟動

service docker start

生成服務器、Hadoop鏡像

獲取centos7鏡像

docker pull centos

查看鏡像列表

docker images

安裝SSH

cd /mnt/docker
mkdir ssh
cd ssh
vi Dockerfile

內容

FROM centos
MAINTAINER dys

RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN yum  install -y openssh-clients

RUN echo "root:1234" | chpasswd
RUN echo "root   ALL=(ALL)       ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

保存並退出

執行構建鏡像的命令,新鏡像命名為 centos7-ssh

docker build -t="centos7-ssh" .

基於 centos7-ssh 這個鏡像啟動三個容器

docker run -d --name=centos7.ssh centos7-ssh
docker run -d --name=centos7.ssh2 centos7-ssh
docker run -d --name=centos7.ssh3 centos7-ssh

構建Hadoop鏡像

創建目錄

cd /mnt/docker
mkdir hadoop
cd hadoop

下載jar包

//下載hadoop,構建鏡像時使用
wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
//下載jdk,構建鏡像時使用
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

編輯DockerFile

vi Dockerfile

內容

FROM centos7-ssh
ADD jdk-8u141-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_141 /usr/local/jdk1.8
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH

ADD hadoop-2.9.2.tar.gz /usr/local
RUN mv /usr/local/hadoop-2.9.2 /usr/local/hadoop
ENV HADOOP_HOME /usr/local/hadoop
ENV PATH $HADOOP_HOME/bin:$PATH

RUN yum install -y which sudo

保存並退出

執行構建命令

docker build -t="hadoop" .

運行容器

docker run --name hadoop0 --hostname hadoop0 -d -P -p 50070:50070 -p 8088:8088 hadoop
docker run --name hadoop1 --hostname hadoop1 -d -P hadoop
docker run --name hadoop2 --hostname hadoop2 -d -P hadoop

Hadoop 集群搭建

配置ll命令

vim ~/.bashrc

內容

增加下面的配置

alias ll='ls -l'

保存退出

重新加載

source ~/.bashrc

安裝vim、net-tools

yum install net-tools
yum install vim

修改每台服務器的 /etc/hosts

使用ifconfig命令查看自己的IP,改為自己服務器的IP

172.18.0.5 hadoop0
172.18.0.6 hadoop1
172.18.0.7 hadoop2

修改時區

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

SSH無密碼登陸

在每台服務器上都執行以下命令,執行後會有多個輸入提示,不用輸入任何內容,全部直接回車即可

ssh-keygen 

輸入下面命令時,需要用到上面設置的密碼1234

ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@hadoop0 
ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@hadoop1
ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@hadoop2

安裝配置 hadoop

在 master 中執行

cd /usr/local/hadoop
mkdir tmp hdfs
mkdir hdfs/data hdfs/name

配置core-site.xml

vim /usr/local/hadoop/etc/hadoop/core-site.xml

在 塊兒中添加:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop0:9000</value>
</property>
<property>
   <name>hadoop.tmp.dir</name>
   <value>file:/usr/local/hadoop/tmp</value>
</property>
<property>
   <name>io.file.buffer.size</name>
   <value>131702</value>
</property>

配置hdfs-site.xml

vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

在 塊兒中添加:

    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/hdfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/hdfs/data</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop0:9001</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>

配置mapred-site.xml

這個文件默認不存在,需要從 mapred-site.xml.template 複製過來

cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

編輯文件

vim /usr/local/hadoop/etc/hadoop/mapred-site.xml

在 塊兒中添加:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop0:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop0:19888</value>
</property>

配置yarn-site.xml

vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

在 塊兒中添加:

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>hadoop0:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hadoop0:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hadoop0:8031</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hadoop0:8033</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop0:8088</value>
</property>

配置slaves

vim /usr/local/hadoop/etc/hadoop/slaves

刪除已有內容,添加:

hadoop1
hadoop2

配置hadoop-env.sh

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

找到 export JAVA_HOME=${JAVA_HOME},改為自己JAVA_HOME的絕對路徑

export JAVA_HOME=/usr/local/jdk1.8

複製文件到 hadoop1,hadoop2

scp -r /usr/local/hadoop hadoop1:/usr/local
scp -r /usr/local/hadoop hadoop2:/usr/local

設置 hadoop 環境變量

在每台服務器上都執行:

vim ~/.bashrc

增加內容

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

保存退出,重新加載資源

source ~/.bashrc

啟動 hadoop

在master啟動hadoop,從節點會自動啟動

初始化

hdfs namenode -format

啟動

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

測試

如果您使用的也是阿里雲服務器,那需要在阿里雲客戶端調整安全組,阿里雲默認只開放22端口,所以需要把50070、8088都開通阿里雲使用Docker搭建Hadoop集群

端口號.png

瀏覽器中訪問:

http://服務器IP:50070/

阿里雲使用Docker搭建Hadoop集群

圖片1.png

http://服務器IP:8088/

hdfs 操作

hdfs dfs -mkdir -p /usr/local/hadoop/input
hdfs dfs -put /usr/local/hadoop/etc/hadoop/kms*.xml /usr/local/hadoop/input

http://服務器IP:50070/,在文件瀏覽頁面查看阿里雲使用Docker搭建Hadoop集群

驗證hdfs.png

mapreduce 操作

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep /usr/local/hadoop/input /usr/local/hadoop/output 'dfs[a-z.]+'

阿里雲使用Docker搭建Hadoop集群

驗證mapreduce.png

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/216788.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 23:33
下一篇 2024-12-08 23:33

相關推薦

發表回復

登錄後才能評論