使用阿里云服务器搭建一个Hadoop集群

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 简单的Hadoop集群搭建

  本次主要是想通过阿里云服务器和VM虚拟机搭建一个完全分布式的集群出来,在之前都是通过VM克隆虚拟机总感觉不够真实,所以在了解到“飞天加速计划” 之后就萌生了这个想法。笔者现在作为计科专业的大三学生,之前在学校有学习过关于Hadoop相关的学习,所以本次在搭建的过程中,没有很大的困难问题,不过在搭建完成之后还是有部分问题和预想的功能暂未完成。

 

搭建过程:

 

1. 获取linux环境

  •   本次租用了阿里云服务器(ContOS7.4)

2. 访问服务器

  •   在租用之后可以通过阿里云的管理控制台点击远程连接直接使用,在此之前需要设置好服务器的访问密码等等。
  •    除了直接通过阿里云提供的浏览器方式访问,我选择使用XShell工具对服务器进行操作,好处是可以直接通过Xttp上传文件。

3 .配置JDK环境

 - JDK(JDK1.8.0_linux)

   关于JDK直接在官网或者浏览器中可以找到相关的下载,由于是linux系统,那么安装肯定与windows安装方式不同。

   1、上传下载好的压缩包到服务器中,我选择的路径是/opt/software存放安装压缩包

/opt/module存放软件路径,目的是为了方便管理。

   2、使用tar命令解压压缩包,tar-zxvf xxx.tar -C /opt/module/

   3、配置JDK环境变量

指令:vim /etc/profile

打开文件,在文件最下方添加环境变量,保存退出(!wq)

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
# 注:本段不是xml文件,只是为了展示

3、加载文件 source /etc/profile

输入java -version 检查是否配置加载成功

image.png

4. 配置Hadoop

  1、同JDK一样,下载文件,上传到服务器中解压

  2、配置环境变量

同JDK一样配置 /etc/profile

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

3、配置Hadoop

  • 进入Hadoop解压后的文件路径下进入 配置文件路径  /hadoop/etc/hadoop/
  • vim hadoop-env.sh   配置JDK
# The java implementation to use.
export JAVA_HOME=/opt/module/jdk1.8.0_171
  • vim core-site.xml 配置
<configuration><!-- 指定HDFS中NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://notting:9000</value></property><!-- 指定Hadoop运行时产生文件的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.6.5/data/tmp</value></property></configuration>
  • vim hdfs-site.xml  配置副本数量、主节点地址
<configuration><!-- 指定HDFS副本的数量 --><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.secondary.http-address</name><value>aliyun101:50080</value></property><!-- 如果是通过公网IP访问阿里云上内网搭建的集群 --><property><name>dfs.client.use.datanode.hostname</name><value>true</value><description>only cofig in clients</description></property><property><name>dfs.hosts.exclude</name><value>/opt/module/hadoop2.6.5/conf/exclude</value><description>拒绝加入集群的节点列表</description></property></configuration>
  • vim yarn-env.sh    配置JDK
# some Java parameters
export JAVA_HOME=/opt/module/jdk1.8.0_171
  • vim yarn-site.xml 配置yran资源调度器
<configuration><!-- Reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>aliyun101</value></property></configuration>#此处的aliyun101是我自己电脑的vm的虚拟机
  • (对mapred-site.xml.template重新命名为) mapred-site.xml
  • mv mapred-site.xml.template mapred-site.xml
  • vim mapred-site.xml
<configuration><!-- 指定MR运行在YARN上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
  • 执行格式化,hdfs namenode -format

执行完成之后,集群就可以通过命令的方式启动,不能随便进行多次格式化,可能导致节点的启动失败


重复以上步骤,在vm虚拟机中也配置一台这样的环境,到这里,集群就算是简单搭建完成。下面对集群进行启动和访问

输入集群启动命令:sbin/start-dfs.sh

启动Yarn:sbin/start-yarn.sh

输入JPS查看进程是否启动:

image.png

此时未启动aliyun101节点

进入ip:50070查看集群状态

image.png

自此。一个简单的单节点就完成了(实际上还有两台虚拟机未启动,单配置相同,在启动之后,可以在网页上查看到节点状态才算基本完成)


总结

虽然集群的简单搭建算是勉强完成,但是在实际的情况中还有以下问题未解决

集群群起功能为实现

在我进行集群启动时,出现了无法访问子节点的地址从而启动节点进程的问题,在尝试了ssh分发配置失败之后,查询了相关的信息和在寻求帮助的过程中了解到,由于阿里云服务器防火墙的关系,我使用的公网ip的方式是不能直接访问服务器,需要我进行网络的其他相关配置,但是由于网络基础,所以暂未解决,只能通过单节点启动命令启动各个节点进程。但在集群管理页面可以正常查看节点的状态。

Hbase、Zookeeper未安装完成

在本次的计划中还计划了安装Hbase和Zookeeper,但由于部分原因还暂未完成搭建,在接下来的时间,我继续完成这个计划

设想功能

     除了程序的安装,本次的目的还有一个是想通过服务器搭建一个自己的网站,其中包括个人的小博客,对日常的一些解决技术问题的记录。

     通过hbase存储数据,实现网站的登录访问,使用hadoop来做一个属于自己的云盘。

   以上的功能预计在22年的7月份之前完成。


最后,感谢 “高校学生在家实践”这个计划,在整个计划的构建和完成中,我也收获到了很多新的知识。期望自己能够早日的完成这个计划。


相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
2月前
|
Kubernetes 安全 Docker
在 K8s 集群中创建 DERP 服务器
在 K8s 集群中创建 DERP 服务器
|
7天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
13 1
|
8天前
|
分布式计算 负载均衡 Hadoop
Hadoop集群节点添加
Hadoop集群节点添加
|
12天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
41 9
|
13天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
23 4
|
16天前
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop的三种集群模式
【4月更文挑战第9天】【Hadoop】Hadoop的三种集群模式
|
17天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
17 0
|
25天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
18 0
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
26 0