hadoop集群离线化搭建(利用HDP快速搭建大数据集群)(一)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: hadoop集群离线化搭建(利用HDP快速搭建大数据集群)

ansible的离线安装


链接:https://pan.baidu.com/s/1dKlwtLWSOKoMkanW900n9Q
提取码:ansi

相关安装方法详见本人的另一个博客:ansible2.9.18 centos7 x86_64系统下的完全rpm离线安装按照以上博客安装即可 ,本例安装在192.168.0.16上

首先需要说明的是,本次安装教程使用三台虚vm拟机搭建Hadoop集群,相关服务器的具体信息如下:

192.168.0.16 4G内存,4CPU,100G硬盘
192.168.0.17 4G内存,4CPU,100G硬盘
192.168.0.18 4G内存,4CPU,100G硬盘

Hadoop集群的部署计划为:192.168.0.16设置为主节点,192.168.0.17和192.168.0.18设置为副节点。主节点安装ambari,并安装Hadoop的hbase,hdfs,zookeeper,kafka,从节点安装hbase,hdfs,zookeeper,kafka

二,集群搭建前的注意事项和相关安装包的下载


**(1)三台服务器的防火墙和selinux的关闭

在三台服务器上都执行以下命令:

systemctl disable firewalld && systemctl stop firewalld
编辑 /etc/selinux/config
将该文件的SELINUX=enforcing这一行修改为SELINUX=disabled

如果是使用ansible,那么,命令是这样的(在192.168.0.16):

[root@master html]# ansible all -m shell -a 'systemctl disable firewalld'
192.168.0.18 | CHANGED | rc=0 >>
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
192.168.0.17 | CHANGED | rc=0 >>
192.168.0.16 | CHANGED | rc=0 >>
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master html]# ansible all -m shell -a 'systemctl stop firewalld'
192.168.0.17 | CHANGED | rc=0 >>
192.168.0.18 | CHANGED | rc=0 >>
192.168.0.16 | CHANGED | rc=0 >>

(2)ambari和HDP的下载链接
ambari和HDP
提取码:hado
下载的文件上传到主服务器192.168.0.16的root目录下,以作备用

三,集群的免密配置和ansible的配置以及域名的设定


(1)ansible的配置
vim /etc/ansible/hosts 在文件末尾添加如下内容:

[hadoopcluster]
192.168.0.16
192.168.0.17
192.168.0.18

(2)免密配置

这个配置有点意思了,我们要达到的效果是三台服务器任意一台登录其它服务器都是免密状态,因此,配置思路是在每一台服务器上生成公私钥,然后将三个authorized_keys的内容合并到一起就可以了,具体操作如下:

在192.168.0.16 这台服务器上,先生成公私钥,然后ssh-copy-id 到自身,也就是执行这么两个命令:

ssh-keygen -t rsa

ssh-copy-id 192.168.0.16

此时,我们观察vim ~/.ssh/authorized_keys,可以看到只有一台服务器的信息。在其余两台服务器同样操作后,将authorized_keys 的内容合并(建议使用xshell复制),最终的vim ~/.ssh/authorized_keys内容应该如下(可以看到包含有root@master,root@slave1,root@slave2就可以了):

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkAAuVE1YSwR6aBTpfaOK5PsG3p+FBs4w0/L6pe7lPu/yGAR7TtJgYA/5u9Vf8wIdVtrnZlDXq7bUkgR4U6tWJJDXxxE3kd4MUOT1XNpJwzPjdlIEkB0iDwZPMJhDWuEVrP/ITMkurz1RgUnhfRdFcJa/fWCRiKgNiqT6/OA9iqjCA/I1Yr/iiPVKufmEn31IL7vzsXGDtDD87wXgVySBC1H5xSfO0QG/OIasBiRjg/1ugYH0jKEL69n9i8jK/A8IEki0Y4K2GqeFsYvsVHpKkdz0juNQbQDa7NXYlcCdIccpfvMxlpp+SePWZzZTILdLtCH9hmalJ8jIna+dw75BR root@master
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzgFsUC4wlM8L9lKit2o6vuJU3i4qC53OfY2Tx9T+jTCx9R0Qf7chtLyIB49d29fVKYvu4/e4nD7thrPLFosh05fuhjb+NmaIq1XLcz14Qta6DcZMJqdhlOXjg4bKZ1QXQ/0GRgBZ0jcaIHQpQVFRFaD/WWZ1o4/d7tpPn6OxAKtL+WDXZbBhCaUUG8M9ESlF6ukGGIqUoUNFS1ejSLzxNMNcpp8TJ5l8w6i5XMPthGq64muMbnM3TiO0qNse9a2vTLncY6Jg5VrQbv7JOqUHwVcLu75xaGqD15Z6HOb5P8cIkm90Km0wZA9OVli9Gb+DzSMdLljj7BhcnByybGAV3 root@slave1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrYMcgQBPP8iyk7DuJqX8rdYE6GNiwZQWdztzhcVqYj15ZqVtEN7IUc7IlDKWF5X730aqCP7+7ag1vOxpP8+pryW74y0uMVOfLfkTiFUfseQdsFrCBfuPVooloee5uxVls+0cmoNwTehylkqCyKhoW/xUsD3iVuumSQ8jRyBsktOXjsND4scxkxA1gAl+h9xGEr+sWOe2tdzUR2tWQHHG91BfM9FzHGmKK24hjKg1Ugp2Qlw2E5S/d/vKM+1ReSIqvG1hquiY/vBSC95GW2r9PVCYEB8L7I2kKY5o7KdLMI6faHzR1PwThpFdGdA0mkiz4tixEEYSDxkJwsv4+S/dt root@slave2

