开源大数据平台的部署

这篇博客内容是我在安装开源hadoop 数据平台时候的工作日志,里面记录了部署平台的主要过程以及容易出错的步骤。

 

一,主要组件包括:

二,部署环境规划:

  3台机器

  系统:Centos 7.9

  java: 1.8.220 

 

三,部署顺序:

离线处理组件(主线组件):hadoop (存储)--hive(数仓) - spark(流式计算引擎) - dataX(数据集成)- dolphinscheduler(任务调度,任务设计) - aj report(数据可视化) -Atlas (元数据采集管理)

实时数据流组件:maxwell (对接mysql, binlog采集)- --  kafka (数据管道)-- flume(数据管道)

 

四,部署集群注意问题:

1,版本的兼容性 

  hadoop  和 hive  的兼容性问题。

  hive 使用 spark 作为引擎的兼容性问题

2,注意内网的网络访问情况

  2.1 防火墙设置 

  ssh 代理配置

  ping /telnet 访问端口开放情况。

 

五,Hadoop 部署

 

5.1 ,系统环境配置:

1,配置时间服务器,进行同步:

  使用天翼云的时间服务器:ntpdate ntp.ctyun.cn

  (如果内网环境,需要先部署配置内网时间同步服务器)

2,内网环境内,节点之间的访问如果通过SSH代理的话,需要配置代理端口。

  在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh文件中,添加:

  export HADOOP_SSH_OPTS="-p 9333"

5.2,安装和配置

   1, 注意 hdfs-site.xml 内的 namenode 和 datanode 的数据目录配置。事前,必须查看磁盘分区情况,

    配置为适合存储大量数据的数据分区。

  2, block size  ,依据我的项目内,数据文件普遍size 不大而且磁盘容量相对有限,而 hdfs 的默认size 是128M ,所以我减小了

    block size  到 64M. 

 

六, Hive 部署 

  在主节点单体部署

6.1,元数据管理数据库的配置的优化

  1,使用了默认的derby元数据库。之后在dolphinscheduler中进行hive 任务运行时报错,

  提示:不能在元数据库内新建元数据库。 才想起derby 元数据库只能运行一个client 的连接。

  2,升级derby到 mysql 的过程。

    2.1  ,添加连接包。mysql-connector-java-5.7.10.jar到$HIVE_HOME/lib

    2.2,MySQL内添加hive 客户端的专用账号以及元数据db:
      set global validate_password_policy=0;
    create user 'hive'@'%' identified by '####'
    库:create database hive_meta;
    grant all on hive_meta.* to 'hive'@'%';

6.2  添加配置hive-site。

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://134.98.###.###:3307/hive_meta?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>####</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>  # 根据你的mysql 版本配置
</property>

6.3 ,然后重新进行元数据初始化:

  schematool -dbType mysql -initSchema 

6.4, 开启hiveserver2 和 metastore 

  nohup $HIVE_HOME/bin/hiveserver2  &

  nohup hive --service metastore & 

 

七, Spark 部署

规划:版本:2.3.0 ,发行版:without-hadoop .  安装模式: standalone (后来改为yarn模式)

7.1  确认版本兼容性

  1,从hive的源码内, 确认hive 按照spark该版本构建的。
  2,spark 2.3.0的不同的发行版,没有支持3.3.5版本, 所以我们安装 without-hadoop 包。稍后需要做一些设置,满足兼容性。

