tikv / Pd
Programming Languages
Labels
Projects that are alternatives of or similar to Pd
PD
PD is the abbreviation for Placement Driver. It is used to manage and schedule the TiKV cluster.
PD supports distribution and fault-tolerance by embedding etcd.
If you're interested in contributing to PD, see CONTRIBUTING.md. For more contributing information, please click on the contributor icon above.
Build
- Make sure Go (version 1.13) is installed.
- Use
make
to install PD. PD is installed in thebin
directory.
Usage
Command flags
Single Node with default ports
You can run pd-server
directly on your local machine, if you want to connect to PD from outside,
you can let PD listen on the host IP.
# Set correct HostIP here.
export HostIP="192.168.199.105"
pd-server --name="pd" \
--data-dir="pd" \
--client-urls="http://${HostIP}:2379" \
--peer-urls="http://${HostIP}:2380" \
--log-file=pd.log
Using curl
to see PD member:
curl http://${HostIP}:2379/pd/api/v1/members
{
"members": [
{
"name":"pd",
"member_id":"f62e88a6e81c149",
"peer_urls": [
"http://192.168.199.105:2380"
],
"client_urls": [
"http://192.168.199.105:2379"
]
}
]
}
A better tool httpie is recommended:
http http://${HostIP}:2379/pd/api/v1/members
Access-Control-Allow-Headers: accept, content-type, authorization
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin: *
Content-Length: 673
Content-Type: application/json; charset=UTF-8
Date: Thu, 20 Feb 2020 09:49:42 GMT
{
"members": [
{
"client_urls": [
"http://192.168.199.105:2379"
],
"member_id": "f62e88a6e81c149",
"name": "pd",
"peer_urls": [
"http://192.168.199.105:2380"
]
}
]
}
Docker
You can use the following command to build a PD image directly:
docker build -t tikv/pd .
Or you can also use following command to get PD from Docker hub:
docker pull pingcap/pd
Run a single node with Docker:
# Set correct HostIP here.
export HostIP="192.168.199.105"
docker run -d -p 2379:2379 -p 2380:2380 --name pd tikv/pd \
--name="pd" \
--data-dir="pd" \
--client-urls="http://0.0.0.0:2379" \
--advertise-client-urls="http://${HostIP}:2379" \
--peer-urls="http://0.0.0.0:2380" \
--advertise-peer-urls="http://${HostIP}:2380" \
--log-file=pd.log
Cluster
PD is a component in TiDB project, you must run it with TiDB and TiKV together, see TiDB-Ansible to learn how to set up the cluster and run them.
You can also use Docker to run the cluster.