将192.168.0.16的authorized_keys文件scp覆盖即可实现免密登录,当然,此时需要每一个服务器互相间都ssh免密登录一下,以将免密信息写入~/.ssh/known_hosts这个文件内。
此时的ssh登录应该是这样的:(每个服务器都可以这样互相之间免密)

[root@master ~]# ssh master
Last login: Sat Jun 26 05:45:47 2021 from 192.168.0.111
[root@master ~]# logout
Connection to master closed.
[root@master ~]# ssh slave1
Last login: Sat Jun 26 05:45:54 2021 from 192.168.0.16
[root@master ~]# logout
Connection to slave1 closed.
[root@master ~]# ssh slave2
Last login: Sat Jun 26 05:46:03 2021 from 192.168.0.16
[root@master ~]# logout
Connection to slave2 closed.
**(3)域名的固定
在192.168.0.16 这台服务器上编辑文件:
vim /etc/hosts  内容应该如下:
```powershell
192.168.0.16 master myhadoop.com
192.168.0.16 slave1
192.168.0.16 slave2

将该文件scp到其它两个服务器上,我这里绑定了一个局域网内域名 myhadoop.com 到192.168.0.16, 这个是后面安装的时候可以用到。

四 本地Hadoop离线仓库的搭建


不管是使用官方仓库还是自己挂载系统安装ISO文件先做一个仓库,安装httpd以及需要的各种依赖。保证可执行以下命令即可:

yum install gcc gcc-c++ openssl openssl-devel zlib-devel bzip2-devel httpd -y

httpd安装完毕后,启动httpd:

systemctl enable httpd && systemctl start httpd

第二步所下载的文件假设是在root目录下,安装两个RPM包,解压四个压缩文件到 /var/www/html 目录下,

cd ambari/

rpm -ivh libtirpc-0.2.4-0.16.el7.src.rpm --force

rpm -ivh libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm --nodeps --force

tar zxf ambari-2.7.0.0-centos7.tar.gz -C /var/www/html/

tar zxf HDP-3.0.0.0-centos7-rpm.tar.gz -C /var/www/html/

tar zxf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/

tar zxf HDP-GPL-3.0.0.0-centos7-ppc-gpl.tar.gz -C /var/www/html/

编写三个仓库文件,三个仓库文件内容分别为:

[root@master ~]# cat  /etc/yum.repos.d/ambari.repo
[ambari]
name=ambari
baseurl=http://192.168.0.16/ambari/centos7/2.7.0.0-897/
gpgcheck=1
gpgkey=http://192.168.0.16/ambari/centos7/2.7.0.0-897/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enable=1
priority=1
[root@master ~]# cat /etc/yum.repos.d/hdp.gpl.repo 
#VERSION_NUMBER=3.0.0.0-1634
[HDP-GPL-3.0.0.0]
name=HDP-GPL Version - HDP-GPL-3.0.0.0
baseurl=http://192.168.0.16/HDP-GPL/centos7-ppc/3.0.0.0-1634/
gpgcheck=1
gpgkey=http://192.168.0.16/HDP-GPL/centos7-ppc/3.0.0.0-1634/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[root@master ~]# cat /etc/yum.repos.d/hdp.repo 
#VERSION_NUMBER=3.0.0.0-1634
[HDP-3.0.0.0]
name=HDP Version - HDP-3.0.0.0
baseurl=http://192.168.0.16/HDP/centos7/3.0.0.0-1634/
gpgcheck=1
gpgkey=http://192.168.0.16/HDP/centos7/3.0.0.0-1634/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.0.16/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.0.16/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

拷贝三个仓库文件到从节点:

[root@master yum.repos.d]# scp ambari.repo slave1:/etc/yum.repos.d/
ambari.repo                                                                                                         100%  326   225.3KB/s   00:00    
[root@master yum.repos.d]# scp hdp.gpl.repo slave1:/etc/yum.repos.d/
hdp.gpl.repo                                                                                                        100%  272   529.9KB/s   00:00    
[root@master yum.repos.d]# scp hdp.repo  slave1:/etc/yum.repos.d/
hdp.repo                                                                                                            100%  484   366.7KB/s   00:00    
[root@master yum.repos.d]# scp ambari.repo slave2:/etc/yum.repos.d/
ambari.repo                                                                                                         100%  326   192.0KB/s   00:00    
[root@master yum.repos.d]# scp hdp.gpl.repo slave2:/etc/yum.repos.d/
hdp.gpl.repo                                                                                                        100%  272   365.1KB/s   00:00    
[root@master yum.repos.d]# scp hdp.repo  slave2:/etc/yum.repos.d/
hdp.repo                                                                                                            100%  484   680.2KB/s   00:00 

五,时间服务器的搭建


**1. 在192.168.0.16服务器上,编辑 /etc/ntp.conf,确保文件中有如下两行内容: server 127.127.1.0

prefer fudge 127.127.1.0 stratum 10

然后执行如下命令,启动服务: systemctl enable ntpd && systemctl start ntpd

在192.168.0.17服务器上,编辑

/etc/ntp.conf,确保文件中有如下一行内容: server 192.168.0.16 然后执行如下命令:

ntpdate 192.168.0.16,该命令的输出应该为:

[root@slave2 ~]# ntpdate

192.168.0.16 26 Jun 19:42:55 ntpdate[2970]: adjust time server 192.168.0.16 offset -0.000098 sec**

等待大概5-到10分钟后,在17和18服务器上,执行以下命令应该有如下输出:

[root@slave2 ~]# ntpstat synchronised to NTP server

(192.168.0.16) at stratum 12 time correct to within 20 ms

polling server every 64 s [root@slave2 ~]#    ntpq -p

remote refid st t when poll reach delay offset jitter

============================================================================

master LOCAL(0) 11 u 54 64 377 0.684 0.237 0.184

六 正式安装ambari server 和ambari agent


  1. 在192.168.0.16上执行: yum install ambari-server -y在192.168.0.17和192.168.0.18上执行 yum install ambari-agent -y
  2.  在192.168.0.16上初始化ambari-server,执行命令:ambari-server setup 详细输入如下::
[root@master yum.repos.d]# ambari-server setup
Using python  /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /usr/local/jdk1.8.0_20/
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? 
Configuring database...
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take up to a minute.
Initializing database ... OK
About to start PostgreSQL
Configuring local database...
Configuring PostgreSQL...
Restarting PostgreSQL
Creating schema and user...
done.
Creating tables...
done.
Extracting system views...
ambari-admin-2.7.0.0.897.jar
....
Ambari repo file contains latest json url http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json, updating stacks repoinfos with it...
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
[root@master yum.repos.d]# ambari-server start
Using python  /usr/bin/python
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Ambari database consistency check started...
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start...............................................
Server started listening on 8080
DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.
4. **在17和18上启动ambari-agent,执行命令 ambari-agent restart**
[root@slave2 yum.repos.d]# ambari-agent restart
Restarting ambari-agent
Verifying Python version compatibility...
Using python  /usr/bin/python
Found ambari-agent PID: 5817
Stopping ambari-agent
Removing PID file at /run/ambari-agent/ambari-agent.pid
ambari-agent successfully stopped
Verifying Python version compatibility...
Using python  /usr/bin/python
Checking for previously running Ambari Agent...
Checking ambari-common dir...
Starting ambari-agent
Verifying ambari-agent process status...
Ambari Agent successfully started
Agent PID at: /run/ambari-agent/ambari-agent.pid
Agent out at: /var/log/ambari-agent/ambari-agent.out
Agent log at: /var/log/ambari-agent/ambari-agent.log


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
8天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
30 2
|
8天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
1天前
|
分布式计算 负载均衡 Hadoop
Hadoop集群节点添加
Hadoop集群节点添加
|
5天前
|
分布式计算 资源调度 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 使用举例)
31 9
|
7天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
19 4
|
9天前
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop的三种集群模式
【4月更文挑战第9天】【Hadoop】Hadoop的三种集群模式
|
9天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
40 1
|
26天前
|
消息中间件 SQL 分布式计算
大数据Hadoop生态圈体系视频课程
熟悉大数据概念,明确大数据职位都有哪些;熟悉Hadoop生态系统都有哪些组件;学习Hadoop生态环境架构,了解分布式集群优势;动手操作Hbase的例子,成功部署伪分布式集群;动手Hadoop安装和配置部署;动手实操Hive例子实现;动手实现GPS项目的操作;动手实现Kafka消息队列例子等
20 1
大数据Hadoop生态圈体系视频课程
|
4月前
|
分布式计算 资源调度 搜索推荐
《PySpark大数据分析实战》-02.了解Hadoop
大家好!今天为大家分享的是《PySpark大数据分析实战》第1章第2节的内容:了解Hadoop。
44 0
《PySpark大数据分析实战》-02.了解Hadoop
|
4月前
|
存储 搜索推荐 算法
【大数据毕设】基于Hadoop的音乐推荐系统的设计和实现(六)
【大数据毕设】基于Hadoop的音乐推荐系统的设计和实现(六)
159 0

热门文章

最新文章