系统部署
参考
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