当前位置: 首页 > 工具软件 > WhereHows > 使用案例 >

Wherehows项目部署文档

莘俊能
2023-12-01

部署环境:Centos7

部署方式:docker部署

步骤:

1---------------------------------------安装JDK1.8

2---------------------------------------安装docker、docker-compose

3---------------------------------------下载源码

4---------------------------------------构建docker镜像

5----------------------------------------启动docker

1.安装jdk1.8

    

1.1 首先判断本机是否已经安装jdk8

    执行命令 #> java -version

    提示-bash: java: command not found 代表未安装

    提示java version "1.8.x_xxx"代表安装了1.8版本的JDK,数字不同就是不同版本的JDK,本项目必须是1.8.x

1.2 安装对应版本JDK

    a.创建jdk目录: #> mkdir -p /usr/local/java

    b.下载jdk1.8并上传到linux服务器

    c.解压jdk #> tar -zxvf jdk-8u171-linux-x64.tar.gz /usr/local/java

    d.配置jdk环境变量:

            A> 如果1.1.1步骤中提示已经安装了但是版本不对

        获取已经安装jdk环境并修改为现在的jdk版本

 #> echo $JAVA_HOME  ---查看已安装java目录                 
 #> vi ~/.bash_profile  ---进入编辑文件
 #> /JAVA_HOME  ----回车找JAVA_HOME

#> i        ---进入编辑模式

#>JAVA_HOME=/usr/local/java/jdk1.8 ---JAVA_HOME=xxx修改为JAVA_HOME=/usr/local/java/jdk1.8

#> :wq

#>source ~/bash_profile ---使修改生效

在.bash_profile未找到JAVA_HOME执行以下命令

#> vi /etc/profile --进入编辑模式

#> /JAVA_HOME  ----回车找JAVA_HOME

#> i        ---进入编辑模式

#>JAVA_HOME=/usr/local/java/jdk1.8 ---JAVA_HOME=xxx修改为JAVA_HOME=/usr/local/java/jdk1.8

#> :wq

#>source /etc/profile ---使修改生效

   B>如果未安装JDK版本

       #> vim  /etc/profile   --进入编辑模式

#> vim  /etc/profile   --进入编辑模式

       #> i    ---进入编辑模式

在文件最后加入

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

export JAVA_HOME=/usr/local/java/jdk1.8

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

#> source /etc/profile

使环境变量生效
#> source /etc/profile

验证JDK安装成功

#> java -version ---提示java version "1.8.xxx" 就代表安装成功

2.安装docker、docker-compose、git

#>yum install docker -y
#>yum install docker-compse -y
#>yum install git -y

3.下载源码

git clone https://github.com/linkedin/WhereHows.git

4.构建docker镜像

4.1 修改配置文件及任务脚本

修改backend配置文件

#> vim Wherehows/wherehows-backend/application.conf
# 无需修改
WHZ_KRB5_DIR="/dir/to/krb5conf"

# 需要修改为自定义secret,只要不是change_me就可以
WHZ_SECRET="change_me"

# Database Connection wherehows本身数据库对应的账号、密码 url 数据库等
WHZ_DB_DRIVER="com.mysql.jdbc.Driver"
WHZ_DB_USERNAME="wherehows"
WHZ_DB_PASSWORD="wherehows"
# Fully qualified jdbc url
WHZ_DB_URL="jdbc:mysql://<ip>:<port>/wherehows"

#mysql setup
WHZ_DB_DSCLASSNAME="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
WHZ_DB_DIALECT="org.hibernate.dialect.MySQLInnoDBDialect"

# Directory containing ETL job files  docker 启动无需修改
WHZ_ETL_JOBS_DIR="/var/tmp/jobs"

# Temp directory for ETL job docker启动无需修改
WHZ_ETL_TEMP_DIR="/var/tmp/wherehows"

修改Frontend配置文件

#> vim Wherehows/wherehows-frontend/application.conf
参考backend修改
# Secret Key
WHZ_SECRET="change_me"

# Database Connection
WHZ_DB_NAME="wherehows"
WHZ_DB_USERNAME="wherehows"
WHZ_DB_PASSWORD="wherehows"

# Fully qualified jdbc url
WHZ_DB_URL="jdbc:mysql://<ip>:<port>/wherehows"

# Serach Engine
WHZ_SEARCH_ENGINE=elasticsearch

# Elasticsearch (Change "localhost" to your Es host )
WHZ_ES_DATASET_URL="http://localhost:9200/wherehows/dataset/_search"
WHZ_ES_METRIC_URL="http://localhost:9200/wherehows/metric/_search"
WHZ_ES_FLOW_URL="http://localhost:9200/wherehows/flow_jobs/_search"

# LDAP
WHZ_LDAP_URL=your_ldap_url
WHZ_LDAP_PRINCIPAL_DOMAIN=your_ldap_principal_domain
WHZ_LDAP_SEARCH_BASE=your_ldap_search_base

