三條命令搞定MacOS安裝Greenplum
寫在前面
Mac的Term2 是 Terminal 的替代者。這是一款用于 macOS 的終端模擬器,支持窗口分割、熱鍵、搜索、自動(dòng)補(bǔ)齊、無鼠標(biāo)復(fù)制、歷史粘貼、即時(shí)重播等功能特性,適用于 MacOS 10.10 及以上版本。
Mac的用戶可以通過iterm2終端獲取Linux操作系統(tǒng)的體驗(yàn)。我們常見的大數(shù)據(jù)技術(shù)組件(比如Flink、Hadoop、Hive、Kafka等等)都可以在Mac OS上直接進(jìn)行安裝,操作過程與Linux安裝基本無差別。既然主流的大數(shù)據(jù)技術(shù)框架可以很方便地在MacOS上部署運(yùn)行,那Greenplum是否也可以很方便的在MacOS上部署呢?翻閱官網(wǎng)發(fā)現(xiàn)了下面的支持部署的操作系統(tǒng)說明:
Greenplum 6 runs on the following operating system platforms:
- Red Hat Enterprise Linux 64-bit 7.x (See the following Note[2].)
- Red Hat Enterprise Linux 64-bit 6.x
- CentOS 64-bit 7.x
- CentOS 64-bit 6.x
- Ubuntu 18.04 LTS
- Oracle Linux 64-bit 7, using the Red Hat Compatible Kernel (RHCK)
既然僅支持linux部署,那只能通過Docker進(jìn)行安裝了。
如何使用Docker安裝GP
使用Docker安裝GP主要有兩種方式:
- 第一種是安裝centos的鏡像,然后在centos中安裝greenplum,此種方式相當(dāng)于先裝一個(gè)linux的虛擬機(jī),然后在使用GP的安裝包進(jìn)行安裝,過程相當(dāng)繁瑣,本文不做過多說明。
- 第二種方式是直接通過docker拉去Greenplum的鏡像,然后直接運(yùn)行容器即可,本文使用的是第二種方式。
安裝步驟
安裝Docker
假設(shè)用戶已經(jīng)安裝了Homebrew ,就可以通過Homebrew 安裝docker了,步驟非常簡單:
- $ brew install --cask --appdir=/Applications docker
鏡像制作
假設(shè)已經(jīng)安裝了git,可以執(zhí)行下面的步驟:
- git clone https://github.com/tangyibo/greenplum_docker.git
克隆完成之后,進(jìn)入克隆的文件夾
- cd greenplum_docker/
可以看到文件夾下面有如下的文件:
- -rw-r--r-- 1 username staff 665B 8 24 14:57 Dockerfile
- -rw-r--r-- 1 username staff 8B 8 24 14:57 LICENSE
- -rw-r--r-- 1 username staff 1.3K 8 24 14:57 README.md
- -rw-r--r-- 1 username staff 246B 8 24 14:57 build.sh
- drwxr-xr-x@ 4 username staff 128B 8 24 15:45 data
- -rw-r--r-- 1 username staff 1.6K 8 24 14:57 entrypoint.sh
- -rw-r--r-- 1 username staff 2.9K 8 24 14:57 install.sh
- -rw-r--r-- 1 username staff 116B 8 24 14:57 test.sh
執(zhí)行build命令:
- sh build.sh
build的過程大約十分鐘左右。
運(yùn)行鏡像
創(chuàng)建一個(gè)文件夾
- mkdir -p ~/data/gpdb
運(yùn)行容器
- docker run -d --name greenplum -p 5432:5432 -v /Users/jmx/bigdata/data/gpdb:/Users/jmx/bigdata/data inrgihc/greenplum:6.16.3
此時(shí)容器已經(jīng)運(yùn)行了,可以通過一下命令查看:
- docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- b16c80b552f9 inrgihc/greenplum:6.16.3 "sh /entrypoint.sh" About a minute ago Up About a minute 22/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp greenplum
進(jìn)入容器
上面可以查看容器id為:b16c80b552f9
- docker exec -it b16c80b552f9 bin/sh
簡單操作
進(jìn)入容器后,我們就可以是使用greenplum了,下面是環(huán)境的一些配置說明:
進(jìn)入安裝目錄:
- cd /usr/local/greenplum-db
切換gpadmin用戶
- su gpadmin
使用psql客戶端
- $ psql
列出數(shù)據(jù)庫
- postgres=# \d
- No relations found.
- postgres=# \l
- List of databases
- Name | Owner | Encoding | Collate | Ctype | Access privileges
- -----------+---------+----------+------------+------------+---------------------
- postgres | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 |
- template0 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin +
- | | | | | gpadmin=CTc/gpadmin
- template1 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin +
- | | | | | gpadmin=CTc/gpadmin
- (3 rows)
創(chuàng)建數(shù)據(jù)庫
- postgres=# create database test;
- CREATE DATABASE
使用數(shù)據(jù)庫
- CREATE DATABASE
- postgres=# \c test
- You are now connected to database "test" as user "gpadmin".
- test=#
建表
- create table test2(id int,name varchar(128)) distributed by (id);
- CREATE TABLE
- test=#
查看表描述信息
- test=# \d test2;
- Table "public.test2"
- Column | Type | Modifiers
- --------+------------------------+-----------
- id | integer |
- name | character varying(128) |
- Distributed by: (id)
查看數(shù)據(jù)
- test=# insert into test2 values(1,'tom'),(2,'jack'),(3,'Bob');
- INSERT 0 3
- test=# select * from test2;
- id | name
- ----+------
- 2 | jack
- 3 | Bob
- 1 | tom
- (3 rows)
- test=#
查看所有表
- test=# \dt
- List of relations
- Schema | Name | Type | Owner | Storage
- --------+-------+-------+---------+---------
- public | test2 | table | gpadmin | heap
- (1 row)
運(yùn)維命令
- gpstate -s
總結(jié)
本文主要介紹如何在MacOS上安裝部署Greenplum,并給出了具體的操作步驟,安裝過程也十分簡單。對(duì)于Mac的用戶而言,如果需要安裝一些大數(shù)據(jù)的環(huán)境用于學(xué)習(xí)和測試,完全沒有必要安裝虛擬機(jī),一般的大數(shù)據(jù)技術(shù)組件都是支持在MacOS上部署運(yùn)行的,如果不行,使用Docker也能夠方便地安裝部署。