<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>KB-1926 How to remove servers from a distributed installation for self-managed</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>KB-1926 How to remove servers from a distributed installation for self-managed</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed</link><pubDate>Fri, 28 Apr 2023 05:46:32 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Maggie Deppe-Walker</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Current Revision posted to Appian Knowledge Base by Maggie Deppe-Walker on 4/28/2023 5:46:32 AM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an self-managed&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for self-managed customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with Appian Technical Support detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all&amp;nbsp;engine nodes by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;/b&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;A list of Kafka host and ports can be found in&amp;nbsp;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt; element in the below file path. Please see the below path depending on the version of Appian installed:
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;strong&gt;19.1 and later:&lt;/strong&gt;&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&amp;nbsp;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;strong&gt;Pre-19.1:&amp;nbsp;&lt;/strong&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;The first Kafka broker listed in the topology is recognized as the primary broker and cannot be excluded from the cluster. If the node you would like to keep is not the first Kafka broker listed in the topology, update the topology file to make it the first broker in the cluster and restart IMS components in the environment.&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Kafka brokers should be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on&amp;nbsp;one of the Kafka nodes:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/lib/scripts/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers host:port&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;Run the script to exclude unneeded brokers one at a time. Replace&amp;nbsp;&lt;code&gt;host:port&lt;/code&gt; with &amp;lt;kafka-hostname&amp;gt; and Kafka port (the default port is 9092)&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any&amp;nbsp;Kafka host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe &lt;span&gt;--bootstrap-server &amp;lt;kafka-hostname&amp;gt;:9092&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&amp;lt;kafka-hostname&amp;gt;:9092&lt;/code&gt; is the hostname or IP address where any of the Kafka servers is running. If Kafka is not running with the default client port (9092), include the port as well: &lt;code&gt;hostname:1234&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed&amp;nbsp;= (your target Kafka cluster size) - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka cluster on all engine nodes.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all&amp;nbsp;engine nodes by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;server host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/server&amp;gt;&lt;br /&gt;  &amp;lt;search-cluster&amp;gt;&lt;br /&gt;    &amp;lt;search-server host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;9300&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/search-cluster&amp;gt;&lt;br /&gt;  &amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;    &amp;lt;broker host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;  &amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;    &amp;lt;zookeeper host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/zookeeperCluster&amp;gt;&lt;br /&gt;  &amp;lt;data-server-cluster&amp;gt;&lt;br /&gt;    &amp;lt;data-server host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;5400&amp;quot; rts-count=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/data-server-cluster&amp;gt;&lt;br /&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate the unnecessary server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian&amp;nbsp;18.2 and later.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed:&amp;nbsp;Feb 2023&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: high availability, kafka, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-1926 How to remove servers from a distributed installation for self-managed</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/33</link><pubDate>Fri, 28 Apr 2023 05:45:47 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Maggie Deppe-Walker</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 33 posted to Appian Knowledge Base by Maggie Deppe-Walker on 4/28/2023 5:45:47 AM&lt;br /&gt;
&lt;h2&gt;&lt;span&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an self-managed&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for self-managed customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is&amp;nbsp;&lt;strong&gt;not&lt;/strong&gt;&amp;nbsp;supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with Appian Technical Support detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="/solution-engineering/w/kb_draft/3072/draft-rev-sp-8172-kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all&amp;nbsp;engine nodes by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;Move Kafka Data to Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;/b&gt;
&lt;ol&gt;
&lt;li&gt;A list of Kafka host and ports can be found in&amp;nbsp;under the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;element in the below file path. Please see the below path depending on the version of Appian installed:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;19.1 and later:&lt;/strong&gt;&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pre-19.1:&amp;nbsp;&lt;/strong&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;The first Kafka broker listed in the topology is recognized as the primary broker and cannot be excluded from the cluster. If the node you would like to keep is not the first Kafka broker listed in the topology, update the topology file to make it the first broker in the cluster and restart IMS components in the environment.&lt;/li&gt;
&lt;li&gt;Kafka brokers should be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on&amp;nbsp;one of the Kafka nodes:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/lib/scripts/decreaseBrokerCount.sh --exclude-brokers host:port&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li&gt;Run the script to exclude unneeded brokers one at a time. Replace&amp;nbsp;&lt;code&gt;host:port&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with &amp;lt;kafka-hostname&amp;gt; and Kafka port (the default port is 9092)&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any&amp;nbsp;Kafka host and port:&lt;/strong&gt;&lt;b&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;code&gt;bin/kafka-topics.sh --describe&amp;nbsp;--bootstrap-server &amp;lt;kafka-hostname&amp;gt;:9092&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;&lt;code&gt;&amp;lt;kafka-hostname&amp;gt;:9092&lt;/code&gt;&amp;nbsp;is the hostname or IP address where any of the Kafka servers is running. If Kafka is not running with the default client port (9092), include the port as well:&amp;nbsp;&lt;code&gt;hostname:1234&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed&amp;nbsp;= (your target Kafka cluster size) - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Stop Kafka cluster on all engine nodes.&lt;br /&gt;&lt;code&gt;&lt;span&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all&amp;nbsp;engine nodes by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Edit&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;server host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/server&amp;gt;&lt;br /&gt;  &amp;lt;search-cluster&amp;gt;&lt;br /&gt;    &amp;lt;search-server host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;9300&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/search-cluster&amp;gt;&lt;br /&gt;  &amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;    &amp;lt;broker host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;  &amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;    &amp;lt;zookeeper host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/zookeeperCluster&amp;gt;&lt;br /&gt;  &amp;lt;data-server-cluster&amp;gt;&lt;br /&gt;    &amp;lt;data-server host=&amp;quot;&amp;lt;hostname&amp;gt;&amp;quot; port=&amp;quot;5400&amp;quot; rts-count=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/data-server-cluster&amp;gt;&lt;br /&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Deactivate the unnecessary server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This article applies to Appian&amp;nbsp;18.2 and later.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Last Reviewed:&amp;nbsp;Feb 2023&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: high availability, kafka, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-1926 How to remove servers from a distributed installation for self-managed</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/32</link><pubDate>Wed, 07 Oct 2020 01:07:51 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Parmida Borhani</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 32 posted to Appian Knowledge Base by Parmida Borhani on 10/7/2020 1:07:51 AM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an self-managed&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for self-managed customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with Appian Technical Support detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt; element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt; &lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian&amp;nbsp;18.2 and later.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed:&amp;nbsp;May 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: high availability, kafka, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-1926 How to remove servers from a distributed installation for self-managed</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/31</link><pubDate>Fri, 03 May 2019 20:02:48 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jordan Horwat</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 31 posted to Appian Knowledge Base by Jordan Horwat on 5/3/2019 8:02:48 PM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span&gt;This article describes how to remove servers from an self-managed&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for self-managed customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt; &lt;ol&gt; &lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt; &lt;ol&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt; element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt; &lt;ol&gt; &lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt; &lt;/ol&gt; &lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt; &lt;ol&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt; &lt;ol&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt; &lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt; &lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt; &lt;/ol&gt; &lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian&amp;nbsp;18.2 and later.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed:&amp;nbsp;May 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: high availability, kafka, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-1926 How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/30</link><pubDate>Fri, 03 May 2019 20:02:06 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jordan Horwat</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 30 posted to Appian Knowledge Base by Jordan Horwat on 5/3/2019 8:02:06 PM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for on-premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt; element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian&amp;nbsp;18.2 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed:&amp;nbsp;May 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-1926 How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/29</link><pubDate>Wed, 01 May 2019 02:12:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Parmida Borhani</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 29 posted to Appian Knowledge Base by Parmida Borhani on 5/1/2019 2:12:28 AM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for on-premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt; element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/28</link><pubDate>Wed, 01 May 2019 02:11:25 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Parmida Borhani</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 28 posted to Appian Knowledge Base by Parmida Borhani on 5/1/2019 2:11:25 AM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for on-premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt;&lt;/code&gt; element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/27</link><pubDate>Wed, 01 May 2019 02:10:15 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Parmida Borhani</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 27 posted to Appian Knowledge Base by Parmida Borhani on 5/1/2019 2:10:15 AM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for on-premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to the&amp;nbsp;&lt;a href="#ChangeTopology"&gt;&amp;#39;Change Topology&amp;#39;&lt;/a&gt;&amp;nbsp;section and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;a id="ChangeTopology"&gt;&lt;/a&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/26</link><pubDate>Wed, 01 May 2019 02:08:08 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Parmida Borhani</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 26 posted to Appian Knowledge Base by Parmida Borhani on 5/1/2019 2:08:08 AM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for on-premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper.&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s).&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2 are no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers.&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers.&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s).&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of the documentation that matches the version of Appian you are running.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, installation, how-to, infrastructure&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/25</link><pubDate>Tue, 30 Apr 2019 20:43:26 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 25 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 8:43:26 PM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/24</link><pubDate>Tue, 30 Apr 2019 20:42:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 24 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 8:42:44 PM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Restart Appian&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/23</link><pubDate>Tue, 30 Apr 2019 20:40:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 23 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 8:40:28 PM&lt;br /&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;Instructions&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;Stop a Subset of&amp;nbsp;Appian Services&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;Otherwise, complete all steps prior to the one that says to &amp;ldquo;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-size:inherit;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;Change Topology&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;span style="font-size:150%;"&gt;&lt;span style="font-size:inherit;"&gt;Restart Appian&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/22</link><pubDate>Tue, 30 Apr 2019 14:48:02 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 22 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 2:48:02 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Purpose&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Instructions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse order in which they are listed in the topology file.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/21</link><pubDate>Tue, 30 Apr 2019 14:37:55 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 21 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 2:37:55 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Purpose&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Instructions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/20</link><pubDate>Tue, 30 Apr 2019 14:37:03 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 20 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 2:37:03 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Purpose&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Instructions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt; &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size -&amp;nbsp;2.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/19</link><pubDate>Tue, 30 Apr 2019 14:36:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 19 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 2:36:22 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Purpose&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Instructions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml &lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(after 19.1) or&amp;nbsp;&lt;/span&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;(before 19.1)&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size -&amp;nbsp;2.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How to remove servers from a distributed installation for on premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/18</link><pubDate>Tue, 30 Apr 2019 14:33:52 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 18 posted to Appian Knowledge Base by Jennifer Wu on 4/30/2019 2:33:52 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Purpose&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This article describes how to remove servers from an on-premise&amp;nbsp;distributed installation of Appian.&amp;nbsp;&lt;/span&gt;&lt;span&gt;The documentation here applies only for On-Premise customers&amp;nbsp;running on Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead&amp;nbsp;create a case with&amp;nbsp;&lt;a href="https://forum.appian.com/suite/sites/support/page/new-case"&gt;Appian Support&lt;/a&gt;&amp;nbsp;detailing their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;"&gt;Instructions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;The links redirect to documentation corresponding to the latest version of Appian.&amp;nbsp;Be sure to select the documentation version that corresponds to the version of Appian you have installed.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between.&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article.&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml &lt;/code&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size -&amp;nbsp;2.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&amp;nbsp;(after 19.1) or &lt;/b&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/ear/suite.ear/conf/appian-topology.xml&lt;/code&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;(before 19.1)&amp;nbsp;&lt;/span&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;Last Reviewed: April 2019&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How To Remove Servers from a Distributed Installation for On Premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/17</link><pubDate>Mon, 29 Apr 2019 16:07:02 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 17 posted to Appian Knowledge Base by Jennifer Wu on 4/29/2019 4:07:02 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;The documentation here applies only for On-Premise customers with Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead contact&amp;nbsp;&lt;a href="/support/"&gt;Appian Support&lt;/a&gt;&amp;nbsp;with their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;, then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml &lt;/code&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size -&amp;nbsp;2 &amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;code&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;appian-topology.xml&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;Location&lt;/span&gt;&lt;/i&gt;&lt;span style="font-weight:400;"&gt;:&lt;/span&gt; &lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;conf/appian-topology.xml&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How To Remove Servers from a Distributed Installation for On Premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/16</link><pubDate>Mon, 29 Apr 2019 16:06:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 16 posted to Appian Knowledge Base by Jennifer Wu on 4/29/2019 4:06:44 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;The documentation here applies only for On-Premise customers with Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead contact&amp;nbsp;&lt;a href="/support/"&gt;Appian Support&lt;/a&gt;&amp;nbsp;with their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;,then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between&lt;br /&gt;&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml &lt;/code&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size -&amp;nbsp;2 &amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;code&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;appian-topology.xml&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;Location&lt;/span&gt;&lt;/i&gt;&lt;span style="font-weight:400;"&gt;:&lt;/span&gt; &lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;conf/appian-topology.xml&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How To Remove Servers from a Distributed Installation for On Premise</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/15</link><pubDate>Mon, 29 Apr 2019 16:06:08 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 15 posted to Appian Knowledge Base by Jennifer Wu on 4/29/2019 4:06:08 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;The documentation here applies only for On-Premise customers with Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead contact&amp;nbsp;&lt;a href="/support/"&gt;Appian Support&lt;/a&gt;&amp;nbsp;with their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Determine if any&amp;nbsp;&lt;strong&gt;of the servers you are removing are hosting Kafka &amp;amp; Zookeeper&lt;br /&gt;&lt;/strong&gt;&lt;/b&gt;If not, complete all steps in &lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;Stopping the Application Suite on Linux&lt;/a&gt;&amp;nbsp;,then&amp;nbsp;proceed&amp;nbsp;to &amp;#39;&lt;em&gt;Change Topology&lt;/em&gt;&amp;#39; and skip all instructions in between&lt;br /&gt;Otherwise, c&lt;span&gt;omplete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span&gt;Stop the Appian engines&amp;rdquo; in&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and follow&amp;nbsp;all directions in the rest of this article&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to&amp;nbsp;Remaining Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;If the server(s) you are removing are running Kafka, note their hostnames and Kafka ports of&amp;nbsp;those server(s)&lt;br /&gt;&lt;/b&gt;A list of Kafka host and ports can be found in&amp;nbsp;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml &lt;/code&gt;under the&lt;code&gt; &amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element. Kafka servers have to&amp;nbsp;be removed in the reverse chronological order in which they were added.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed a list of the hostnames and Kafka ports determined in step&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the brokers in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the brokers that will be removed&amp;nbsp;do NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size -&amp;nbsp;2 &amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;code&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;appian-topology.xml&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;Location&lt;/span&gt;&lt;/i&gt;&lt;span style="font-weight:400;"&gt;:&lt;/span&gt; &lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;conf/appian-topology.xml&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;The topology file should reflect the end state of where each Appian Service will be running.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file where there is only a single instance of each Appian Service&amp;nbsp;on Machine A.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server(s)&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-weight:400;"&gt;Follow all steps in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;Starting the Application Suite on Linux&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item><item><title>KB-XXXXX [DRAFT] How To Go From High Availability to Standalone for On Premise Installations</title><link>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed/revision/14</link><pubDate>Mon, 29 Apr 2019 15:37:53 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:283bb04c-6f4d-46b2-8ea4-5fcdd002cea4</guid><dc:creator>Jennifer Wu</dc:creator><comments>https://community.appian.com/support/w/kb/1426/kb-1926-how-to-remove-servers-from-a-distributed-installation-for-self-managed#comments</comments><description>Revision 14 posted to Appian Knowledge Base by Jennifer Wu on 4/29/2019 3:37:53 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;The documentation here applies only for On-Premise customers with Linux servers - a distributed installation&amp;nbsp;of Appian on Windows servers is &lt;strong&gt;not&lt;/strong&gt; supported. Customers who are on Appian Cloud should not follow these instructions and instead contact&amp;nbsp;&lt;a href="/support/"&gt;Appian Support&lt;/a&gt;&amp;nbsp;with their request.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users.&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;span&gt;: When moving from High Availability to Standalone, it is recommended to&amp;nbsp;adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information&amp;nbsp;is provided in&amp;nbsp;the&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Configuring_Application_Checkpointing.html#configuring-checkpointing-frequency"&gt;Configuring Checkpointing Frequency&lt;/a&gt;&lt;span&gt;&amp;nbsp;documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Stop a Subset of&amp;nbsp;Appian Services&lt;/span&gt;&lt;span style="font-size:200%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop all Services that are dependent on the Messaging Service (Kafka &amp;amp; Zookeeper) on all servers&lt;br /&gt;&lt;/b&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#stopping-the-application-suite-on-linux"&gt;&lt;span style="font-weight:400;"&gt;Stopping the Application Suite on Linux&lt;/span&gt;&lt;/a&gt; &lt;span style="font-weight:400;"&gt;Complete all steps prior to the one that says to &amp;ldquo;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;Stop the Appian engines&amp;rdquo;.&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;b style="font-family:inherit;"&gt;Stop Service Manager &amp;amp; Engines without stopping Zookeeper &amp;amp; Kafka on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/bin/stop.sh -p &amp;lt;password&amp;gt; -no-kafka -cluster -s all&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Move Kafka Data to Appropriate Servers&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Note the host and port of the last two Kafka broker listed in&lt;/b&gt; &lt;code&gt;&amp;lt;APPIAN_HOME&amp;gt;/conf/appian-topology.xml&lt;/code&gt;. &lt;b&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;The&amp;nbsp;servers being removed should correspond to the two most recently added Kafka brokers.&amp;nbsp;Kafka brokers are listed under the &lt;code&gt;&amp;lt;kafka-cluster&amp;gt; &lt;/code&gt;element&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Remove partitions from the brokers that will be removed by running the following on any one server:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionInfo&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-weight:400;"&gt;decreaseBrokerCount.sh --exclude-brokers [&amp;lt;host:port, host:port&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The script needs to be passed the hostnames and Kafka ports of the two servers that will be removed. This is determined in step&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Make sure that the broker in step&amp;nbsp;2&amp;nbsp;is no longer replicating any partitions&lt;/b&gt;&lt;strong&gt;&amp;nbsp;by running the&amp;nbsp;following using any Zookeeper host and port:&lt;/strong&gt;&lt;b&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services/kafka_&amp;lt;versionI&lt;/span&gt;&lt;span style="font-weight:400;"&gt;nfo&amp;gt;/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bin/kafka-topics.sh --describe --zookeeper &amp;lt;Zookeeper host&amp;gt;:&amp;lt;Zookeeper port&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Make sure that the broker-id of the broker that will be removed does NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Stop Remaining Appian Services&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Stop Kafka on all servers&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/service&lt;/span&gt;&lt;span style="font-weight:400;"&gt;s&lt;/span&gt;&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s kafka&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="background-color:#999999;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Once all Kafka brokers have stopped, stop Zookeeper on all servers by running:&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;/services&lt;span style="font-weight:400;"&gt;/stop.sh -p &amp;lt;password&amp;gt; -s zookeeper&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Change Topology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Edit &lt;code&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;appian-topology.xml&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;on every server that will remain. The topology file must be the same on all servers&lt;br /&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;Location&lt;/span&gt;&lt;/i&gt;&lt;span style="font-weight:400;"&gt;:&lt;/span&gt; &lt;code&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;lt;APPIAN_HOME&amp;gt;conf/appian-topology.xml&lt;/span&gt;&lt;/code&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;There should be only one instance of each Appian Service - Kafka, Zookeeper, Data Server, Search Server, and one instance of each engine and they should be hosted on the same server.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Below is an example topology file&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;topology port=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;forums&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;notify-email&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;channels&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;content&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;collaboration-statistics&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;personalization&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;portal&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-design&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-analytics2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;engine name=&amp;quot;process-execution2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&amp;lt;search-cluster&amp;gt;&lt;br /&gt;&amp;lt;search-server host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9301&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/search-cluster&amp;gt;&lt;br /&gt;&amp;lt;kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;broker host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;9092&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/kafkaCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeperCluster&amp;gt;&lt;br /&gt;&amp;lt;zookeeper host=&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot; port=&amp;quot;2181&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/zookeeperCluster&amp;gt;
&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;data-server-cluster&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;data-server&lt;/span&gt; &lt;span class="na"&gt;host=&lt;/span&gt;&amp;quot;&amp;lt;MACHINE_A_IP&amp;gt;&amp;quot;port=&lt;span class="s"&gt;&amp;quot;5400&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rts-count=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;span class="nt"&gt;&lt;code&gt;&amp;lt;/data-server-cluster&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/topology&amp;gt;&lt;/pre&gt;
&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Deactivate server&lt;br /&gt;&lt;/b&gt;This step is handled by the customer&amp;rsquo;s Appian System Administrator&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Restart Appian&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Make sure you are looking at the version of docs that matches the version of Appian you are running&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Starting_and_Stopping_Appian.html#starting-the-application-suite-on-linux"&gt;&lt;span style="font-weight:400;"&gt;Starting the Application Suite on Linux&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:200%;font-weight:400;"&gt;Affected Versions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;span&gt;This article applies to Appian 17.4 and later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: kafka, high availibility, zookeeper, how-to&lt;/div&gt;
</description></item></channel></rss>