| --- | |
| { | |
| "title": "Quick Start | GettingStarted", | |
| "language": "en", | |
| "description": "Starting from Doris version 2.1.8, Docker can be used for rapid deployment.", | |
| "sidebar_label": "Quick Start" | |
| } | |
| --- | |
| # Quick Start | |
| :::caution Warning: | |
| The following rapid deployment methods are intended solely for local development and testing, and should not be used in production environments. The reasons are as follows: | |
| 1. **Data Vulnerability**: Data can be easily lost when using Docker deployment, as data is lost upon container destruction. Manual deployment of single-replica instances lacks data redundancy and backup capabilities, meaning machine failures could result in data loss. | |
| 2. **Single-Replica Configuration**: The table creation statements in the examples are all single-replica. In a production environment, multi-replica storage should be used to ensure data reliability. | |
| ::: | |
| ## Use Docker for Quick Deployment | |
| Starting from Doris version 2.1.8, Docker can be used for rapid deployment. | |
| ### Step 1: Start the cluster | |
| Run the following command to download the startup script and start the cluster in one go. Use the `-v` parameter to specify a 3.x version: | |
| ```shell | |
| curl -fsSL https://doris.apache.org/files/start-doris.sh | bash -s -- -v 3.0.8 | |
| ``` | |
| ### Step 2: Connect to the cluster using MySQL client and check the cluster status | |
| ```sql | |
| ## Check the FE status to ensure that both the Join and Alive columns are true. | |
| mysql -uroot -P9030 -h127.0.0.1 -e 'SELECT `host`, `join`, `alive` FROM frontends()' | |
| +-----------+------+-------+ | |
| | host | join | alive | | |
| +-----------+------+-------+ | |
| | 127.0.0.1 | true | true | | |
| +-----------+------+-------+ | |
| ## Check the BE status to ensure that the Alive column is true. | |
| mysql -uroot -P9030 -h127.0.0.1 -e 'SELECT `host`, `alive` FROM backends()' | |
| +-----------+-------+ | |
| | host | alive | | |
| +-----------+-------+ | |
| | 127.0.0.1 | 1 | | |
| +-----------+-------+ | |
| ``` | |
| ## Local Quick Deployment | |
| :::info Environment Recommendations: | |
| * **Operating System**: It is recommended to use AMD/ARM mainstream Linux environments such as Ubuntu and above. | |
| * **Java Environment**: It is advised to use the Java 17 runtime environment. | |
| * **User Permissions**: It is recommended to create a new Doris user on Linux and avoid using the root user for operations. | |
| ::: | |
| ### Step 1: Download the Binary Package | |
| Download the corresponding binary installation package from the Apache Doris website [here](https://doris.apache.org/download), and extract it. | |
| ### Step 2: Modify the Environment Variables | |
| 1. **Modify the system's maximum open file descriptor limit** | |
| Use the following command to adjust the maximum file descriptor limit. After making this change, you need to restart the session to apply the configuration: | |
| ```sql | |
| vi /etc/security/limits.conf | |
| * soft nofile 1000000 | |
| * hard nofile 1000000 | |
| ``` | |
| 2. **Modify Virtual Memory Area** | |
| Use the following command to permanently modify the virtual memory area to at least 2000000, and apply the change immediately: | |
| ```bash | |
| cat >> /etc/sysctl.conf << EOF | |
| vm.max_map_count = 2000000 | |
| EOF | |
| ## Take effect immediately | |
| sysctl -p | |
| ``` | |
| ### Step 3: Install FE | |
| 1. **Configure FE** | |
| Modify the following contents in the FE configuration file `apache-doris/fe/conf/fe.conf`: | |
| ```sql | |
| ## Specify Java environment | |
| JAVA_HOME=/home/doris/jdk | |
| ## Specify the CIDR block for FE listening IP | |
| priority_networks=127.0.0.1/32 | |
| ``` | |
| 2. **Start FE** | |
| Run the FE process by executing the `start_fe.sh` script: | |
| ```sql | |
| apache-doris/fe/bin/start_fe.sh --daemon | |
| ``` | |
| 3. **Check FE Status** | |
| Connect to the cluster using MySQL client and check the cluster status: | |
| ```sql | |
| ## Check FE Status to ensure that both the Join and Alive columns are true | |
| mysql -uroot -P9030 -h127.0.0.1 -e "show frontends;" | |
| +-----------------------------------------+-----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+-------------------------+------------------+ | |
| | Name | Host | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected | | |
| +-----------------------------------------+-----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+-------------------------+------------------+ | |
| | fe_9d0169c5_b01f_478c_96ab_7c4e8602ec57 | 127.0.0.1 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 656872880 | true | true | 276 | 2024-07-28 18:07:39 | true | | doris-2.0.12-2971efd194 | Yes | | |
| +-----------------------------------------+-----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+-------------------------+------------------+ | |
| ``` | |
| ### Step 4: Install BE | |
| 1. **Configure BE** | |
| Modify the following contents in the BE configuration file `apache-doris/be/conf/be.conf`: | |
| ```sql | |
| ## Specify Java environment | |
| JAVA_HOME=/home/doris/jdk | |
| ## Specify the CIDR block for BE's listening IP | |
| priority_networks=127.0.0.1/32 | |
| ``` | |
| 2. **Start BE** | |
| Start the BE process with the following command: | |
| ```sql | |
| apache-doris/be/bin/start_be.sh --daemon | |
| ``` | |
| 3. **Register BE Node in the Cluster** | |
| Connect to the cluster using MySQL client: | |
| ```sql | |
| mysql -uroot -P9030 -h127.0.0.1 | |
| ``` | |
| Use the ADD BACKEND command to register the BE node: | |
| ```sql | |
| ALTER SYSTEM ADD BACKEND "127.0.0.1:9050"; | |
| ``` | |
| 4. **Check BE Status** | |
| Connect to the cluster using MySQL client and check the cluster status: | |
| ```sql | |
| ## Check BE Status to ensure that the Alive column is true | |
| mysql -uroot -P9030 -h127.0.0.1 -e "show backends;" | |
| +-----------+-----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+ | |
| | BackendId | Host | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | TabletNum | DataUsedCapacity | TrashUsedCapcacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | RemoteUsedCapacity | Tag | ErrMsg | Version | Status | HeartbeatFailureCounter | NodeRole | | |
| +-----------+-----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+ | |
| | 10156 | 127.0.0.1 | 9050 | 9060 | 8040 | 8060 | 2024-07-28 17:59:14 | 2024-07-28 18:08:24 | true | false | 14 | 0.000 | 0.000 | 8.342 GB | 19.560 GB | 57.35 % | 57.35 % | 0.000 | {"location" : "default"} | | doris-2.0.12-2971efd194 | {"lastSuccessReportTabletsTime":"2024-07-28 18:08:14","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix | | |
| +-----------+-----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+ | |
| ``` | |
| ## Run Queries | |
| 1. **Connect to the cluster using MySQL client:** | |
| ```sql | |
| mysql -uroot -P9030 -h127.0.0.1 | |
| ``` | |
| 2. **Create database and test table:** | |
| ```sql | |
| create database demo; | |
| use demo; | |
| create table mytable | |
| ( | |
| k1 TINYINT, | |
| k2 DECIMAL(10, 2) DEFAULT "10.05", | |
| k3 CHAR(10) COMMENT "string column", | |
| k4 INT NOT NULL DEFAULT "1" COMMENT "int column" | |
| ) | |
| COMMENT "my first table" | |
| DISTRIBUTED BY HASH(k1) BUCKETS 1 | |
| PROPERTIES ( | |
| "replication_num" = "1" | |
| ); | |
| ``` | |
| 3. **Import test data:** | |
| Insert test data using the Insert Into statement | |
| ```sql | |
| insert into mytable values | |
| (1,0.14,'a1',20), | |
| (2,1.04,'b2',21), | |
| (3,3.14,'c3',22), | |
| (4,4.35,'d4',23); | |
| ``` | |
| 4. **Execute the following SQL query in the MySQL client to view the imported data:** | |
| ```sql | |
| MySQL [demo]> select * from demo.mytable; | |
| +------+------+------+------+ | |
| | k1 | k2 | k3 | k4 | | |
| +------+------+------+------+ | |
| | 1 | 0.14 | a1 | 20 | | |
| | 2 | 1.04 | b2 | 21 | | |
| | 3 | 3.14 | c3 | 22 | | |
| | 4 | 4.35 | d4 | 23 | | |
| +------+------+------+------+ | |
| 4 rows in set (0.10 sec) | |
| ``` | |
| ## FAQs | |
| **Q: How do I install Docker on Mac?** | |
| A: Download and install [Docker Desktop](https://www.docker.com/products/docker-desktop/). | |
| **Q: Mac: "Error: Docker environment not detected" after Docker Desktop is installed** | |
| A: Create a symlink: | |
| ```shell | |
| sudo ln -s /Applications/Docker.app/Contents/Resources/bin/docker /usr/local/bin/docker | |
| ``` | |
| **Q: Mac: "error getting credentials - err: exit status 1, out: \`\`"** | |
| A: This error is usually caused by Docker credential helper misconfiguration. For local development/testing, you can remove the `credsStore` field in `~/.docker/config.json` as a workaround. Note: This workaround stores credentials in plaintext and is only recommended for local development environments. | |