热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据集群快速安装教程

大数据集群快速安装教程俗话说:”工欲善其事,必先利其器“。这里推荐一个快速搭建大数据集群的工具。如果是刚刚接触大数据新人,建议还是自己


大数据集群快速安装教程

俗话说:”工欲善其事,必先利其器“。

这里推荐一个快速搭建大数据集群的工具。如果是刚刚接触大数据新人,建议还是自己亲自动手配置下。

github地址:https://github.com/yiluohan1234/vagrant_bigdata_cluster


一、简介

vagrant_bigdata_cluster 是一个利用 VirtualBox 虚拟机快速搭建大数据集群的工具。

本集群创建的组件如下表所示。


组件hdp101hdp102hdp103
OScentos7.6centos7.6centos7.6
JDKjdk1.8jdk1.8jdk1.8
HDFSNameNode
DataNode
DataNode
JobHistoryServer
DataNode
SecondaryNameNode
YARNNodeManagerResourceManager
NodeManager
NodeManager
HiveHiveNANA
HBaseHMaster
HRegionServer
HRegionServerHRegionServer
Sparkmaster
worker
workerworker
FlinkStandaloneSessionClusterEntrypoint
TaskManagerRunner
TaskManagerRunnerTaskManagerRunner
ZookeeperQuorumPeerMainQuorumPeerMainQuorumPeerMain
KafkakafkaKafkaKafka
Flumeflumeflumeflume
Scalascalascalascala
MavenmvnNANA
SqoopsqoopNANA
MySQLNANAMySQL Server
NginxNginxNANA
RedisRedisNANA
ElasticsearchElasticsearchElasticsearchElasticsearch
KibanaKibanaNANA

组件版本:

Java: 1.8
Hadoop: 2.7.7
Hive: 2.3.4
Hbase: 1.6.0
Spark: 2.4.3
Flink: 1.12.4
Zookeeper: 3.6.3
Kafka: 2.10-0.10.2.2
Flume: 1.9.0
Scala: 2.11.11
Maven: 3.6.1
Sqoop: 1.4.7
MySQl Connector: 5.1.49
MySQL: 5.7.40(yum安装)
Nginx: 1.20.1(yum安装)
Redis: 3.2.12(yum安装)
Elasticsearch: 6.6.0
Kibana: 6.6.0
Canal: 1.25.0
Maxwell: 3.84.4
Presto: 0.196
Kylin: 3.0.2

二、基本准备


  1. 集群默认启动三个节点,每个节点的默认内存是2G,所以你的机器至少需要6G,我的机器是16G,启动很多组件的话会卡。如果有条件,建议升级机器为32G内存,每台机器4G。
  2. 我的测试环境软件版本:Vagrant 2.2.14, Virtualbox 6.0.14
  3. 虚拟机默认用户名:vagrant,默认密码为:vagrant
  4. MySQL的 root 用户密码为:199037

三、安装集群环境


  1. 下载和安装VirtualBOX

  2. 下载和安装Vagrant

  3. 克隆本项目到本地,并cd到项目所在目录(备注:我是下载了gitbash,通过gitbash命令行操作)

    git clone https://github.com/yiluohan1234/vagrant_bigdata_cluster
    cd vagrant_bigdata_cluster

  4. 执行vagrant up 创建虚拟机

  5. 可以通过执行 vagrant ssh 登录到你创建的虚拟机,或通过SecureCRT等工具进行登录。默认创建用户为 vagrant,root 和 vagrant 用户的密码为 vagrant

  6. 如果你想要删除虚拟机,可以通过执行vagrant destroy 来实现


四、自定义集群环境配置

基本目录结构

resources
scripts
.gitignore
README.md
VagrantFile

你可以通过修改VagrantFilescripts/common.sh文件和resources/组件名称目录下各个组件的配置文件文件来实现自定义集群。


  1. VagrantFile
    这个文件可以设置虚拟机的的版本、个数、名称、主机名、IP、内存、CPU等,根据自己需要更改即可。

  2. scripts/common.sh
    这个文件可以设置各个组件的版本。



    注意:部分组件需要同步更改XXX_VERSIONXXX_MIRROR_DOWNLOAD,保证能下载到组件版本。



五、集群安装完毕后相关组件初始化及启动


1、ssh免登陆

在每台机器上执行以下

setssh

2、启动hadoop与测试


1)启动

hdp101 机器上执行以下命令对hadoop集群进行格式化,并启动hdfs和yarn。

hdfs namenode -format
start-dfs.sh

hdp102 机器上执行以下命令,启动yarn和jobhistory。

start-yarn.sh
mr-jobhistory-daemon.sh start historyserver (mapred --damon)

或者

bigstart hdp format
bigstart hdp start

2)测试

通过执行下列命令可以测试yarn是否安装成功。

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples*.jar pi 2 100

3、启动Spark(Standalone )与测试


1)启动

hdp101 机器上执行以下命令。

$SPARK_HOME/sbin/start-all.sh

或者

bigstart spark start

2)测试

通过执行下列命令可以测试spark是否安装成功。

hdfs dfs -mkdir /spark-log
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--num-executors 1 \
--executor-cores 2 \
$SPARK_HOME/examples/jars/spark-examples*.jar 100

