linux搭建datax、datax-web
一、所需組件
1、jdk1.8
2、mysql5.7
3、python2.7
4、datax
5、datax-web
二、開始安裝
1、安裝jdk
mkdir -p /export/server/ 軟件安裝目錄
jdk安裝配置環境配置
將jdk安裝包上傳到 /export/server/
將壓縮包解壓到當前目錄
tar -zxvf jdk-8u291-linux-x64.tar.gz
將無用的安裝包刪除
rm -rf jdk-8u291-linux-x64.tar.gz
配置環境變量
vim /etc/profile
在文件最后面加上
export JAVA_HOME=/export/server/jdk1.8.0_291
export PATH=$PATH:$JAVA_HOME/bin
重新加載profile文件
source /etc/profile
測試jdk是否配置成功
java -version
2、安裝mysql5.7
下載地址:https://dev.mysql.com/downloads/file/?id=509630
將mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar上傳到軟件安裝目錄
解壓
tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
安裝
yum install mysql-community-{libs,client,common,server}-*.rpm
出現選項,輸入y
啟動mysql服務
systemctl start mysqld
更改MySQL服務的數據編碼
vim /etc/my.cnf
最下面一行加入
character-set-server=utf8
重新啟動服務
systemctl restart mysqld
顯示mysql日志
cat /var/log/mysqld.log
查看mysql臨時密碼
grep -i "temporary password" /var/log/mysqld.log
登錄mysql,用臨時密碼登錄
mysql -uroot -p
然后輸入密碼
進入數據庫后,更改密碼,不然無法進行操作
更改密碼前,先更改mysql密碼安全級別,默認長度
set global validate_password_policy=0;
set global validate_password_length=4;
然后更改mysql密碼
alter user root@localhost identified by '123456';
然后測試MySQL語句能否使用
show databases;
成功后輸入:exit;退出mysql
然后重新登錄,輸入新密碼,登錄成功
注意:如果本機客戶端無法登錄mysql需要進行以下操作
1)、關閉防火牆
systemctl stop firewalld.service
禁用防火牆
systemctl disable firewalld.service
查看當前狀態(出現dead表示成功)
systemctl status firewalld.service
2)、給root用戶所有權限,這樣就可以在客戶端進行修改
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
3、安裝python2.7
下載地址:https://www.python.org/ftp/python/
安裝依賴庫
yum install gcc g++ zlib zlib-devel openssl-devel
解壓
tar -zxvf Python-2.7.14.tgz
創建安裝文件夾
mkdir /usr/local/python27
編譯安裝
cd Python-2.7.14
./configure --prefix=/usr/local/python27/
make && make install
安裝完成之后進入目錄,里面顯示4個目錄bin
include
lib
share
cd /usr/local/python27/
ll
進入到bin目錄下
cd bin/
輸入python,顯示相關版本說明安裝成功
python
創建鏈接
刪除之前的鏈接
rm -rf /usr/bin/python /usr/bin/python2
創建新的鏈接
ln -s /usr/local/python27/bin/python2.7 /usr/bin/python
ln -s /usr/local/python27/bin/python2.7 /usr/bin/python2
ln -s /usr/local/python27/bin/python2.7 /usr/bin/python27
ln -s /usr/local/python27/bin/python2.7 /usr/bin/python2.7
輸入python查看是否成功
創建新鏈接導致yum失效的解決方法
修改yum命令的文件
vim /usr/bin/yum
4、安裝datax工具包
datax工具包下載地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
將安裝包上傳到服端的/export/server目錄下
解壓
tar -xvf datax.tar
測試工具包
可以在本地數據庫創建兩個表
CREATE TABLE `table1` (
`id` int(10) NULL DEFAULT NULL,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
CREATE TABLE `table2` (
`id` int(10) NULL DEFAULT NULL,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `table1` VALUES (1, '張三');
INSERT INTO `table1` VALUES (2, '李四');
INSERT INTO `table1` VALUES (3, '李逵');
INSERT INTO `table1` VALUES (4, '王弼');
INSERT INTO `table1` VALUES (5, '張梅');
INSERT INTO `table1` VALUES (6, '小寒');
INSERT INTO `table1` VALUES (7, '韓裔');
INSERT INTO `table1` VALUES (8, '郭丹');
在/export/server/datax/job新建一個json文件,我這里直接修改原job.json文件
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"column": [
"id",
"name"
],
"connection": [
{
"table": [
"table1"
],
"jdbcUrl": [
"jdbc:mysql://localhost/datax?characterEncoding=utf8"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"username": "root",
"password": "123456",
"column": [
"id",
"name"
],
"connection": [
{
"table": [
"table2"
],
"jdbcUrl": "jdbc:mysql://localhost/datax?characterEncoding=utf8"
}
]
}
}
}
],
"setting": {
"speed": {
"channel": 1,
"byte": 104857600
},
"errorLimit": {
"record": 10,
"percentage": 0.05
}
}
}
}
然后將/export/server/datax/plugin目錄下所有帶._的文件全部刪除,否則數據讀取寫入時會報錯
然后切換到/export/server/datax/bin目錄下
cd /export/server/datax/bin
執行json腳本
python datax.py ../job/job.json
執行成功開始下一步
5、安裝datax-web工具包
下載地址:https://pan.baidu.com/s/13yoqhGpD00I82K4lOYtQhg 提取碼:cpsk
將安裝包上傳到服端的/export/server目錄下
解壓
tar -xvf datax-web-2.1.2.tar
cd /export/server/datax-web-2.1.2
安裝
./bin/install.sh --force
如果你的服務上安裝有mysql命令,在執行安裝腳本的過程中則會出現以下提醒:
Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [{INSTALL_PATH}/bin/db/datax-web.sql]? (Y/N)y
Please input the db host(default: 127.0.0.1):
Please input the db port(default: 3306):
Please input the db username(default: root):
Please input the db password(default: ):
Please input the db name(default: exchangis)
以上分別是安裝確認,默認ip,端口,用戶名,密碼,數據庫(一般只需要填一下密碼即可)
按照提示輸入數據庫地址,端口號,用戶名,密碼以及數據庫名稱,大部分情況下即可快速完成初始化。 如果服務上並沒有安裝mysql命令,則可以取用目錄下/bin/db/datax-web.sql腳本去手動執行,完成后修改相關配置文件
vi ./modules/datax-admin/conf/bootstrap.properties
#Database
#DB_HOST=
#DB_PORT=
#DB_USERNAME=
#DB_PASSWORD=
#DB_DATABASE=
修改datax-executor配置文件,更改ip和python(python是你運行datax.py的路徑)
vim ./modules/datax-executor/conf/application.yml
然后啟動datax-web
./bin/start-all.sh
運行:
部署完成后,在瀏覽器中輸入 http://ip:port/index.html 就可以訪問對應的主界面
注意:如果遇到mysql添加數據源出錯,需要在jdbc:mysql://{host}:{port}/{database}后面添加?useSSL=false