基于Docker搭建大数据集群(三)Hadoop部署

简介: 基于Docker搭建大数据集群(三)Hadoop部署
主要内容
  • Hadoop安装
前提
  • zookeeper正常使用
  • JAVA_HOME环境变量
安装包

微云下载 | tar包目录下

  • Hadoop 2.7.7
角色划分
角色分配 NN DN SNN
cluster-master
cluster-slave1
cluster-slave1
cluster-slave1

一、环境准备

上传到docker镜像

docker cp hadoop-2.7.7.tar.gz cluster-master:/root/tar

解压

tar xivf hadoop-2.7.7.tar.gz -C /opt/hadoop

二、配置文件

core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://jinbill</value>
        </property>
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>cluster-master:2181</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop</value>
        </property>
</configuration>

yarn-site.xml

<configuration>
        <property>
                 <name>yarn.nodemanager.aux-services</name>
                 <value>mapreduce_shuffle</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.ha.enabled</name>
                 <value>true</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.cluster-id</name>
                 <value>mr_jinbill</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.ha.rm-ids</name>
                 <value>rm1,rm2</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.hostname.rm1</name>
                 <value>cluster-slave2</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.hostname.rm2</name>
                 <value>cluster-slave3</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.zk-address</name>
                 <value>192.168.11.46:12181</value>
        </property>
        <property>
                <name>yarn.nodemanager.pmem-check-enabled</name>
                <value>false</value>
        </property>
        <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
        </property>
</configuration>

hadoop-env.sh

export JAVA_HOME=/opt/jdk/jdk1.8.0_221

hdfs-site.xml

<configuration>
        <property>
                <name>dfs.nameservices</name>
                <value>jinbill</value>
        </property>
        <property>
                <name>dfs.ha.namenodes.jinbill</name>
                <value>nn1,nn2</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.jinbill.nn1</name>
                <value>cluster-master:8020</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.jinbill.nn2</name>
                <value>cluster-slave1:8020</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.shsxt.nn1</name>
                <value>cluster-master:50070</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.shsxt.nn2</name>
                <value>cluster-slave1:50070</value>
        </property>
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://cluster-slave1:8485;cluster-slave2:8485;cluster-slave3:8485/jinbill</value>
        </property>
        <property>
                <name>dfs.client.failover.proxy.provider.jinbill</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
        </value>
        </property>
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>sshfence</value>
        </property>
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/root/.ssh/id_rsa</value>
        </property>
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/opt/hadoop/data</value>
        </property>
        <property>          
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
</configuration>

新建slaves文件,若有则直接编辑

cluster-slave1
cluster-slave2
cluster-slave3

三、初始化

启动所有节点JournalNode

hadoop-daemon.sh start journalnode

在NN上初始化元数据

hdfs namenode -forma

将格式化后的元数据拷贝到SNN上

scp /opt/zookeeper/dfs cluster-slave1:/opt/hadoop

启动master节点的NN

hadoop-daemon.sh start namenode

在SNN上执行

hdfs namenode -bootstrapStandby

启动SNN

hadoop-daemon.sh start namenode

在NN或SNN上初始化ZKFC

hdfs zkfc -formatZK

停止上面节点

stop-dfs.sh

四、 启动

start-dfs.shstart-yarn.sh

五、测试是否成功

因为网段不同,所以得加路由才能访问

  1. 打开cmd,需要管理员权限
  2. route add 172.15.0.0 mask 255.255.0.0 192.168.11.38 -p

访问UI界面

Hadoop 集群 访问地址Hadoop 作业 地址


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
10月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
529 79
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
734 4
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
600 2
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
509 1
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
542 1
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
384 0
|
4月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
353 14
|
6月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
230 4
|
5月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
205 0
|
4月前
|
传感器 人工智能 监控
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
169 14