4、启动Flink


1)启动

hdp101 机器上执行以下命令。

$FLINK_HOME/bin/start-cluster.sh

或者

bigstart flink start

2)测试

通过执行下列命令可以测试Flink是否安装成功。

# 批量WordCount
flink run $FLINK_HOME/examples/batch/WordCount.jar

5、启动Hive与测试


1)启动

hdp103 节点登录MySQL数据库,创建hive的元数据库。(已在mysql安装时完成,mysql默认密码为199037)

# 创建hive的元数据库
mysql -uroot -p199037 -e "create user 'hive'@'%' IDENTIFIED BY 'hive';GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;grant all on *.* to 'hive'@'localhost' identified by 'hive';flush privileges;"

hdp101 节点,初始化元数据,看到 schemaTool completed ,即初始化成功!

schematool -initSchema -dbType mysql

报错:Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

hadoop和hive的两个guava.jar版本不一致

两个位置分别位于下面两个目录:


  • /usr/local/hive/lib/
  • /usr/local/hadoop/share/hadoop/common/lib/

解决办法:
删除低版本的那个,将高版本的复制到低版本目录下


2)Hive服务启动与测试

hdp101 节点,创建测试数据

# 创建数据文件
vi ~/stu.txt

内容如下:

00001,zhangsan
00002,lisi
00003,wangwu
00004,zhaoliu

创建库表并加载数据到Hive表

# 启动hive
[vagrant@hdp101 ~]$ hive
# 创建表
hive (default)> CREATE TABLE stu(id INT,name STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
# 加载数据
hive (default)> load data local inpath '/root/stu.txt' into table stu;
# 查看库表
hive (default)> select * from stu;
OK
1 zhangsan
2 lisi
3 wangwu
4 zhaoliu
Time taken: 3.301 seconds, Fetched: 4 row(s)

6、启动Zookeeper

hdp101 节点登录执行以下命令。(注意:不能以root执行)

bigstart es start(或stop)

jpsall查看一下进程:

[vagrant@hdp101 ~]$ jpsall
--------------------- hdp101节点 ---------------------
2899 QuorumPeerMain
--------------------- hdp102节点 ---------------------
25511 QuorumPeerMain
--------------------- hdp103节点 ---------------------
25993 QuorumPeerMain

PrettyZoo


7、启动Elasticsearch

hdp101 节点登录执行以下命令。(注意:不能以root执行)

bigstart es start(或stop)

jpsall查看一下进程:

[vagrant@hdp101 ~]$ jpsall
--------------------- hdp101节点 ---------------------
3185 Kafka
2899 QuorumPeerMain
3365 Elasticsearch
--------------------- hdp102节点 ---------------------
25511 QuorumPeerMain
25800 Kafka
25964 Elasticsearch
--------------------- hdp103节点 ---------------------
26276 Kafka
26440 Elasticsearch
25993 QuorumPeerMain

访问 http://hdp101:9200/_cat/nodes?v 查看节点状态。


8、启动Kibana

hdp101 节点登录执行以下命令。

bigstart kibana start(或stop)

WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

访问 http://hdp101:5601/ 查看。


9、启动Kafka


1)启动

hdp101 节点登录执行以下命令:

bigstart zookeeper start
bigstart kibana start(或stop)

2)测试

hdp101 节点执行以下命令,创建topic:test

kafka-topics.sh --zookeeper hdp101:2181,hdp102:2181,hdp103:2181/kafka --create --topic test --replication-factor 1 --partitions 3

hdp101 节点执行以下命令,生产者生产数据

kafka-console-producer.sh --broker-list hdp101:9092,hdp102:9092,hdp103:9092 --topic test
hello world

hdp103 节点执行以下命令,消费者消费数据

kafka-console-consumer.sh --bootstrap-server hdp101:9092,hdp102:9092,hdp103:9092 --topic test --from-beginning

10、启动Hbase


1)启动

hdp101 节点登录执行以下命令:

bigstart zookeeper start
bigstart hbase start(或stop)

2)测试


六. Web UI

可以通过以下链接访问大数据组件的web页面。

HDFS

ResourceManager

JobHistory

Spark

Flink

Elasticsearch

Kibana

Hbase







推荐阅读
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文介绍了一种在ANSI C中动态分配二维数组的方法。通过创建指针数组并为每个指针分配连续空间,可以灵活地管理内存。文章还讨论了一些常见的错误和注意事项。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 通过优化动态网络Cookies的全网互通机制,实现了用户在任意子站点的登录和注销操作均能同步至整个网络。具体实现涉及对三个关键文件的修改:首先,在`incDv_ClsMain.asp`中定位并调整`Response.Cookies`的相关设置;其次,更新`global.asa`以确保会话状态的一致性;最后,修改`login.asp`以支持跨域认证。这一改进不仅提升了用户体验,还增强了系统的安全性和可靠性。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 解决针织难题:R语言编程技巧与常见错误分析 ... [详细]
  • 在Kohana 3框架中,实现最优的即时消息显示方法是许多开发者关注的问题。本文将探讨如何高效、优雅地展示flash消息,包括最佳实践和技术细节,以提升用户体验和代码可维护性。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
author-avatar
Mr_维力_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有