草庐IT

大数据平台datasophon 测试部署

flyfish225 2023-03-28 原文
标签(空格分隔): 大数据运维专栏


一:datasophon 的介绍

1.1 datasophon 的介绍

DataSophon是近日开源的一款国产自研大数据管理平台,致力于快速实现部署、管理、监控以及自动化运维大数据服务组件和节点的能力,帮助你快速构建起稳定、高效的大数据集群服务。 主要有以下特性: 极易部署,1小时可完成300节点的大数据集群部署 国产化兼容,兼容ARM服务器和常用国产化操作系统 监控指标全面丰富,基于生产实践展示用户最关心的监控指标 灵活便捷的告警服务,可实现用户自定义告警组和告警指标 可扩展性强,用户可通过配置的方式集成或升级大数据组件 datasophon 的官网 https://datasophon.github.io/datasophon-website/

1.2 datasophon 的架构

参考资料: https://github.com/datasophon/datasophon

1.3 datasophon 封装大数据组件的版本

各集成组件均进行过兼容性测试,并稳定运行于300+个节点规模的大数据集群,日处理数据量约4000亿条。 在海量数据下,各大数据组件调优成本低,平台默认展示用户关心和需要调优的配置。

二:datasophon 的部署安装

2.1 系统安装介绍

操作系统: centos7.9x64 主机名: cat /etc/hosts ---- 172.16.10.11 flyfish11 172.16.10.12 flyfish12 172.16.10.13 flyfish13 172.16.10.14 flyfish14 172.16.10.15 flyfish15 172.16.10.16 flyfish16 172.16.10.17 flyfish17 ----- 本次安装前 4台虚拟机 (flyfish11/flyfish12/flyfish13/flyfish14) flyfish11 做主节点 其它做worker从节点 DDP部署包下载地址: 参考官网下载

2.2 系统初始化

2.2.1 关闭 firewalld,iptables 与 selinux

所有节点都要配置: yum install -y firewall* iptable* (1) 关闭firewalld systemctl stop firewalld.service systemctl disable firewalld.service firewall-cmd --state (2) 关闭iptables iptables -F systemctl stop iptables.service service iptables save systemctl disable iptables.service (3) 禁用 selinux sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0 getenforce 0 sestatus 重启机器 reboot

2.2.2 无密钥登录配置

做root用户无密钥认证 ssh-keygen ---一直敲回车到最后 cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys 将所有的公钥导入authorized_keys 分发到 所有的 机器的.ssh/ 下面 然后测试

2.2.3 所有机器更改CentOS7.9x64的文件句柄数

vim /etc/security/limits.conf --- * soft nofile 65535 * hard nofile 1029345 * soft nproc unlimited * hard nproc unlimited * soft memlock unlimited * hard memlock unlimited ---

2.2.4 时间同步

所有机器 yum install chrony* 1. flyfish11--flyfish14 同步阿里云的时间服务器: vim /etc/chrony.conf 增加 ---- 注释掉相关默认的server server ntp1.aliyun.com prefer service chronyd start chkconfig chronyd on service chronyd stop service chronyd start chkconfig chronyd on

2.2.5 安装MySQL 5.7

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm yum -y install mysql57-community-release-el7-11.noarch.rpm yum -y install mysql-server --nogpgcheck --nogpgcheck #不校验数字签名

启动MySQL service mysqld start chkconfig mysqld on service mysqld status

cat /var/log/mysqld.log |grep password

初始化MySQL: set global validate_password_policy=0; set global validate_password_length=1; set password = password("flyfish225"); flush privileges; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'flyfish225' WITH GRANT OPTION; flush privileges;

打开my.cnf:vim /etc/my.cnf 在[mysqld]下添加:disable_ssl=skip_ssl 重启MySQL:systemctl restart mysqld.service

创建datasophon数据库相关: mysql -uroot -pflyfish225 set global validate_password_policy=0; set global validate_password_length=1; CREATE DATABASE IF NOT EXISTS datasophon DEFAULT CHARACTER SET utf8; grant all privileges on *.* to datasophon@"%" identified by 'datasophon' with grant option; GRANT ALL PRIVILEGES ON *.* TO 'datasophon'@'%'; FLUSH PRIVILEGES;

2.2.6 安装 nginx

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel wget https://nginx.org/download/nginx-1.22.0.tar.gz Nginx编译安装步骤 tar -zxvf nginx-1.22.0.tar.gz cd nginx-1.22.0 ./configure make make install 启动nginx cd /usr/local/nginx/ sbin/nginx

三: 安装 datasophon

3.1 datasophon 安装软件准备

安装软件准备: DDP-1.0.0 安装目录 mkdir -p /opt/datasophon/DDP/packages 将DDP-1.0.0目录下的文件下载并上传到/opt/datasophon/DDP/packages目录下: cd /root/software/datasophon/DDP-1.0.0 cp -ap * /opt/datasophon/DDP/packages/

datasophon-manager-1.0.0.tar.gz上传到服务器, 并解压到/opt/datasophon目录下(该目录可自行选择), datasophon-manager目录结构如下所示: cd /root/software/datasophon tar -zxvf datasophon-manager-1.0.0.tar.gz mv datasophon-manager-1.0.0 /opt/datasophon/

导入datasophon-manager安装根目录下sql文件夹下datasophon-1.0.0.sql文件,创建数据表: mysql -uroot -p flyfish225 use datasophon; source /opt/datasophon/datasophon-manager-1.0.0/sql/datasophon-1.0.0.sql; show tables;

蒋dist 移动到nginx 默认目录下面 cd /root/software/datasophon mv dist.zip /usr/local/nginx/ cd /usr/local/nginx/ unzip dist.zip nginx 配置文件准备: cd /usr/local/nginx/conf/ cp -ap nginx.conf nginx.conf.bak vim nginx.conf -------- #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8888;# 访问端口(自行修改) server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/local/nginx/dist; # 前端解压的 dist 目录地址(自行修改) index index.html index.html; } location /ddh { proxy_pass http://172.16.10.11:8081; # 接口地址(自行修改) proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header x_real_ipP $remote_addr; proxy_set_header remote_addr $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_connect_timeout 4s; proxy_read_timeout 30s; proxy_send_timeout 12s; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } ----- cd /usr/local/nginx sbin/nginx -t sbin/nginx -s reload ps -ef |grep nginx netstat -nultp |grep 8888

修改数据库配置 cd /opt/datasophon/datasophon-manager-1.0.0/conf vim application.yml # 主要修改url和password的值 ---- spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://172.16.10.11:3306/datasophon?useUnicode=true&characterEncoding=utf-8 username: datasophon password: datasophon driver-class-name: com.mysql.jdbc.Driver ---- mysql -h172.16.10.11 -udatasophon -pdatasophon


3.2 启动datasopohon 服务

cd /opt/datasophon/datasophon-manager-1.0.0 sh bin/datasophon-api.sh start api #启动 sh bin/datasophon-api.sh stop api #停止 sh bin/datasophon-api.sh restart api #重启

3.3 访问页面配置

访问页面 登录 http://172.16.10.11:8888 默认用户名和密码为admin/admin123 安装:

创建集群

组件版本

3.4 创建集群

进入

配置集群

主机验证

主机分发:

主机分发完成

初始化安装监控组件 三个: AlertManager,Grafana和Prometheus三个组件 DataSophon需要依赖此三个组件实现系统监控告警管理。

分配节点

worker 节点

告警目录配置与端口

告警配置与端口

监控配置完成

进入集群

进入查看总览

主机状况

告警管理

告警指标管理

部署zookeeper

安装HDFS服务 选择HDFS,点击【下一步】。

安装YARN 选择YARN,点击【下一步】。

安装hive mysql -uroot -pflyfish225 # mysql -uroot -pflyfish225 mysql> create database hive character set utf8; mysql> grant all privileges on hive.* to 'hive'@'%' identified by 'hive' with grant option; mysql> grant all privileges on hive.* to 'hive'@'flyfish11' identified by 'hive' with grant option; mysql> flush privileges;

依次部署其它大数据组件,由于开的是虚拟机配置有所不够,就不按安装其它组件 datasophon 目前只能用于尝试部署大数据组件,很多功能并不完善。生成慎用。

有关大数据平台datasophon 测试部署的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  4. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  5. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  6. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  7. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  8. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  9. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  10. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

随机推荐