7.2  spark和hadoop 兼容性配置  (参考: https://spark.apache.org/docs/2.3.0/hadoop-provided.html)
  在配置文件内:conf/spark-env.sh.     

  export SPARK_DIST_CLASSPATH=$(/path/to/hadoop/bin/hadoop classpath)



7.2,开启standalone ,
  ./sbin/start-master.sh
7.3,开启一个worker:

  ./sbin/start-slave.sh spark://localhost:7077 (spark master url)


7.4  为Hive 配置 Spark 引擎   (参考:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started#HiveonSpark:GettingStarted-VersionCompatibility)

   1,把如下的包复制一份到HIVE_HOME/lib

  scala-library spark-core  spark-network-common

       chill-java  chill  jackson-module-paranamer  jackson-module-scala  jersey-container-servlet-core

       jersey-server  json4s-ast  kryo-shaded  minlog  scala-xml  spark-launcher

      spark-network-shuffle  spark-unsafe  xbean-asm5-shaded

  2, 配置 hive-site.xml

set spark.master=<Spark Master URL>
set spark.eventLog.enabled=true;
set spark.eventLog.dir=<Spark event log folder (must exist)>
set spark.executor.memory=512m;             
set spark.serializer=org.apache.spark.serializer.KryoSerializer;

 

八,Datax 的部署

8.1 注意:

1,依赖python 安装环境。

2,注意datax的版本情况,不同版本支持的功能有些细节上的差别,比如insert_mode 支持 ‘truncate’.

3, 测试环境可以安装datax_web,方便编写 job.json文件。

8.2 步骤:
  1 安装包下载:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz


  2 执行自带样例通过。
    python /opt/datax/bin/datax.py job/job.json

 

九,Dolphinscheduler 任务调度器部署

单机伪集群安装

9.1 注意事项:

  1, 由于依赖mysql  和zookeeper 版本不一致,我替换 api-server 、alert-server、master-server、worker-server的 相关jar包。

 

9.2 安装步骤:

  1, 依赖msyql服务作为任务调度服务数据库,添加MySQL用户和 调度器的专用db.

 

  2, 在 /bin/env/dolphinscheduler_env.sh内配置(目前我只有hive ,datax 任务):

    hive_home:/opt/bd/apache-hive-3.1.3-bin

    datax_home: /opt/opt/datax-web/datax

 

十, Atlas 部署

注意:

  1,官方只提供了源码包,需要自己编译成安装包。

 

10.1 部署步骤:

1,下载并编译源码    

    编译命令:

      mvn clean -DskipTests package -Pdist,embedded-hbase-solr    # 包括内置的hbase 、 solr.

      -Drat.numUnapprovedLicenses=50000     # 出现了大量的没有认证的证书文件,添加该配置

 

报错过程处理:

1.1报错:Failed to execute goal org.apache.rat:apache-rat-plugin:   大量的没有认证的证书的文件,添加配置,忽略该错误。

  处理方法:-Drat.numUnapprovedLicenses=50000

1.2 报错:  编译过程中,缺失包。因为时内网环境,本地的maven 仓库  和 公司级的maven repo 都没有这些包。所以手动下载jar, 然后上传到公司 maven repo.
The following artifacts could not be resolved:
org.restlet.jee:org.restlet:jar:2.4.3 (absent),
org.restlet.jee:org.restlet.ext.servlet:jar:2.4.3 (absent):
Could not find artifact org.restlet.jee:
org.restlet:jar:2.4.3 in nexus (http://134.98.6.5:8081/repository/HescRepository/) -> [Help 1]

处理方法:安装包的maven 命令。

mvn deploy:deploy-file \
-DgroupId=org.restlet.jee \
-DartifactId=org.restlet \
-Dversion=2.4.3 \
-DgeneratePom=true \
-Dpackaging=jar \
-DrepositoryId=maven-releases \
-Durl=http://134.98.6.5:8081/repository/maven-releases/ \
-Dfile=org.restlet-2.4.3.jar

mvn deploy:deploy-file \
-DgroupId=org.restlet.jee \
-DartifactId=org.restlet.ext.servlet \
-Dversion=2.4.3 \
-DgeneratePom=true \
-Dpackaging=jar \
-DrepositoryId=maven-releases \
-Durl=http://134.98.6.5:8081/repository/maven-releases/ \
-Dfile=org.restlet.ext.servlet-2.4.3.jar

mvn deploy:deploy-file \
-DgroupId=org.apache.sqoop \
-DartifactId=sqoop \
-Dversion=1.4.6.2.3.99.0-195 \
-DgeneratePom=true \
-Dpackaging=jar \
-DrepositoryId=maven-releases \
-Durl=http://134.98.6.5:8081/repository/maven-releases/ \
-Dfile=sqoop-1.4.6.2.3.99.0-195.jar

 

1.3 报错:内网编译,需要配置 http ,https 代理上网。

处理方法:

-Dhttps.proxyHost=10.80.101.###  -Dhttps.proxyPort=9218

-Dhttps.proxyHost=10.80.101.###  -Dhttps.proxyPort=9218

 

2,启动atlas 服务时,内部会同时启动内置的hbase ,solr , zookeeper, kafka. 

使用bin/atlas_start.py 一键启动时, 可能导致内置的部分服务不能启动,最后atlas 不能正常启动。

建议手动启动:

  2.1 启动hbase: hbase/bin/start-hbase.sh

  2.2 启动solr: solr/bin/solr start -c -z 127.0.0.1:2181 -p 8983 -force 

  2.2 启动 atlas: bin/atlas_start.py 

启动过程中,同时关注启动日志。 有些进程看起来启动正常了,但是日志有报错情况。真正的情况时,服务启动失败的。

 

3,配置hive 连接到atlas 的元数据库管理。

      hive_hook 编译包: /opt/bd/apache-atlas-sources-2.2.0/distro/target

   3.1,配置hive: hive-site.xml

    <property>
      <name>hive.exec.post.hooks</name>
      <value>org.apache.atlas.hive.hook.HiveHook</value>
    </property>

 

  3.2,执行:bin/import-hive.sh

    报错: ClassNotFoundException: org.apache.hadoop.hive.ql.metadata.InvalidTableException
    方法:因为hive和atlas安装在不同的节点。 导入了hive 安装包到该机器。

    报错:NoClassDefFoundError: javax/ws/rs/core/Link$Builder

    方法:在atlas的path 内,增加缺失的jar包:javax.ws.rs-api-2.0.1.jar

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/745317.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用bwa将自己的数据与参考基因组比对与sam格式转换

1.bwa的下载与安装 https://www.jianshu.com/p/19f58a07e6f4 主要参考这篇帖子,如果之前的步骤都走通了的话,依赖什么的不用特别安装,报错了再补也可以安好了之后,进到他的路径,输./bwa,就可以确认bwa有没有安装好了,环境设置好以后可以在其他地方输入bwa,也可以叫他出来…

机器学习 - Machine Learning (III)

1 对抗学习 对抗学习的目的是增加鲁棒性。 对抗生成网络(GAN)包括生成器(Generator)和判别器(Discriminator)。如果目标是创建能够生成新内容的系统,那么生成器是希望得到并优化的模型,这是一个零和问题。1.1 GenB GenB是对抗网络用于VQA的产物,如图添加了偏置模型和目…

VS运行出现此网站无法提供安全连接

场景: SVN获取项目出现冲突后进行处理。 VS运行页面出现此网站无法提供安全连接尝试:清理VS缓存、重启电脑、重启VS、删除项目重新下载、禁用SSL3.0等等(以上都无效) 理解:开启另一个项目运行正常,说明IIS没有坏;删除项目重新下载运行排除项目配置问题(WebConfig等)。…

「代码随想录算法训练营」第十三天 | 二叉树 part3

110. 平衡二叉树题目链接:https://leetcode.cn/problems/balanced-binary-tree/ 题目难度:简单 文章讲解:https://programmercarl.com/0110.平衡二叉树.html 视频讲解:https://www.bilibili.com/video/BV1Ug411S7my 题目状态:通过思路: 采用递归的方式,遍历每个节点的左…

京东云智能编程助手与安全大模型双双获奖!

人工智能大模型浪潮迭起,为更好地推广人工智能应用案例,中国通信工业协会及中国通信工业协会人工智能专委会近日发布《CCIA2023年度人工智能优秀案例》,京东云申报的Joycoder智能编程助手入选“AI技术创新应用”,京东云与深圳市信息安全管理中心联合申报的“安全大模型保障…

京东上万程序员都AI用它!

7月3日,中国信息通信研究院在全球数字经济大会上发布“2024安全守卫者计划优秀案例”,基于京东云智能编码工具JoyCoder研发的“京东微调大模型驱动漏洞修复”入选优秀案例。 该漏洞修复助手,能够对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,…

【YashanDB知识库】oracle dblink varchar类型查询报错记录

问题单:Oracle DBLINK查询崖山DB报错 oracle服务器上ODBC安装 unixodbc安装:yum -y install unixODBC mysql 配置安装对应版本的odbc: myodbc-installer -d -a -n "MySQL8.0" -t "DRIVER=/home/oracle/tools/mysql-connector-odbc-8.0.20/lib/libmyodbc8w.so…

以电商、消费行业为例,详解火山引擎数智平台如何应用湖仓一体架构

湖仓一体架构是一种将数据湖和数据仓库的优势结合起来的新型数据架构。作为新一代企业级数据产品,火山引擎数智平台在旗下产品中对湖仓一体架构进行深入探索和应用,本篇将从数据湖内核、服务设计及应用场景等方面进行详细拆解。更多技术交流、求职机会,欢迎关注字节跳动数据…

负载均衡-Ribbon-微服务核心组件【分布式微服务笔记03】

负载均衡-Ribbon-微服务核心组件【分布式微服务笔记03】 负载均衡-Ribbon 基本介绍Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。 Ribbon 主要功能是提供客户端负载均衡算法和服务调用 Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试…

创建第一个flask程序,读取本地static静态文件

需要安装flask :  pip install flask 项目目录结构: 代码: from flask import Flaskapp = Flask(__name__,static_url_path=/static,static_folder=static)@app.route(/)def hello_world(): return Hello World!if __name__ == __main__: app.run(host="0.0.0.…

ComfyUI进阶:Comfyroll插件 (二)

ComfyUI进阶:Comfyroll插件 (二)前言:学习ComfyUI是一场持久战,而Comfyroll Studio 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业的图像生成与编辑工具。借助这些节点,用户可以在静态图像的精细调整和动态动画的复杂构建方面进行深入探…

zr 摆烂记

你说得对,我也不知道怎么整合到数数论论里。 \((a,b)=1\) 是 \(ax\equiv 1(\bmod b)\) 有解的充要条件。 首先,对于 \(x=0\rightarrow b-1\),\(ax\equiv y(\bmod b)\),\(y\) 互不相同。 证明考虑加加减减。 考虑求出这个解,得到 \(ax=by+1\)。 不难有推论:若 \((a,b)=1\)…