Tải về Source Code từ Kho lưu trữ chính thức
Trước khi bắt đầu biên dịch, bạn cần tải mã nguồn (source code) của Greenplum Database phiên bản ổn định nhất từ kho Git chính thức của Pivotal/Greenplum.
Việc tải từ Git thay vì file .tar.gz cho phép bạn linh hoạt chọn phiên bản cụ thể (tag) và cập nhật các bản vá lỗi (patch) nếu cần thiết trong quá trình hybrid deployment.
Đầu tiên, hãy chuyển đến thư mục làm việc tạm thời và clone repository.
cd /opt/gpdb-build
git clone https://github.com/greenplum-db/gpdb.git
Kết quả mong đợi: Thư mục "gpdb" được tạo ra trong /opt/gpdb-build. Quá trình clone có thể mất vài phút tùy tốc độ mạng.
Sau khi clone xong, bạn cần chuyển vào thư mục vừa tạo và checkout phiên bản cụ thể phù hợp với Ubuntu 24.04. Tại thời điểm hiện tại, dòng 6.x (ví dụ 6.25.0) hoặc dòng 7.x (ví dụ 7.0.0) là các lựa chọn ổn định.
cd gpdb
git checkout release-6.25.0
Kết quả mong đợi: Thông báo "Already on 'release-6.25.0'" hoặc "Switched to branch 'release-6.25.0'" xuất hiện trên terminal.
Bạn cần xác minh rằng file cấu hình chính (configure) đã có mặt để chuẩn bị cho bước tiếp theo.
ls -lh configure
Kết quả mong đợi: Xuất hiện file "configure" với kích thước khoảng vài MB (ví dụ: -rwxr-xr-x 1 root root 6.2M).
Cấu hình Script Build với Các Tùy chọn Cần thiết
Bước này là quan trọng nhất để xác định nơi các binary và thư viện sẽ được cài đặt sau khi biên dịch.
Greenplum yêu cầu một thư mục cài đặt cố định (thường là /usr/local/gpdb) để đảm bảo các script quản lý cluster (gpmgr, gpstop) hoạt động đúng mà không cần biến môi trường phức tạp.
Chúng ta sẽ chạy script "configure" với các flag sau:
- --prefix=/usr/local/gpdb: Đặt đường dẫn cài đặt chính (installation directory).
- --enable-parallel-build: Cho phép sử dụng nhiều core CPU để tăng tốc độ biên dịch.
- --with-perl=/usr/bin/perl: Chỉ định rõ đường dẫn Perl nếu hệ thống có nhiều phiên bản.
Thực thi lệnh cấu hình trong thư mục source code:
./configure --prefix=/usr/local/gpdb --enable-parallel-build --with-perl=/usr/bin/perl
Kết quả mong đợi: Script chạy và hiển thị thông báo "configure: creating ./config.status" cùng với dòng "Configuration complete for Greenplum Database" ở cuối.
Trong quá trình chạy, script sẽ kiểm tra các thành phần phụ thuộc (PostgreSQL, OpenSSL, Python, etc.) đã cài ở Phần 2. Nếu thiếu, nó sẽ báo lỗi "checking for ... failed". Nếu tất cả xanh, bạn đã sẵn sàng biên dịch.
Để xác nhận cấu hình đã ghi nhận đúng đường dẫn, hãy kiểm tra file "config.log" hoặc xem lại output cuối cùng có dòng:
grep "prefix" config.status
Kết quả mong đợi: Xuất hiện dòng chứa "prefix = /usr/local/gpdb".
Biên dịch và Cài đặt Greenplum (Make & Install)
Bây giờ bạn sẽ bắt đầu quá trình biên dịch mã nguồn thành các binary file thực thi.
Greenplum bao gồm rất nhiều thành phần (Postgres core, PXF, HAWQ, Pivotal HD components), nên quá trình này có thể tốn thời gian từ 30 đến 90 phút tùy cấu hình phần cứng.
Thực hiện lệnh make để biên dịch. Chúng ta sử dụng tham số "-j" để tận dụng tối đa số lượng CPU cores của server.
nproc
Kết quả mong đợi: Trả về số lượng cores (ví dụ: 16).
Giả sử máy bạn có 16 cores, hãy chạy lệnh make như sau:
make -j 16
Kết quả mong đợi: Terminal tràn ngập dòng log biên dịch (compiling, linking). Quá trình kết thúc bằng dòng "Install complete" hoặc tương tự, không có lỗi (error).
Sau khi biên dịch xong, bạn cần cài đặt các file đã biên dịch vào thư mục đích đã khai báo ở bước trước (/usr/local/gpdb).
make install
Kết quả mong đợi: Các file binary, script, và thư viện được copy vào /usr/local/gpdb/bin, /usr/local/gpdb/lib, /usr/local/gpdb/share.
Để đảm bảo an toàn và quyền truy cập, bạn nên kiểm tra lại quyền sở hữu của thư mục cài đặt.
ls -ld /usr/local/gpdb
Kết quả mong đợi: Thư mục này nên thuộc quyền sở hữu của root hoặc user "gpadmin" (tùy chiến lược bảo mật, nhưng thường là root khi mới cài đặt).
Kiểm tra Thư mục Cài đặt và File Cấu hình Mặc định
Sau khi cài đặt xong, bạn cần xác minh rằng các thành phần cốt lõi của Greenplum đã được đặt đúng vị trí.
Thư mục /usr/local/gpdb cần có cấu trúc con như sau: bin (chứa các binary), lib (thư viện động), share (template và script), và etc (cấu hình).
ls -R /usr/local/gpdb/ | head -n 30
Kết quả mong đợi: Thấy các thư mục bin, lib, libexec, share, etc.
Quan trọng nhất là thư mục "bin" phải chứa các binary quan trọng như postgres, gpcat, gpsegment, gpinit, gpstop.
ls /usr/local/gpdb/bin/ | grep -E "(postgres|gpin|gpstop|gpstart)"
Kết quả mong đợi: Liệt kê các file như "postgres", "gpinit", "gpstart", "gpstop", "gpsegstop", "gpcat".
Bạn cần kiểm tra file cấu hình mặc định của PostgreSQL (postgresql.conf) và file khởi động cluster (gpinitsystem_config) thường nằm trong thư mục share hoặc etc.
Đối với Greenplum, file mẫu cấu hình hệ thống nằm tại:
ls -l /usr/local/gpdb/share/postgresql/postgresql.conf.sample
Kết quả mong đợi: File postgresql.conf.sample tồn tại.
Để kiểm tra phiên bản của PostgreSQL engine được biên dịch trong Greenplum này, hãy chạy trực tiếp binary postgres với flag -V.
/usr/local/gpdb/bin/postgres -V
Kết quả mong đợi: Xuất hiện dòng "PostgreSQL 13.x (Greenplum Database 6.25.0 build ...)" hoặc tương ứng với phiên bản bạn đã checkout.
Thư mục "etc" trong Greenplum thường chứa các file cấu hình mặc định cho việc khởi tạo cluster, hãy kiểm tra file gpinitsystem_config.example nếu có.
ls /usr/local/gpdb/etc/
Kết quả mong đợi: Thấy các file như "gpinitsystem_config.example" hoặc "postgresql.auto.conf".
Tiếp theo, bạn cần kiểm tra biến môi trường PATH để đảm bảo các tool của Greenplum có thể chạy mà không cần gõ đường dẫn đầy đủ. Chúng ta sẽ thêm đường dẫn vào file .bashrc của user hiện tại.
echo 'export PATH=/usr/local/gpdb/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Kết quả mong đợi: Không có lỗi, terminal trở lại prompt bình thường.
Thử chạy lệnh "gpinit" để xác nhận PATH đã được cập nhật đúng.
which gpinit
Kết quả mong đợi: Trả về đường dẫn đầy đủ "/usr/local/gpdb/bin/gpinit".
Đảm bảo user hiện tại có quyền thực thi các binary này. Nếu chạy với root, hãy kiểm tra quyền execute.
ls -l /usr/local/gpdb/bin/gpinit
Kết quả mong đợi: Thấy các ký hiệu "rwx" ở đầu dòng (ví dụ: -rwxr-xr-x).
Quá trình tải về, biên dịch và cài đặt từ source code đã hoàn tất. Bạn đã có sẵn binary Greenplum Database trong hệ thống Ubuntu 24.04.
Điều hướng series:
Mục lục: Series: Triển khai Database Hybrid OLTP/OLAP với Greenplum trên Ubuntu 24.04
« Phần 2: Cài đặt các thành phần phụ thuộc và trình biên dịch cho Greenplum
Phần 4: Cấu hình kiến trúc Cluster và khởi tạo Greenplum Database »