系统部署
参考
Docker 下载:https://docs.docker.com/desktop/windows/install/
Docker 安装:https://www.runoob.com/docker/windows-docker-install.html
部署 Centos7
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 国内源
参考
基础工具安装
vim
Linux 最好用的文本编辑器
yum -y install vim
net-tools
Linux 网络管理工具
yum -y install net-tools
openssh-clients/openssh-server
ssh 客户端
yum -y install openssh-clients && yum -y install openssh-server
openssl
通过 SSL 保障,保证安全通信的软件库包
yum -y install openssl
wget
远程下载工具
yum -y install wget
开发工具安装
Mysql 安装
请参考我的另一篇文章:
《Hadoop 高并发集群 与 开发环境部署》第 5.1 小节
Java 安装
请参考我的另一篇文章:
《Hadoop 高并发集群 与 开发环境部署》第 5.2 小节
Python3 安装
请参考我的另一篇文章:
《Hadoop 高并发集群 与 开发环境部署》第 5.3 小节
Scala 安装
请参考我的另一篇文章:
《Hadoop 高并发集群 与 开发环境部署》第 5.4 小节
制作镜像
打包镜像
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 nn \ --privileged=true -p 50070:50070 -p 8080:8080\ --hostname nn \ --net hadoop --ip 192.168.10.10 \ --add-host dn1:192.168.10.11 \ --add-host dn2:192.168.10.12 \ -d 「Image Name」(记得带版本号)\ /usr/sbin/init
如果需要开放端口请添加-p参数内容为 容器内端口:映射至本机的端口
DataNode 1
docker run -itd --name dn1 \ --privileged=true \ --hostname dn1 \ --net hadoop --ip 192.168.10.11 \ --add-host nn:192.168.10.10 \ --add-host dn2:192.168.10.12 \ -d 「Image Name」(记得带版本号)\ /usr/sbin/init
DataNode 2
docker run -itd --name dn2 \ --privileged=true \ --hostname dn2 \ --net hadoop --ip 192.168.10.12 \ --add-host dn1:192.168.10.11 \ --add-host nn:192.168.10.10 \ -d 「Image Name」(记得带版本号)\ /usr/sbin/init
SSH 配置
请参考我的另一篇文章:
《Hadoop 高并发集群 与 开发环境部署》第 6.2.2 小节
Hadoop 完全分布式部署
准备
下载地址
wget https://dlcdn.apache.org/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
准备目录
mkdir /usr/hadoop \ && mkdir /usr/hadoop/tmp \ && mkdir /usr/hadoop/hdfs/name \ && mkdir /usr/hadoop/hdfs/data
环境变量请解压后自行配置
变量名请遵守:HADOOP_HOME
修改配置
地址:$HADOOP_HOME/etc/hadoop/
core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://nn:9000</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/hadoop/hdfs/data</value> </property> </configuration>
mapred-site.xml
复制 mapred-site.xml.template 为 mapred-site.xml
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapred.job.tracker</name> <value>http://nn:9001</value> </property> </configuration>
yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>nn</value> </property> </configuration>
masters
地址: $HADOOP_HOME/etc/hadoop/masters
内容:
nn
slaves
地址: $HADOOP_HOME/etc/hadoop/slaves
修改内容:
「datanode HOST 1」 「datanode HOST 2」 ............ 「datanode HOST n」
Hadoop-env.sh
前往该文件中添加 JAVA_HOME 避免出现识别不到 JDK 的情况
同步
使用 scp 命令同步所有变动文件
参考:
scp -r /usr/dt dn1:/usr/
检验
初始化 HDFS
hadoop namenode -format
启动 Hadoop
sh $HADOOP_HOME/sbin/start-all.sh
查看集群状态
hadoop dfsadmin -report