前言
上篇文章咱们将大数据相关的一些组件都集成安装在了一个docker中
这篇文章咱们继续 启动下该docker中的大数据相关的组件
将大数据运行环境跑起来
上篇文章的几个注意点再重申下
- 安装包应用编译之后的包
组件的安装包不要用源码包 因为源码包还需要编译打包 编译的话 还需要在docker中安装编译环境 比如 # 不要下载源码包 hadoop-2.10.1-src.tar.gz 而应该下载编译之后的包 hadoop-2.10.1.tar.gz #HADOOP_URL=https://downloads.apache.org/hadoop/common/stable2/hadoop-2.10.1.tar.gz # 北京理工大学开源软件镜像mirror.bit.edu.cn HADOOP_URL=http://mirror.bit.edu.cn/apache/hadoop/common/stable2/hadoop-2.10.1.tar.gz
- 本地编译dokcer镜像然后上传到阿里镜像库然后其他地方使用
# 登陆阿里镜像库 docker login --username=孟凡霄 --password mfx@123456 registry.cn-hangzhou.aliyuncs.com # 生成镜像 # ${dir}/hadoop 该目录指向Dockerfile文件 docker build --network host -t hadoop:v1.0 ${dir}/hadoop # 镜像文件重命名 docker tag hadoop:v1.0 registry.cn-shanghai.aliyuncs.com/mengfanxiao/hadoop:v1.0 # 将镜像文件上传到阿里镜像库 docker push registry.cn-shanghai.aliyuncs.com/mengfanxiao/hadoop:v1.0
镜像生成好之后分别在3台服务器上下载镜像 然后通过脚本启动镜像
# 下载镜像 docker pull registry.cn-shanghai.aliyuncs.com/mengfanxiao/hadoop:v1.0 # 启动镜像脚本 cd /opt/bigdata/docker-hadoop-test chmod 777 hadoop.sh ./hadoop.sh
启动hadoop集群
先通过流程图来梳理一下启动的步骤
两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信 当active状态的NameNode的命名空间有任何修改时 会告知大部分的JournalNodes进程 standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间 standby可以确保在集群出错时,命名空间状态已经完全同步了
namenode宕机了 可以手工或者自动切换
在hadoop1启动所有JournalNode
cd /usr/local/hadoop/sbin chmod 777 hadoop-daemons.sh hadoop-daemons.sh start journalnode
多个NameNode之间共享数据方式
- Nnetwork File Syste
通过linux共享的文件系统,属于操作系统的配置
- Quorum Journal Node
hadoop自身的东西,属于软件的配置 手工或者自动切换到另一个NameNode提供服务