Centos6環(huán)境,部署superset
1. 安裝MySQL數(shù)據(jù)庫
1.1. 更新操作系統(tǒng)
yum update #更新操作系統(tǒng)
1.2. 檢查系統(tǒng)是否安裝了mariadb,如果安裝了mariadb則需要先卸載
yum list installed | grep mariadb #查看mariadb的安裝狀態(tài)
yum -y remove mariadb* #卸載mariadb
1.3. 建立目錄并下載MySQL源包
i.安裝mysql客戶端
yum install mysql
安裝mysql服務(wù)端
yum install -y mysql-server
yum install -y mysql-devel
iii.mysql相關(guān)設(shè)置:
設(shè)置字符集
SET NAMES 'utf8';
set character_set_database=utf8;
set character_set_server=utf8;
查看字符集
SHOW VARIABLES LIKE 'character%';
[圖片上傳失敗...(image-388ea7-1543459317940)]
看到字符集設(shè)置成utf-8了
service mysqld start
但是啟動以后再查看,字符集還是latin1,治標(biāo)不治療本
vi /etc/my.conf
在[mysqld]上面加下面的話
[client]
default-character-set=utf8
在[mysqld]最下面加下面的話
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
重啟mysql
service mysqld restart
SHOW VARIABLES LIKE 'character%';
[圖片上傳失敗...(image-dd9b77-1543459317940)]
修改數(shù)據(jù)庫的字符集
庫名:test
ALTER DATABASE hive DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表的字符集
student為表
ALTER TABLE student DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
設(shè)置賬號和密碼
mysqladmin -u root password ‘密碼’
檢查mysql是否為開機(jī)啟動
chkconfig --list | grep mysqld
mysql未開機(jī)啟動,需要開機(jī)啟動
chkconfig mysqld on
再次chkconfig --list | grep mysqld檢查一下狀態(tài)
進(jìn)入mysql
mysql -uroot -p密碼
如果想改密碼,則進(jìn)行下面操作。
UPDATE user SET Password=PASSWORD('root') where USER='root';
FLUSH PRIVILEGES;
開啟遠(yuǎn)程訪問
GRANT ALL PRIVILEGES ON . TO root@'%' identified by '123456';
FLUSH PRIVILEGES;
2. 安裝Python3、PIP和VirtualENV
2.1 為安裝python3環(huán)境準(zhǔn)備所需的包
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2.2 安裝python3環(huán)境
cd /usr/local/src #進(jìn)入源碼文件夾
wget www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz #下載python文件
tar xf Python-3.6.6.tgz #解壓縮
cd Python-3.6.6 #進(jìn)入python 文件夾
./configure #配置
make && make install #安裝
2.3 安裝EPEL源并安裝superset必備的包
yum install epel-release #安裝epel源
yum install mysql-devel #安裝MySQL開發(fā)包,屬于pymysqlclient依賴
yum install gcc gcc-c++ libffi-devel python-devel python-wheel openssl-devel libsasl2-devel openldap-devel #安裝依賴包
2.4 安裝python3的virtualenv并建立superset的env
pip3 install virtualenv #安裝virtualenv
python3 -m venv superset-py3 #建立superset的venv
source superset-py3/bin/activate #激活superset的venv
3. 安裝Superset
3.1 在env中安裝superset
pip3 install --upgrade pip #升級pip
pip3 install --upgrade setuptools pip #升級setuptools
pip3 install superset #安裝superset
3.2 安裝superset數(shù)據(jù)庫包
pip3 install mysqlclient #安裝mysql連接包
pip3 install pymssql #安裝mssql連接包
3.3 配置superset
vim superset-py3/lib/python3.6/site-packages/superset/config.py
修改superset配置文件,將默認(rèn)的sqlite3數(shù)據(jù)庫改為MySQL找到:
SQLALCHEMY_DATABASE_URI = 'sqlite:////path/to/superset.db'
將其改為:
SQLALCHEMY_DATABASE_URI = ‘mysql://用戶名:密碼@IP地址/數(shù)據(jù)庫名?charset=utf8’
例如:
SQLALCHEMY_DATABASE_URI= = 'mysql://root:123456@172.16.1.107:3306/superset?charset=utf8'
3.4 在MySQL中創(chuàng)建superset數(shù)據(jù)庫
mysql -uroot -p #登錄MySQL
create database 數(shù)據(jù)庫名; #建立superset數(shù)據(jù)庫
3.5 初始化superset
fabmanager create-admin --app superset #建立管理員賬號
superset db upgrade
superset load_examples 導(dǎo)入案例
superset init #初始化superset數(shù)據(jù)庫
superset runserver #運(yùn)行superset
superset runserver -d 后臺啟動
在基礎(chǔ)數(shù)據(jù)表的初始化過程中,table_columns數(shù)據(jù)表中的type字段為32的varchar類型,如果需要連接排序規(guī)則為mssql的話,會導(dǎo)致數(shù)據(jù)表添加過程出錯(cuò),無法添加數(shù)據(jù)表中的字段
因此,需要將type字段長度修改為255
數(shù)據(jù)庫依賴
數(shù)據(jù)庫 命令 鏈接方式
MySQL pip install mysqlclient mysql://
Postgres pip install psycopg2 postgresql+psycopg2://
Presto pip install pyhive presto://
Oracle pip install cx_Oracle oracle://
sqlite sqlite://
Redshift pip install sqlalchemy-redshift redshift+psycopg2://
MSSQL pip install pymssql mssql://
Impala pip install impyla impala://
SparkSQL pip install pyhive jdbc+hive://
瀏覽器輸入
http://172.16.1.107:8088/login/

添加數(shù)據(jù)源
mysql://root:root@192.168.1.13/ky_mobile_box?charset=utf8

基于ambari添加數(shù)據(jù)源的方式:
mysql+pymysql://root:XXXXXXXXXX@localhost:3306/superset
