阿里云centos+Docker+hadoop

发布时间 2023-11-21 00:12:46作者: 矫矫虎臣

在阿里云上搭建hadoop

镜像:centos

容器:docker

软件:hadoop

阿里云centos+Docker+hadoop

Docker

在Centos7下面安装docker

(1)移除旧版:

 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \docker-latest-logrotate \docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

(2)安装工具:

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

(3)添加软件源信息:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(4)更新yum缓存:

yum makecache fast

(5)安装

docker-ce:yum -y install docker-ce

(6)启动:

systemctl start docker

(7)查看:

systemctl status docker

(8)运行hello-world:

docker run hello-world

在docker中安装centos镜像

(1)查找镜像:

docker search centos

(2)下载镜像:

docker pull centos

(3)查看镜像:

docker images

(4)运行镜像:

docker run -itd centos:latest /bin/bash

(5)查看容器:

docker ps

(6)进入镜像:

docker attach 容器id

(7)停止容器:

docker stop 容器id

(8)删除容器:

docker rm 容器id

如果centos镜像中运行systemctl报错,按下面步骤运行镜像

(1)运行镜像:

docker run -d --name centos --privileged=true centos:lstest 
/usr/sbin/init

(2)进入镜像:

docker exec -it centos /bin/bash

Docker 国内源
参考源

阿里镜像(建议)

进入管理控制台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务 --> 镜像加速器,复制自己的专属加速器地址。

添加

Linux

vi /etc/docker/daemon.json

MAC

请前往 Preferences -> Daemon 处设置

重启 docker

Linux

镜像部署

systemctl restart docker

拉取

docker pull centos:centos7

检查本地镜像

docker images

启动

docker run -itd --name 「DIY Image Name」 centos:centos7 /bin/Bash

查看启动信息

docker ps

管理容器

docker start/kill/stop/rm 「CONTAINER ID」

进入容器

docker exec -it 「CONTAINER ID」 /bin/Bash

制作开发环境镜像
Centos 国内源

基础工具安装

(1)vim
Linux 最好用的文本编辑器

yum -y install vim

(2)net-tools

Linux 网络管理工具

yum -y install net-tools

openssh-clients/openssh-server

(3)ssh 客户端

yum -y install openssh-clients && yum -y install openssh-server

(4)openssl
通过 SSL 保障,保证安全通信的软件库包

yum -y install openssl

(5)wget
远程下载工具

yum -y install wget

制作镜像
打包镜像

docker commit -a "「Image Name」" -m "「Comment」"  「CONTAINER ID」 「Image Name」:v「version」

开始生产集群
统一口径
创建网络

docker network create --subnet=192.168.10.1/24 「Net Name」

统一 IP 和 Host

NameNode

docker run -itd --name master \
--privileged=true -p 8020:8020 -p 9870:9870 -p 19888:19888 -p 9000:9000 -p 50070:50070 \
--hostname master \
--net netme --ip 192.168.10.10 \
--add-host slave01:192.168.10.11 \
--add-host slave02:192.168.10.12 \
-d hdp:1.0 \
/usr/sbin/init

如果需要开放端口请添加-p参数内容为 容器内端口:映射至本机的端口

DataNode 1

docker run -itd --name slave01 \
--privileged=true -p 8088:8080  \
--hostname slave01 \
--net netme --ip 192.168.10.11 \
--add-host master:192.168.10.10 \
--add-host slave02:192.168.10.12 \
-d hdp:1.0 \
/usr/sbin/init

DataNode 2

docker run -itd --name slave02 \
--privileged=true \
--hostname slave02 \
--net netme --ip 192.168.10.12 \
--add-host master:192.168.10.10 \
--add-host slave02:192.168.10.11 \
-d hdp:1.0 \
/usr/sbin/init

hadoop

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  1. 修改 /opt/module/hadoop-3.1.3/sbin/start-dfs.sh和 /opt/module/hadoop-3.1.3/sbin/stop-dfs.sh

vim /opt/module/hadoop-3.1.3/sbin/start-dfs.sh

vim /opt/module/hadoop-3.1.3/sbin/stop-dfs.sh

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
  1. 修改 /opt/module/hadoop-3.1.3/sbin/start-yarn.sh和 /opt/module/hadoop-3.1.3/sbin/stop-yarn.sh

vim /opt/module/hadoop-3.1.3/sbin/start-yarn.sh

vim /opt/module/hadoop-3.1.3/sbin/stop-yarn.sh

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

core-xml.site

<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/tmp</value>
        <description>Abase for other temporary directories.</description>
</property>

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
</property>


<property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
</property>

<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>

<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>

hdfs-xml.site

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

<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave02:9868</value>
</property>

<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>

yarn-xml.site

<property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
</property>


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


<property>
 	<name>yarn.nodemanager.env-whitelist</name>	<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>

<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>


<property>  
    <name>yarn.log.server.url</name>  
    <value>http://master:19888/jobhistory/logs</value>
</property>


<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

mareduce-xml.site

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


<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>


<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
</property>

<property>
           <name>yarn.app.mapreduce.am.env</name>
           <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
           <name>mapreduce.map.env</name>
           <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
           <name>mapreduce.reduce.env</name>
           <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>

slaves/works

bigdata1
bigdata2
bigdata3

hadoop-env.sh

JAVA_HOME=/opt/module/jdk1.8.0_212