一、什么是DataSphere Studio?
DataSphere Studio(简称DSS)是微众银行大数据平台——WeDataSphere,自研的一站式数据应用开发管理门户。
基于Linkis计算中间件构建,可轻松整合上层各数据应用系统,让数据应用开发变得简洁又易用。
二、安装准备
DSS部署分为精简版和标准版,本文主要介绍在Centos7上部署DSS-0.7.0标准版,标准版部署有一定的难度,
体现在Hadoop、Hive和Spark版本不同时,可能需要重新编译,可能会出现包冲突问题。
适合于试用和生产使用,2~3小时即可部署起来。
支持的功能有:
数据开发IDE - Scriptis
工作流实时执行
信号功能和邮件功能
数据可视化 - Visualis
数据质量 - Qualitis(单机版)
工作流定时调度 - Azkaban(单机版)
Linkis管理台
三、基础环境准备
3.1、基础软件安装
下面的软件必装:
MySQL (5.5+),如何安装MySQL
JDK (1.8.0_141以上),如何安装JDK
Python(2.x和3.x都支持),如何安装Python
Nginx,如何安装Nginx
下面的服务必须可从本机访问:
Hadoop(2.7.2,Hadoop其他版本需自行编译Linkis)
Hive(1.2.1,Hive其他版本需自行编译Linkis)
Spark(支持2.0以上所有版本)
3.1.1、部署MySQL
a、下载MySQL的rpm包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
b、进行repo安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
c、进入/etc/yum.repos.d执行
yum install mysql-server
d、启动MySQL
systemctl start mysqld
e、查看MySQL初始密码
rep 'password' /var/log/mysqld.log
f、修改密码
mysql -u root -p
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
g、设置远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
3.1.2、安装JDK
a、下载JDK
b、进行repo安装
rpm -ivh jdk-8u241-linux-x64.rpm
c、配置环境变量,执行java -verbose查看jdk安装路径,编辑/etc/profile文件,添加一下内容,再执行source立即生效。
JAVA_HOME=/usr/java/jdk1.8.0_241-amd64
JRE_HOME=/usr/java/jdk1.8.0_241-amd64/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
3.1.3、安装Python
因为本机已经自带python-2.7.5,python安装也比较简单,不在此处多加赘述。
3.1.4、安装Nginx
a、安装必要依赖
yum -y install gcc gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
b、下载源码包
c、解压源码包
tar -zxvf nginx-1.9.9.tar.gz -C /usr/local
d、检查安装环境
cd nginx-1.9.9
./configure --prefix=/usr/local/nginx
e、编译安装
make
make install
f、配置nginx服务启动
vi /etc/rc.d/init.d/nginx
添加一下内容:
#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/usr/local/nginx/sbin/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
chkconfig --add nginx
g、配置环境变量
因为DSS在安装过程中会检测nginx,因此需要配置一个环境变量,以应对检测。
export PATH=$PATH:/usr/local/nginx/sbin
注意:如果使用hadoop普通用户启动,需要授权普通用户使用systemctl,具体操作如下:
进入/usr/share/polkit-1/actions/org.freedesktop.systemd1.policy,将对应manae-units的defaults中的授权全部改为yes,然后执行systemctl restart polkit重启polkit
yes
yes
yes
3.1.5、安装hadoop
官方文档说,安装DSS的机器不要求必须安装Hadoop,但要求hdfs命令必须可用,如:hdfs dfs -ls /。我这里只有一台机器,就在本机上安装一个单机版的hadoop、hive和spark了。
a、下载安装包,我这里使用的是一键部署安装包,hadoop版本被指定为2.7.2,其他版本的需要自己编译Linkis。
b、解压安装包
tar -zxvf hadoop-2.7.5.tar.gz -C /usr/local
c、配置环境变量
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
d、修改hadoop-env.sh文件,新增以下内容。
export JAVA_HOME=/usr/java/jdk1.8.0_241-amd64
e、修改core-site.xml文件,添加以下内容。
hadoop.tmp.dir
file:usr/local/hadoop
Abase for other temporary directories.
fs.defaultFS
hdfs://127.0.0.1:5001
f、修改hdfs-site.xml文件,添加以下内容。
dfs.replication
1
dfs.namenode.name.dir
file:usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:usr/local/hadoop/tmp/dfs/data
g、配置ssh免密
h、启动
第一次启动需要初始化HDFS:./bin/hdfs namenode -format
./sbin/start-dfs.sh
注意:如果使用普通用户hadoop的话,需要在hdfs中创建/tmp目录,并且这个目录所有者为hadoop用户。
3.1.6、安装hive
a、下载安装包
wget http://mirrors.cnnic.cn/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
b、解压安装包(注意:此处有一个小坑,hive目录必须带1.2字样,不然DSS安装前检查不过,我使用的是hive-1.2.1)
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local
c、下载MySQL驱动包,放在/usr/local/hive/lib目录下。
d、创建hive-site.xml文件,并添加以下内容。
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.100.188:3306/dss
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root
system:java.io.tmpdir
/usr/local/hadoop/iotmp
system:user.name
hive_user
e、配置环境变量
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
f、初始化数据库
schematool -dbType mysql -initSchema
g、测试
./bin/hive
3.1.7、安装spark
a、下载安装
b、解压安装包
tar -zxvf spark-2.1.2-bin-hadoop2.7.tgz
c、修改spark-env.sh文件
cp spark-env.sh.template spark-env.sh
末尾添加以下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_241-amd64
export SPARK_MASTER_IP=192.168.100.188
export SPARK_WORKER_MEMORY=2g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
d、配置环境变量
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
e、启动
./sbin/start-master.sh
3.2、系统环境准备
3.2.1、创建用户
a、创建一个hadoop用户
sudo useradd hadoop
b、设置权限
vi /etc/sudoers
添加以下内容:
hadoop ALL=(ALL) NOPASSWD: NOPASSWD: ALL
c、修改安装用户hadoop的.bash_rc,命令如下:
vim /home/hadoop/.bash_rc
添加以下内容:
#JDK
export JAVA_HOME=/usr/java/jdk1.8.0_241-amd64
#HADOOP
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
#Hive
export HIVE_CONF_DIR=/usr/local/hive-1.2.1/conf
#Spark
export SPARK_HOME=/usr/local/spark
export SPARK_CONF_DIR=/usr/local/spark/config
export PYSPARK_ALLOW_INSECURE_GATEWAY=1 # Pyspark必须加的参数
四、安装DSS
4.1、安装包准备
我使用的是DSS & Linkis全家桶一键部署安装包(约1.3GB),(点击进入下载页面),安装包内容如下:
├── dss_linkis # 一键部署主目录
├── backup # 用于兼容Linkis老版本的安装启动脚本
├── bin # 用于一键安装启动DSS+Linkis
├── conf # 一键部署的配置文件
├── azkaban-solo-server-x.x.x.tar.gz #azkaban安装包
├── linkis-jobtype-x.x.x.zip #linkis jobtype安装包
├── wedatasphere-dss-x.x.x-dist.tar.gz # DSS后台安装包
├── wedatasphere-dss-web-x.x.x-dist.zip # DSS前端安装包
├── wedatasphere-linkis-x.x.x-dist.tar.gz # Linkis安装包
├── wedatasphere-qualitis-x.x.x.zip # Qualitis安装包
4.2、安装(使用hadoop用户)
a、解压安装包
tar -zxvf dss_linkis.tar.gz
b、修改conf/config.sh文件,
cp conf/config.sh.stand.template conf/config.sh
内容如下,对照修改。
WORKSPACE_USER_ROOT_PATH=file:///tmp/linkis/ ##本地工作空间路径,默认为本地路径,尽量提前创建并授于写权限
HDFS_USER_ROOT_PATH=hdfs:///tmp/linkis ##hdfs工作空间路径,默认为本地路径,尽量提前创建并授于写权限
RESULT_SET_ROOT_PATH=hdfs:///tmp/linkis ##结果集路径,默认为本地路径,尽量提前创建并授于写权限
WDS_SCHEDULER_PATH=file:///tmp/wds/scheduler ##DSS工程转换为azkaban工程后的存储路径
#DSS Web,注意distribution.sh中VISUALIS_NGINX的IP和端口必须和此处保持一致
DSS_NGINX_IP=127.0.0.1 #DSS Nginx访问IP
DSS_WEB_PORT=8088 #DSS Web页面访问端口
##hive metastore的地址
HIVE_META_URL=jdbc:mysql://127.0.0.1:3306/dss?useUnicode=true
HIVE_META_USER=root
HIVE_META_PASSWORD=root
###hadoop配置文件目录
HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
###hive配置文件目录
HIVE_CONF_DIR=/usr/local/hive-1.2.1/conf
###spark配置文件目录
SPARK_CONF_DIR=/usr/local/spark/conf
###azkaban服务端IP地址及端口,单机版安装时请勿修改
AZKABAN_ADRESS_IP=127.0.0.1
AZKABAN_ADRESS_PORT=8081
####Qualitis服务端IP地址及端口,单机版安装时请勿修改
QUALITIS_ADRESS_IP=127.0.0.1
QUALITIS_ADRESS_PORT=8090
c、修改db.sh文件
MYSQL_HOST=192.168.100.188
MYSQL_PORT=3306
MYSQL_DB=dss
MYSQL_USER=root
MYSQL_PASSWORD=root
d、执行安装脚本
sh bin/install.sh
e、启动
sh bin/start-all.sh > start.log 2>start_error.log
f、访问地址:http://192.168.100.188:8088/
注意:DSS安装脚本中有一些小缺陷,如果安装不顺利,可以仔细阅读下脚本,有助于对DSS结构更好的理解。
五、云资源
DSS + Linkis + Qualitis + Visualis + Azkaban【全家桶一键部署安装包】,由于安装包过大(1.3GB),Github下载缓慢,请通过以下方式获取:
Baidu cloud:
百度云链接:https://pan.baidu.com/s/1hmxuJtyY72D5X_dZoQIE5g
Password: p82h
Tencent Cloud:
腾讯云链接:https://share.weiyun.com/5vpLr9t
Password: upqgib
DSS&Linkis 一键部署脚本
以下为Linkis安装包资源:
腾讯云链接:https://share.weiyun.com/5Gjz0zU
密码:9vctqg
百度云链: https://pan.baidu.com/s/1uuogWgLE9r8EcGROkRNeKg
密码:pwbz
以下为DSS安装包资源:
腾讯云链接:https://share.weiyun.com/5n2GD0h
密码:p8f4ug
百度云链接:https://pan.baidu.com/s/18H8P75Y-cSEsW-doVRyAJQ
密码:pnnj
附Qualitis及Azkaban单机版安装包资源:
腾讯云链接:https://share.weiyun.com/5fBPVIV
密码:cwnhgw
百度云链接:https://pan.baidu.com/s/1DYvm_KTljQpbdk6ZPx6K9g
密码:3lnk