部署环境:Centos7
部署方式:docker部署
步骤:
1---------------------------------------安装JDK1.8
2---------------------------------------安装docker、docker-compose
3---------------------------------------下载源码
4---------------------------------------构建docker镜像
5----------------------------------------启动docker
1.安装jdk1.8
执行命令 #> java -version
提示-bash: java: command not found 代表未安装
提示java version "1.8.x_xxx"代表安装了1.8版本的JDK,数字不同就是不同版本的JDK,本项目必须是1.8.x
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
#> 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