# Piwik tracking configuration
PIWIK_SITE_ID="0000" # change_to_your_piwik_id
PIWIK_URL="change_to_your_piwik_url"
~                   
修改环境变量文件.env
#>cd Wherehows/wherehows-docker
#>vim .env

修改以下内容:

# Secret 未知可以无需更改
WHZ_SECRET=your_crpto_secret

# MySQL wherehows本身使用的mysql账号 密码 及数据库名称,这个数据库不要使用阿里云的数据库,阿里云数据库开启了GTID
WHZ_DB_NAME=wherehows
WHZ_DB_USERNAME=wherehows
WHZ_DB_PASSWORD=wherehows

# Elasticsearch es配置可以不用修改
WHZ_SEARCH_ENGINE=elasticsearch
WHZ_ES_DATASET_URL=http://localhost:9200/wherehows/dataset/_search
WHZ_ES_METRIC_URL=http://localhost:9200/wherehows/metric/_search
WHZ_ES_FLOW_URL=http://localhost:9200/wherehows/flow_jobs/_search

#templateQuery
WHZ_ELASTICSEARCH_DATASET_QUERY_TEMPLATE=/var/tmp/dataset_query_template.json
WHZ_ELASTICSEARCH_METRIC_QUERY_TEMPLATE=/var/tmp/metric_query_template.json
WHZ_ELASTICSEARCH_FLOW_QUERY_TEMPLATE=/var/tmp/flow_query_template.json
WHZ_ELASTICSEARCH_COMMENT_QUERY_TEMPLATE=/var/tmp/comment_query_template.json
WHZ_ELASTICSEARCH_SUGGESTER_QUERY_TEMPLATE=/var/tmp/suggester_query_template.json
WHZ_ELASTICSEARCH_AUTO_COMPLETION_QUERY_TEMPLATE=/var/tmp/auto_completion_query_template.json
WHZ_ELASTICSEARCH_FILTER_UNIT=/var/tmp/filter_unit.json

# LDAP 未知也可以暂时不用修改
WHZ_LDAP_URL=your_ldap_url
WHZ_LDAP_PRINCIPAL_DOMAIN=your_ldap_principal_domain
WHZ_LDAP_SEARCH_BASE=your_ldap_search_base
WHZ_APP_HOME=/var/tmp/wherehows

添加hive爬取任务:

把模板拷贝到jobs里面并修改配置

#>cd Wherehows/wherehows-backend
#>cp jobs/templates/HIVE_METADATA_ETL.job ./jobs/

# Fetch Hive dataset metadata

# Common ETL configs,corn表达式指定采集的时间间隔
job.class=metadata.etl.dataset.hive.HiveMetadataEtl
job.cron.expr=0 0 19 * * ? *
job.timeout=12000
#job.cmd.params=
#job.disabled=1
job.ref.id=65

# hive metastore jdbc hive数据库的url
hive.metastore.jdbc.url=your_metastore_jdb_url

# hive metastore jdbc hive数据库驱动
hive.metastore.jdbc.driver=com.mysql.jdbc.Driver

# hive metastore user name hive数据库账号
hive.metastore.username=your_metastore_username

# hive metastore password hive数据库密码
hive.metastore.password=your_metastore_password

# hive metastore DB reconnect interval hive数据库重连间隔
hive.metastore.reconnect.time=your_reconnect_interval_seconds
#爬取数据白名单 无需求可以不配置
hive.database_black_list=your_databsae_black_list
#爬取数据黑名单无需求可以不配置
hive.database_white_list=your_database_white_list

# 白名单开启状态 false即可
hive.table_white_list_enabled=False

# 黑名单开启状态 false即可
hive.table_black_list_enabled=False

# 转换缓存文件存放位置
hive.schema_csv_file=/var/tmp/hive_schema.csv

# 爬取缓存文件存放位置
hive.schema_json_file=/var/tmp/hive_schema.json

# 同上,仅仅类型不同
hive.field_metadata=/var/tmp/hive_field_metadata.csv

# 同上仅仅类型不同
hive.hdfs_map_csv_file=/var/tmp/hive_hdfs_map.csv

# Place to store the hive instance csv file
hive.instance_csv_file=/var/tmp/hive_instance.csv

# Place to store the dependency csv file
hive.dependency_csv_file=/var/tmp/hive_dependency.csv

# HDFS namenode IPC URI
hdfs.namenode.ipc.uri=your_namenode_ipc_uri

# Enable/disable kerberos authentication & related configs
kerberos.auth=True
kerberos.keytab.file=your_keytab_file
kerberos.principal=your_principal

krb5.kdc=your_kdc
krb5.realm=your_realm

# innodb_lock_wait_timeout when accessing MySQL Db
innodb_lock_wait_timeout=1500

4.2 构建docker镜像

    

#>./build.sh 1

漫长的等待。。。。

5.启动docker

#>Wherehows/wherehows-docker
#>docker-compose up

#> source /etc/profile

 类似资料: