deploy-background.html 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548
  1. <!DOCTYPE HTML>
  2. <html lang="zh-hans" >
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  6. <title>后端部署 · 调度系统-EasyScheduler</title>
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  8. <meta name="description" content="">
  9. <meta name="generator" content="GitBook 3.2.3">
  10. <meta name="author" content="YIGUAN">
  11. <link rel="stylesheet" href="../gitbook/style.css">
  12. <link rel="stylesheet" href="../gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.css">
  13. <link rel="stylesheet" href="../gitbook/gitbook-plugin-insert-logo-link/plugin.css">
  14. <link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
  15. <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
  16. <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
  17. <link rel="stylesheet" href="../styles/website.css">
  18. <meta name="HandheldFriendly" content="true"/>
  19. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  20. <meta name="apple-mobile-web-app-capable" content="yes">
  21. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  22. <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
  23. <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
  24. <link rel="next" href="deploy-background.html" />
  25. <link rel="prev" href="deploy-foreground.html" />
  26. </head>
  27. <body>
  28. <div class="book">
  29. <div class="book-summary">
  30. <div id="book-search-input" role="search">
  31. <input type="text" placeholder="输入并搜索" />
  32. </div>
  33. <nav role="navigation">
  34. <ul class="summary">
  35. <li class="chapter " data-level="1.1" data-path="../">
  36. <a href="../">
  37. Easyscheduler简介
  38. </a>
  39. </li>
  40. <li class="chapter " data-level="1.2" >
  41. <span>
  42. 导读指南
  43. </span>
  44. <ul class="articles">
  45. <li class="chapter " data-level="1.2.1" data-path="guide-architecture.html">
  46. <a href="guide-architecture.html">
  47. 系统架构分析
  48. </a>
  49. <ul class="articles">
  50. <li class="chapter " data-level="1.2.1.1" data-path="guide-architecture.html">
  51. <a href="guide-architecture.html#导语">
  52. 导语
  53. </a>
  54. </li>
  55. <li class="chapter " data-level="1.2.1.2" data-path="guide-architecture.html">
  56. <a href="guide-architecture.html#背景">
  57. 背景
  58. </a>
  59. </li>
  60. <li class="chapter " data-level="1.2.1.3" data-path="guide-architecture.html">
  61. <a href="guide-architecture.html#总架构设计">
  62. 总架构设计
  63. </a>
  64. </li>
  65. <li class="chapter " data-level="1.2.1.4" data-path="guide-architecture.html">
  66. <a href="guide-architecture.html#中心化思想">
  67. 中心化思想
  68. </a>
  69. </li>
  70. <li class="chapter " data-level="1.2.1.5" data-path="guide-architecture.html">
  71. <a href="guide-architecture.html#分布式锁实践">
  72. 分布式锁实践
  73. </a>
  74. </li>
  75. <li class="chapter " data-level="1.2.1.6" data-path="guide-architecture.html">
  76. <a href="guide-architecture.html#线程不足循环等待问题">
  77. 线程不足循环等待问题
  78. </a>
  79. </li>
  80. <li class="chapter " data-level="1.2.1.7" data-path="guide-architecture.html">
  81. <a href="guide-architecture.html#容错设计">
  82. 容错设计
  83. </a>
  84. </li>
  85. <li class="chapter " data-level="1.2.1.8" data-path="guide-architecture.html">
  86. <a href="guide-architecture.html#日志访问">
  87. Logback和gRPC实现日志访问
  88. </a>
  89. </li>
  90. <li class="chapter " data-level="1.2.1.9" data-path="guide-architecture.html">
  91. <a href="guide-architecture.html#总结">
  92. 总结
  93. </a>
  94. </li>
  95. </ul>
  96. </li>
  97. <li class="chapter " data-level="1.2.2" data-path="guide-manual.html">
  98. <a href="guide-manual.html">
  99. 使用手册
  100. </a>
  101. <ul class="articles">
  102. <li class="chapter " data-level="1.2.2.1" data-path="guide-manual.html">
  103. <a href="guide-manual.html#登录">
  104. 登录
  105. </a>
  106. </li>
  107. <li class="chapter " data-level="1.2.2.2" data-path="guide-manual.html">
  108. <a href="guide-manual.html#安全中心">
  109. 安全中心
  110. </a>
  111. </li>
  112. <li class="chapter " data-level="1.2.2.3" data-path="guide-manual.html">
  113. <a href="guide-manual.html#资源中心">
  114. 资源中心
  115. </a>
  116. </li>
  117. <li class="chapter " data-level="1.2.2.4" data-path="guide-manual.html">
  118. <a href="guide-manual.html#数据源中心">
  119. 数据源中心
  120. </a>
  121. </li>
  122. <li class="chapter " data-level="1.2.2.5" data-path="guide-manual.html">
  123. <a href="guide-manual.html#项目管理">
  124. 项目管理
  125. </a>
  126. </li>
  127. <li class="chapter " data-level="1.2.2.6" data-path="guide-manual.html">
  128. <a href="guide-manual.html#首页">
  129. 站点首页
  130. </a>
  131. </li>
  132. <li class="chapter " data-level="1.2.2.7" data-path="guide-manual.html">
  133. <a href="guide-manual.html#任务依赖">
  134. 任务依赖
  135. </a>
  136. </li>
  137. <li class="chapter " data-level="1.2.2.8" data-path="guide-manual.html">
  138. <a href="guide-manual.html#系统参数">
  139. 系统参数
  140. </a>
  141. </li>
  142. </ul>
  143. </li>
  144. </ul>
  145. </li>
  146. <li class="chapter " data-level="1.3" >
  147. <span>
  148. 项目部署文档
  149. </span>
  150. <ul class="articles">
  151. <li class="chapter " data-level="1.3.1" data-path="deploy-foreground.html">
  152. <a href="deploy-foreground.html">
  153. 前端部署
  154. </a>
  155. <ul class="articles">
  156. <li class="chapter " data-level="1.3.1.1" data-path="deploy-foreground.html">
  157. <a href="deploy-foreground.html#前端项目环境构建及编译">
  158. 前端项目环境构建及编译
  159. </a>
  160. </li>
  161. <li class="chapter " data-level="1.3.1.2" data-path="deploy-foreground.html">
  162. <a href="deploy-foreground.html#安装及配置">
  163. 安装及配置
  164. </a>
  165. </li>
  166. <li class="chapter " data-level="1.3.1.3" data-path="deploy-foreground.html">
  167. <a href="deploy-foreground.html#项目生产环境配置">
  168. 项目生产环境Nginx配置
  169. </a>
  170. </li>
  171. <li class="chapter " data-level="1.3.1.4" data-path="deploy-foreground.html">
  172. <a href="deploy-foreground.html#前端项目发布">
  173. 前端项目发布
  174. </a>
  175. </li>
  176. <li class="chapter " data-level="1.3.1.5" data-path="deploy-foreground.html">
  177. <a href="deploy-foreground.html#问题">
  178. 问题
  179. </a>
  180. </li>
  181. </ul>
  182. </li>
  183. <li class="chapter active" data-level="1.3.2" data-path="deploy-background.html">
  184. <a href="deploy-background.html">
  185. 后端部署
  186. </a>
  187. <ul class="articles">
  188. <li class="chapter " data-level="1.3.2.1" data-path="deploy-background.html">
  189. <a href="deploy-background.html#基础软件安装">
  190. 基础软件安装
  191. </a>
  192. </li>
  193. <li class="chapter " data-level="1.3.2.2" data-path="deploy-background.html">
  194. <a href="deploy-background.html#项目编译">
  195. 项目编译
  196. </a>
  197. </li>
  198. <li class="chapter " data-level="1.3.2.3" data-path="deploy-background.html">
  199. <a href="deploy-background.html#数据库初始化">
  200. 数据库初始化
  201. </a>
  202. </li>
  203. <li class="chapter " data-level="1.3.2.4" data-path="deploy-background.html">
  204. <a href="deploy-background.html#创建部署用户">
  205. 创建部署用户
  206. </a>
  207. </li>
  208. <li class="chapter " data-level="1.3.2.5" data-path="deploy-background.html">
  209. <a href="deploy-background.html#配置文件">
  210. 配置文件
  211. </a>
  212. <ul class="articles">
  213. <li class="chapter " data-level="1.3.2.5.1" data-path="deploy-background.html">
  214. <a href="deploy-background.html#escheduler-alert">
  215. escheduler-alert
  216. </a>
  217. </li>
  218. <li class="chapter " data-level="1.3.2.5.2" data-path="deploy-background.html">
  219. <a href="deploy-background.html#escheduler-common">
  220. escheduler-common
  221. </a>
  222. </li>
  223. <li class="chapter " data-level="1.3.2.5.3" data-path="deploy-background.html">
  224. <a href="deploy-background.html#escheduler-dao">
  225. escheduler-dao
  226. </a>
  227. </li>
  228. <li class="chapter " data-level="1.3.2.5.4" data-path="deploy-background.html">
  229. <a href="deploy-background.html#escheduler-server">
  230. escheduler-server
  231. </a>
  232. </li>
  233. <li class="chapter " data-level="1.3.2.5.5" data-path="deploy-background.html">
  234. <a href="deploy-background.html#escheduler-web">
  235. escheduler-web
  236. </a>
  237. </li>
  238. </ul>
  239. </li>
  240. <li class="chapter " data-level="1.3.2.6" data-path="deploy-background.html">
  241. <a href="deploy-background.html#启动停止命令">
  242. 启动停止命令
  243. </a>
  244. </li>
  245. <li class="chapter " data-level="1.3.2.7" data-path="deploy-background.html">
  246. <a href="deploy-background.html#一键启停脚本">
  247. 一键启停脚本
  248. </a>
  249. </li>
  250. <li class="chapter " data-level="1.3.2.8" data-path="deploy-background.html">
  251. <a href="deploy-background.html#监控服务">
  252. 监控服务
  253. </a>
  254. </li>
  255. <li class="chapter " data-level="1.3.2.9" data-path="deploy-background.html">
  256. <a href="deploy-background.html#日志查看">
  257. 日志查看
  258. </a>
  259. </li>
  260. </ul>
  261. </li>
  262. </ul>
  263. </li>
  264. <li class="chapter " data-level="1.4" >
  265. <span>
  266. 前端开发文档
  267. </span>
  268. <ul class="articles">
  269. <li class="chapter " data-level="1.4.1" data-path="foreground-2.html">
  270. <a href="foreground-2.html">
  271. 安装
  272. </a>
  273. </li>
  274. </ul>
  275. </li>
  276. <li class="chapter " data-level="1.5" >
  277. <span>
  278. 后端开发文档
  279. </span>
  280. <ul class="articles">
  281. <li class="chapter " data-level="1.5.1" data-path="background-2.html">
  282. <a href="background-2.html">
  283. 后端说明2
  284. </a>
  285. </li>
  286. </ul>
  287. </li>
  288. <li class="divider"></li>
  289. <li>
  290. <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
  291. 本书使用 GitBook 发布
  292. </a>
  293. </li>
  294. </ul>
  295. </nav>
  296. </div>
  297. <div class="book-body">
  298. <div class="body-inner">
  299. <div class="book-header" role="navigation">
  300. <!-- Title -->
  301. <h1>
  302. <i class="fa fa-circle-o-notch fa-spin"></i>
  303. <a href=".." >后端部署</a>
  304. </h1>
  305. </div>
  306. <div class="page-wrapper" tabindex="-1" role="main">
  307. <div class="page-inner">
  308. <div id="book-search-results">
  309. <div class="search-noresults">
  310. <section class="normal markdown-section">
  311. <p>&#x200B;</p>
  312. <h1 id="&#x90E8;&#x7F72;&#x6587;&#x6863;">&#x90E8;&#x7F72;&#x6587;&#x6863;</h1>
  313. <h2 id="&#x8F6F;&#x4EF6;&#x8981;&#x6C42;">&#x8F6F;&#x4EF6;&#x8981;&#x6C42;</h2>
  314. <ul>
  315. <li><a href="https://blog.csdn.net/u011886447/article/details/79796802" target="_blank">Mysql</a> (5.5+) : &#x5FC5;&#x88C5;</li>
  316. <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">JDK</a> (1.8+) &#xFF1A;&#x5FC5;&#x88C5; </li>
  317. <li><a href="https://www.jianshu.com/p/de90172ea680" target="_blank">Zookeeper</a> (3.4.6) &#xFF1A;&#x5FC5;&#x88C5; </li>
  318. <li><a href="https://blog.csdn.net/Evankaka/article/details/51612437" target="_blank">Hadoop</a> (2.7+) &#xFF1A;&#x9009;&#x88C5;&#xFF0C; &#x5982;&#x679C;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x5230;EasyScheduler&#x7684;&#x8D44;&#x6E90;&#x4E0A;&#x4F20;&#xFF0C;MapReduce&#x4EFB;&#x52A1;&#x5728;&#x7EBF;&#x63D0;&#x4EA4;&#x5219;&#x9700;&#x8981;&#x5B89;&#x88C5;(&#x4E0A;&#x4F20;&#x7684;&#x8D44;&#x6E90;&#x6587;&#x4EF6;&#x76EE;&#x524D;&#x4FDD;&#x5B58;&#x5728;Hdfs&#x4E0A;)</li>
  319. <li><a href="https://staroon.pro/2017/12/09/HiveInstall/" target="_blank">Hive</a> (1.2.1+) : &#x9009;&#x88C5;&#xFF0C;&#x5982;&#x679C;&#x8DD1;Hive&#x4EFB;&#x52A1;&#x9700;&#x8981;&#x5B89;&#x88C5;(</li>
  320. <li><a href="https://www.cnblogs.com/caoguo/p/4625662.html" target="_blank">Reids&#x5B89;&#x88C5;</a> (2.7.0+) : &#x9009;&#x88C5;&#xFF0C; &#x4EFB;&#x52A1;&#x961F;&#x5217;&#x9009;&#x62E9;Redis&#x65F6;&#x9700;&#x8981;&#x5B89;&#x88C5;</li>
  321. <li>Spark(1.x,2.x) : &#x9009;&#x88C5;&#xFF0C;Spark&#x4EFB;&#x52A1;&#x63D0;&#x4EA4;&#x9700;&#x8981;&#x5B89;&#x88C5;</li>
  322. <li><p>PostgreSQL(8.2.15+) : &#x9009;&#x88C5;&#xFF0C;PostgreSQL&#x5B58;&#x50A8;&#x8FC7;&#x7A0B;&#x9700;&#x8981;&#x5B89;&#x88C5;</p>
  323. <blockquote>
  324. <p>&#x6CE8;&#x610F;&#xFF1A;EasyScheduler&#x672C;&#x8EAB;&#x4E0D;&#x4F9D;&#x8D56;Hadoop&#x3001;Hive&#x3001;Spark&#x3001;PostgreSQL&#x3001;Redis,&#x4EC5;&#x662F;&#x7528;&#x5230;&#x4E86;&#x4ED6;&#x4EEC;&#x7684;Client jar&#xFF0C;&#x7528;&#x4E8E;&#x5BF9;&#x5E94;&#x4EFB;&#x52A1;&#x7684;&#x8FD0;&#x884C;&#x3002;</p>
  325. </blockquote>
  326. </li>
  327. </ul>
  328. <h2 id="&#x9879;&#x76EE;&#x7F16;&#x8BD1;">&#x9879;&#x76EE;&#x7F16;&#x8BD1;</h2>
  329. <ul>
  330. <li>&#x6267;&#x884C;&#x7F16;&#x8BD1;&#x547D;&#x4EE4;&#xFF1A;</li>
  331. </ul>
  332. <blockquote>
  333. <p><code>mvn -U clean package assembly:assembly -Dmaven.test.skip=true</code> </p>
  334. </blockquote>
  335. <ul>
  336. <li>&#x67E5;&#x770B;&#x76EE;&#x5F55;</li>
  337. </ul>
  338. <p>&#x6B63;&#x5E38;&#x7F16;&#x8BD1;&#x5B8C;&#x540E;&#xFF0C;&#x4F1A;&#x5728;&#x5F53;&#x524D;&#x76EE;&#x5F55;&#x751F;&#x6210; target/escheduler-{version}-SNAPSHOT/</p>
  339. <pre><code> bin
  340. conf
  341. lib
  342. script
  343. sql
  344. </code></pre><ul>
  345. <li><p>&#x8BF4;&#x660E;</p>
  346. <pre><code>bin : &#x5DE5;&#x7A0B;&#x670D;&#x52A1;&#x542F;&#x52A8;&#x811A;&#x672C;
  347. conf : &#x5DE5;&#x7A0B;&#x914D;&#x7F6E;&#x6587;&#x4EF6;
  348. lib : &#x5DE5;&#x7A0B;&#x4F9D;&#x8D56;jar&#x5305;&#xFF0C;&#x5305;&#x62EC;&#x5404;&#x4E2A;&#x6A21;&#x5757;jar&#x548C;&#x7B2C;&#x4E09;&#x65B9;jar
  349. script : &#x5DE5;&#x7A0B;&#x81EA;&#x52A8;&#x5316;&#x90E8;&#x7F72;&#x3001;&#x542F;&#x52A8;&#x811A;&#x672C;
  350. sql : &#x5DE5;&#x7A0B;&#x4F9D;&#x8D56;sql&#x6587;&#x4EF6;
  351. </code></pre></li>
  352. </ul>
  353. <h2 id="&#x6570;&#x636E;&#x5E93;&#x521D;&#x59CB;&#x5316;">&#x6570;&#x636E;&#x5E93;&#x521D;&#x59CB;&#x5316;</h2>
  354. <ul>
  355. <li>&#x521B;&#x5EFA;database&#x548C;&#x8D26;&#x53F7;</li>
  356. </ul>
  357. <pre><code>mysql -h {host} -u {user} -p{password}
  358. mysql&gt; CREATE DATABASE escheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  359. mysql&gt; GRANT ALL PRIVILEGES ON escheduler.* TO &apos;{user}&apos;@&apos;%&apos; IDENTIFIED BY &apos;{password}&apos;;
  360. mysql&gt; GRANT ALL PRIVILEGES ON escheduler.* TO &apos;{user}&apos;@&apos;localhost&apos; IDENTIFIED BY &apos;{password}&apos;;
  361. mysql&gt; flush privileges;
  362. </code></pre><ul>
  363. <li>&#x521B;&#x5EFA;&#x8868;</li>
  364. </ul>
  365. <pre><code>&#x8BF4;&#x660E;&#xFF1A;&#x5728;target/escheduler-{version}-SNAPSHOT/sql/&#x6709;&#x4E24;&#x4E2A;sql&#x521B;&#x5EFA;&#x8868;&#x6587;&#x4EF6;&#xFF1A;escheduler.sql&#x548C;quartz.sql
  366. &#x6267;&#x884C;&#xFF1A;
  367. mysql -h {host} -u {user} -p{password} -D {db} &lt; escheduler.sql
  368. mysql -h {host} -u {user} -p{password} -D {db} &lt; quartz.sql
  369. </code></pre><h2 id="&#x521B;&#x5EFA;&#x90E8;&#x7F72;&#x7528;&#x6237;">&#x521B;&#x5EFA;&#x90E8;&#x7F72;&#x7528;&#x6237;</h2>
  370. <p>&#x56E0;&#x4E3A;easyscheduler worker&#x90FD;&#x662F;&#x4EE5; sudo -u {linux-user} &#x65B9;&#x5F0F;&#x6765;&#x6267;&#x884C;&#x4F5C;&#x4E1A;&#xFF0C;&#x6240;&#x4EE5;&#x90E8;&#x7F72;&#x7528;&#x6237;&#x9700;&#x8981;&#x6709; sudo &#x6743;&#x9650;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x514D;&#x5BC6;&#x7684;&#x3002;</p>
  371. <pre><code>&#x90E8;&#x7F72;&#x8D26;&#x53F7;
  372. vi /etc/sudoers
  373. # &#x90E8;&#x7F72;&#x7528;&#x6237;&#x662F; escheduler &#x8D26;&#x53F7;
  374. escheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL
  375. # &#x5E76;&#x4E14;&#x9700;&#x8981;&#x6CE8;&#x91CA;&#x6389; Default requiretty &#x4E00;&#x884C;
  376. #Default requiretty
  377. </code></pre><h2 id="&#x914D;&#x7F6E;&#x6587;&#x4EF6;">&#x914D;&#x7F6E;&#x6587;&#x4EF6;</h2>
  378. <p><code>&#x8BF4;&#x660E;&#xFF1A;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x4F4D;&#x4E8E; target/escheduler-{version}-SNAPSHOT/conf &#x4E0B;&#x9762;</code></p>
  379. <h3 id="escheduler-alert">escheduler-alert</h3>
  380. <p>&#x914D;&#x7F6E;&#x90AE;&#x4EF6;&#x544A;&#x8B66;&#x4FE1;&#x606F;</p>
  381. <ul>
  382. <li>alert.properties </li>
  383. </ul>
  384. <pre><code>#&#x4EE5;qq&#x90AE;&#x7BB1;&#x4E3A;&#x4F8B;&#xFF0C;&#x5982;&#x679C;&#x662F;&#x522B;&#x7684;&#x90AE;&#x7BB1;&#xFF0C;&#x8BF7;&#x66F4;&#x6539;&#x5BF9;&#x5E94;&#x914D;&#x7F6E;
  385. #alert type is EMAIL/SMS
  386. alert.type=EMAIL
  387. # mail server configuration
  388. mail.protocol=SMTP
  389. mail.server.host=smtp.exmail.qq.com
  390. mail.server.port=25
  391. mail.sender=xxxxxx@qq.com
  392. mail.passwd=xxxxxxx
  393. # xls file path, need manually create it before use if not exist
  394. xls.file.path=/opt/xls
  395. </code></pre><p>&#x914D;&#x7F6E;&#x544A;&#x8B66;&#x6570;&#x636E;&#x6E90;&#x4FE1;&#x606F;</p>
  396. <ul>
  397. <li>alert/data_source.properties </li>
  398. </ul>
  399. <pre><code>#&#x6CE8;&#x610F;&#xFF1A;&#x8BF7;&#x66FF;&#x6362;${xxx}&#x91CC;&#x7684;&#x5185;&#x5BB9;
  400. # common configuration
  401. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  402. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  403. spring.datasource.url=jdbc:mysql://${ip}:3306/escheduler?characterEncoding=UTF-8
  404. spring.datasource.username=${username}
  405. spring.datasource.password=${password}
  406. # supplement configuration
  407. spring.datasource.initialSize=5
  408. # min connection number
  409. spring.datasource.minIdle=5
  410. # max connection number
  411. spring.datasource.maxActive=20
  412. # max wait time for get connection
  413. spring.datasource.maxWait=60000
  414. # idle connections closed&#xFF0C;unit milliseconds
  415. spring.datasource.timeBetweenEvictionRunsMillis=60000
  416. # connection minimum survival time&#xFF0C;unit milliseconds
  417. spring.datasource.minEvictableIdleTimeMillis=300000
  418. spring.datasource.validationQuery=SELECT 1
  419. spring.datasource.validationQueryTimeout=3
  420. spring.datasource.testWhileIdle=true
  421. spring.datasource.testOnBorrow=true
  422. spring.datasource.testOnReturn=false
  423. spring.datasource.defaultAutoCommit=true
  424. # open PSCache&#xFF0C;set PSCache size
  425. spring.datasource.poolPreparedStatements=false
  426. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
  427. </code></pre><p>&#x65E5;&#x5FD7;&#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  428. <ul>
  429. <li>alert_logback.xml</li>
  430. </ul>
  431. <pre><code>&lt;!-- Logback configuration. See http://logback.qos.ch/manual/index.html --&gt;
  432. &lt;configuration scan=&quot;true&quot; scanPeriod=&quot;120 seconds&quot;&gt; &lt;!--debug=&quot;true&quot; --&gt;
  433. &lt;property name=&quot;log.base&quot; value=&quot;logs&quot; /&gt;
  434. &lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
  435. &lt;encoder&gt;
  436. &lt;pattern&gt;
  437. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  438. &lt;/pattern&gt;
  439. &lt;charset&gt;UTF-8&lt;/charset&gt;
  440. &lt;/encoder&gt;
  441. &lt;/appender&gt;
  442. &lt;appender name=&quot;ALERTLOGFILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
  443. &lt;file&gt;${log.base}/escheduler-alert.log&lt;/file&gt;
  444. &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy&quot;&gt;
  445. &lt;fileNamePattern&gt;${log.base}/escheduler-alert.%d{yyyy-MM-dd_HH}.%i.log&lt;/fileNamePattern&gt;
  446. &lt;maxHistory&gt;20&lt;/maxHistory&gt;
  447. &lt;maxFileSize&gt;64MB&lt;/maxFileSize&gt;
  448. &lt;/rollingPolicy&gt;
  449. &lt;encoder&gt;
  450. &lt;pattern&gt;
  451. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  452. &lt;/pattern&gt;
  453. &lt;charset&gt;UTF-8&lt;/charset&gt;
  454. &lt;/encoder&gt;
  455. &lt;/appender&gt;
  456. &lt;root level=&quot;INFO&quot;&gt;
  457. &lt;appender-ref ref=&quot;ALERTLOGFILE&quot;/&gt;
  458. &lt;/root&gt;
  459. &lt;/configuration&gt;
  460. </code></pre><h3 id="escheduler-common">escheduler-common</h3>
  461. <p>&#x901A;&#x7528;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x914D;&#x7F6E;&#xFF0C;&#x961F;&#x5217;&#x9009;&#x62E9;&#x53CA;&#x5730;&#x5740;&#x914D;&#x7F6E;&#xFF0C;&#x901A;&#x7528;&#x6587;&#x4EF6;&#x76EE;&#x5F55;&#x914D;&#x7F6E;&#x3002;</p>
  462. <ul>
  463. <li>common/common.properties</li>
  464. </ul>
  465. <pre><code>#task queue implementation, can choose &quot;redis&quot; or &quot;zookeeper&quot;, default &quot;zookeeper&quot;
  466. escheduler.queue.impl=zookeeper
  467. #if escheduler.queue.impl=redis, you need to configuration relevant information with redis. redis configuration start
  468. spring.redis.host=${redis_ip}
  469. spring.redis.port=6379
  470. spring.redis.maxIdle=1000
  471. spring.redis.maxTotal=10000
  472. #redis configuration end
  473. # user data directory path, self configuration, please make sure the directory exists and have read write permissions
  474. data.basedir.path=/xxx/xxx
  475. # directory path for user data download. self configuration, please make sure the directory exists and have read write permissions
  476. data.download.basedir.path=/xxx/xxx
  477. # process execute directory. self configuration, please make sure the directory exists and have read write permissions
  478. process.exec.basepath=/xxx/xxx
  479. # data base dir, resource file will store to this hadoop hdfs path, self configuration, please make sure the directory exists on hdfs and have read write permissions&#x3002;&quot;/escheduler&quot; is recommended
  480. data.store2hdfs.basepath=/escheduler
  481. # system env path. self configuration, please make sure the directory and file exists and have read write execute permissions
  482. escheduler.env.path=/xxx/xxx/.escheduler_env.sh
  483. escheduler.env.py=/xxx/xxx/escheduler_env.py
  484. #resource.view.suffixs
  485. resource.view.suffixs=txt,log,sh,conf,cfg,py,java,sql,hql,xml
  486. # is development state? default &quot;false&quot;
  487. development.state=false
  488. </code></pre><p>SHELL&#x4EFB;&#x52A1; &#x73AF;&#x5883;&#x53D8;&#x91CF;&#x914D;&#x7F6E;</p>
  489. <p>.escheduler_env.sh </p>
  490. <pre><code>#self configuration, please make sure the directory exists and have read write permissions
  491. export HADOOP_HOME=/opt/soft/hadoop
  492. export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
  493. export SPARK_HOME1=/opt/soft/spark1
  494. export SPARK_HOME2=/opt/soft/spark2
  495. export PYTHON_HOME=/opt/soft/python
  496. export JAVA_HOME=/opt/soft/java
  497. export HIVE_HOME=/opt/soft/hive
  498. export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
  499. </code></pre><p>&#x200B; </p>
  500. <p>Python&#x4EFB;&#x52A1; &#x73AF;&#x5883;&#x53D8;&#x91CF;&#x914D;&#x7F6E;</p>
  501. <p>escheduler_env.py</p>
  502. <pre><code>#self configuration, please make sure the directory exists and have read write execute permissions
  503. import os
  504. HADOOP_HOME=&quot;/opt/soft/hadoop&quot;
  505. PYTHON_HOME=&quot;/opt/soft/python&quot;
  506. JAVA_HOME=&quot;/opt/soft/java&quot;
  507. PATH=os.environ[&apos;PATH&apos;]
  508. PATH=&quot;%s/bin:%s/bin:%s/bin:%s&quot;%(HADOOP_HOME,JAVA_HOME,PYTHON_HOME,PATH)
  509. os.putenv(&apos;PATH&apos;,&apos;%s&apos;%PATH)
  510. </code></pre><p>hadoop &#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  511. <ul>
  512. <li>common/hadoop/hadoop.properties</li>
  513. </ul>
  514. <pre><code>#please replace the content in ${xxx}
  515. # ha or single namenode
  516. fs.defaultFS=hdfs://${cluster_ipOrName}:8020
  517. #resourcemanager ha note this need ips , eg. 192.168.220.188,192.168.220.189
  518. yarn.resourcemanager.ha.rm.ids=${ip1},${ip2}
  519. # reousrcemanager path
  520. yarn.application.status.address=http://${ip1}:8088/ws/v1/cluster/apps/%s
  521. </code></pre><p>&#x5B9A;&#x65F6;&#x5668;&#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  522. <ul>
  523. <li>quartz.properties</li>
  524. </ul>
  525. <pre><code>#please replace the content in ${xxx}
  526. #============================================================================
  527. # Configure Main Scheduler Properties
  528. #============================================================================
  529. org.quartz.scheduler.instanceName = EasyScheduler
  530. org.quartz.scheduler.instanceId = AUTO
  531. org.quartz.scheduler.makeSchedulerThreadDaemon = true
  532. org.quartz.jobStore.useProperties = false
  533. #============================================================================
  534. # Configure ThreadPool
  535. #============================================================================
  536. org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
  537. org.quartz.threadPool.makeThreadsDaemons = true
  538. org.quartz.threadPool.threadCount = 25
  539. org.quartz.threadPool.threadPriority = 5
  540. #============================================================================
  541. # Configure JobStore
  542. #============================================================================
  543. org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
  544. org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
  545. org.quartz.jobStore.tablePrefix = QRTZ_
  546. org.quartz.jobStore.isClustered = true
  547. org.quartz.jobStore.misfireThreshold = 60000
  548. org.quartz.jobStore.clusterCheckinInterval = 5000
  549. org.quartz.jobStore.dataSource = myDs
  550. #============================================================================
  551. # Configure Datasources
  552. #============================================================================
  553. org.quartz.dataSource.myDs.driver = com.mysql.jdbc.Driver
  554. org.quartz.dataSource.myDs.URL = jdbc:mysql://${ip}:3306/escheduler?characterEncoding=utf8&amp;useSSL=false
  555. org.quartz.dataSource.myDs.user = ${username}
  556. org.quartz.dataSource.myDs.password = ${password}
  557. org.quartz.dataSource.myDs.maxConnections = 10
  558. org.quartz.dataSource.myDs.validationQuery = select 1
  559. </code></pre><p>zookeeper &#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  560. <ul>
  561. <li>zookeeper.properties</li>
  562. </ul>
  563. <pre><code>#zookeeper cluster. eg. 192.168.220.188:2181,192.168.220.189:2181,192.168.220.190:2181
  564. zookeeper.quorum=${ip1}:2181,${ip2}:2181,${ip3}:2181
  565. #zookeeper server dirctory
  566. zookeeper.escheduler.master=/escheduler/masters
  567. zookeeper.escheduler.worker=/escheduler/workers
  568. #zookeeper lock dirctory
  569. zookeeper.escheduler.lock.master=/escheduler/lock/master
  570. zookeeper.escheduler.lock.worker=/escheduler/lock/worker
  571. #escheduler root directory
  572. zookeeper.escheduler.root=/escheduler
  573. #escheduler failover directory
  574. zookeeper.escheduler.lock.master.failover=/escheduler/lock/failover/master
  575. zookeeper.escheduler.lock.worker.failover=/escheduler/lock/failover/worker
  576. #escheduler failover directory
  577. zookeeper.session.timeout=300
  578. zookeeper.connection.timeout=300
  579. zookeeper.retry.sleep=1000
  580. zookeeper.retry.maxtime=5
  581. </code></pre><h3 id="escheduler-dao">escheduler-dao</h3>
  582. <p>dao&#x6570;&#x636E;&#x6E90;&#x914D;&#x7F6E;</p>
  583. <ul>
  584. <li>dao/data_source.properties</li>
  585. </ul>
  586. <pre><code>#please replace the content in ${xxx}
  587. # base spring data source configuration
  588. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  589. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  590. spring.datasource.url=jdbc:mysql://${ip}:3306/escheduler?characterEncoding=UTF-8
  591. spring.datasource.username=${username}
  592. spring.datasource.password=${password}
  593. # connection configuration
  594. spring.datasource.initialSize=5
  595. spring.datasource.minIdle=5
  596. spring.datasource.maxActive=20
  597. # max seconds wait connection timeout
  598. spring.datasource.maxWait=60000
  599. # milliseconds for check to close free connections
  600. spring.datasource.timeBetweenEvictionRunsMillis=60000
  601. # connection minimum survival time(milliseconds)
  602. spring.datasource.minEvictableIdleTimeMillis=300000
  603. spring.datasource.validationQuery=SELECT 1
  604. spring.datasource.validationQueryTimeout=3
  605. spring.datasource.testWhileIdle=true
  606. spring.datasource.testOnBorrow=true
  607. spring.datasource.testOnReturn=false
  608. spring.datasource.defaultAutoCommit=true
  609. # open PSCache, specify count PSCache for every connection
  610. spring.datasource.poolPreparedStatements=true
  611. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
  612. # data quality analysis is not currently in use. please ignore the following configuration
  613. # task record flag
  614. task.record.flag=false
  615. task.record.datasource.url=jdbc:mysql://${ip}:3306/etl?characterEncoding=UTF-8
  616. task.record.datasource.username=etl
  617. task.record.datasource.password=xxxxx
  618. </code></pre><h3 id="escheduler-server">escheduler-server</h3>
  619. <p>master&#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  620. <ul>
  621. <li>master.properties</li>
  622. </ul>
  623. <pre><code># master execute thread num
  624. master.exec.threads=100
  625. # master execute task number in parallel
  626. master.exec.task.number=20
  627. # master heartbeat interval
  628. master.heartbeat.interval=8
  629. # master commit task retry times
  630. master.task.commit.retryTimes=5
  631. # master commit task interval
  632. master.task.commit.interval=100
  633. # only less than cpu avg load, master server can work. default value : the number of cpu cores * 2
  634. master.max.cpuload.avg=10
  635. # only larger than reserved memory, master server can work. default value : physical memory * 1/10, unit is G.
  636. master.reserved.memory=1
  637. </code></pre><p>master&#x65E5;&#x5FD7;&#x6587;&#x4EF6;</p>
  638. <p><strong>&#x6CE8;&#x610F;&#xFF1A;</strong>&#x5BF9;MASTERLOGFILE&#xFF0C;&#x81EA;&#x5B9A;&#x4E49;&#x4E86;MasterLogFilter</p>
  639. <ul>
  640. <li>master_logback.xml</li>
  641. </ul>
  642. <pre><code>&lt;!-- Logback configuration. See http://logback.qos.ch/manual/index.html --&gt;
  643. &lt;configuration scan=&quot;true&quot; scanPeriod=&quot;120 seconds&quot;&gt; &lt;!--debug=&quot;true&quot; --&gt;
  644. &lt;property name=&quot;log.base&quot; value=&quot;logs&quot; /&gt;
  645. &lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
  646. &lt;encoder&gt;
  647. &lt;pattern&gt;
  648. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  649. &lt;/pattern&gt;
  650. &lt;charset&gt;UTF-8&lt;/charset&gt;
  651. &lt;/encoder&gt;
  652. &lt;/appender&gt;
  653. &lt;appender name=&quot;MASTERLOGFILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
  654. &lt;file&gt;${log.base}/escheduler-master.log&lt;/file&gt;
  655. &lt;filter class=&quot;cn.escheduler.server.master.log.MasterLogFilter&quot;&gt;
  656. &lt;level&gt;INFO&lt;/level&gt;
  657. &lt;/filter&gt;
  658. &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy&quot;&gt;
  659. &lt;fileNamePattern&gt;${log.base}/escheduler-master.%d{yyyy-MM-dd_HH}.%i.log&lt;/fileNamePattern&gt;
  660. &lt;maxHistory&gt;20&lt;/maxHistory&gt;
  661. &lt;maxFileSize&gt;200MB&lt;/maxFileSize&gt;
  662. &lt;/rollingPolicy&gt;
  663. &lt;encoder&gt;
  664. &lt;pattern&gt;
  665. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  666. &lt;/pattern&gt;
  667. &lt;charset&gt;UTF-8&lt;/charset&gt;
  668. &lt;/encoder&gt;
  669. &lt;/appender&gt;
  670. &lt;root level=&quot;INFO&quot;&gt;
  671. &lt;appender-ref ref=&quot;MASTERLOGFILE&quot;/&gt;
  672. &lt;/root&gt;
  673. &lt;/configuration&gt;
  674. </code></pre><p>worker&#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  675. <ul>
  676. <li>worker.properties</li>
  677. </ul>
  678. <pre><code># worker execute thread num
  679. worker.exec.threads=100
  680. # worker heartbeat interval
  681. worker.heartbeat.interval=8
  682. # submit the number of tasks at a time
  683. worker.fetch.task.num = 10
  684. # only less than cpu avg load, worker server can work. default value : the number of cpu cores * 2
  685. worker.max.cpuload.avg=10
  686. # only larger than reserved memory, worker server can work. default value : physical memory * 1/6, unit is G.
  687. worker.reserved.memory=1
  688. </code></pre><p>worker&#x65E5;&#x5FD7;&#x6587;&#x4EF6;</p>
  689. <p><strong>&#x6CE8;&#x610F;&#xFF1A;</strong>&#x5BF9;WORKERLOGFILE&#xFF0C;&#x81EA;&#x5B9A;&#x4E49;&#x4E86;WorkerLogFilter</p>
  690. <p>&#x5BF9;&#x4E8E; TASKLOGFILE &#xFF0C; &#x81EA;&#x5B9A;&#x4E49;&#x4E86;TaskLogAppender&#x548C;TaskLogFilter</p>
  691. <ul>
  692. <li>worker_logback.xml</li>
  693. </ul>
  694. <pre><code>&lt;!-- Logback configuration. See http://logback.qos.ch/manual/index.html --&gt;
  695. &lt;configuration scan=&quot;true&quot; scanPeriod=&quot;120 seconds&quot;&gt;
  696. &lt;property name=&quot;log.base&quot; value=&quot;logs&quot;/&gt;
  697. &lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
  698. &lt;encoder&gt;
  699. &lt;pattern&gt;
  700. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  701. &lt;/pattern&gt;
  702. &lt;charset&gt;UTF-8&lt;/charset&gt;
  703. &lt;/encoder&gt;
  704. &lt;/appender&gt;
  705. &lt;appender name=&quot;TASKLOGFILE&quot; class=&quot;cn.escheduler.server.worker.log.TaskLogAppender&quot;&gt;
  706. &lt;filter class=&quot;ch.qos.logback.classic.filter.ThresholdFilter&quot;&gt;
  707. &lt;level&gt;INFO&lt;/level&gt;
  708. &lt;/filter&gt;
  709. &lt;filter class=&quot;cn.escheduler.server.worker.log.TaskLogFilter&quot;&gt;&lt;/filter&gt;
  710. &lt;file&gt;${log.base}/{processDefinitionId}/{processInstanceId}/{taskInstanceId}.log&lt;/file&gt;
  711. &lt;encoder&gt;
  712. &lt;pattern&gt;
  713. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  714. &lt;/pattern&gt;
  715. &lt;charset&gt;UTF-8&lt;/charset&gt;
  716. &lt;/encoder&gt;
  717. &lt;append&gt;true&lt;/append&gt;
  718. &lt;/appender&gt;
  719. &lt;appender name=&quot;WORKERLOGFILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
  720. &lt;file&gt;${log.base}/escheduler-worker.log&lt;/file&gt;
  721. &lt;filter class=&quot;cn.escheduler.server.worker.log.WorkerLogFilter&quot;&gt;
  722. &lt;level&gt;INFO&lt;/level&gt;
  723. &lt;/filter&gt;
  724. &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy&quot;&gt;
  725. &lt;fileNamePattern&gt;${log.base}/escheduler-worker.%d{yyyy-MM-dd_HH}.%i.log&lt;/fileNamePattern&gt;
  726. &lt;maxHistory&gt;20&lt;/maxHistory&gt;
  727. &lt;maxFileSize&gt;200MB&lt;/maxFileSize&gt;
  728. &lt;/rollingPolicy&gt;
  729. &#x3000;&#x3000;&#x3000;&#x3000;&#x3000;
  730. &lt;encoder&gt;
  731. &lt;pattern&gt;
  732. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  733. &lt;/pattern&gt;
  734. &lt;charset&gt;UTF-8&lt;/charset&gt;
  735. &lt;/encoder&gt;
  736. &#x3000;&#x3000;
  737. &lt;/appender&gt;
  738. &lt;root level=&quot;INFO&quot;&gt;
  739. &lt;appender-ref ref=&quot;TASKLOGFILE&quot;/&gt;
  740. &lt;appender-ref ref=&quot;WORKERLOGFILE&quot;/&gt;
  741. &lt;/root&gt;
  742. &lt;/configuration&gt;
  743. </code></pre><h3 id="escheduler-web">escheduler-web</h3>
  744. <p>web&#x914D;&#x7F6E;&#x6587;&#x4EF6;</p>
  745. <ul>
  746. <li>application.properties</li>
  747. </ul>
  748. <pre><code># server port
  749. server.port=12345
  750. # session config
  751. server.session.timeout=7200
  752. server.context-path=/escheduler/
  753. # file size limit for upload
  754. spring.http.multipart.max-file-size=1024MB
  755. spring.http.multipart.max-request-size=1024MB
  756. #post content
  757. server.max-http-post-size=5000000
  758. </code></pre><p>web&#x65E5;&#x5FD7;&#x6587;&#x4EF6;</p>
  759. <ul>
  760. <li>webserver_logback.xml</li>
  761. </ul>
  762. <pre><code> &lt;!-- Logback configuration. See http://logback.qos.ch/manual/index.html --&gt;
  763. &lt;configuration scan=&quot;true&quot; scanPeriod=&quot;120 seconds&quot;&gt;
  764. &lt;logger name=&quot;org.apache.zookeeper&quot; level=&quot;WARN&quot;/&gt;
  765. &lt;logger name=&quot;org.apache.hbase&quot; level=&quot;WARN&quot;/&gt;
  766. &lt;logger name=&quot;org.apache.hadoop&quot; level=&quot;WARN&quot;/&gt;
  767. &lt;property name=&quot;log.base&quot; value=&quot;logs&quot; /&gt;
  768. &lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
  769. &lt;encoder&gt;
  770. &lt;pattern&gt;
  771. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  772. &lt;/pattern&gt;
  773. &lt;charset&gt;UTF-8&lt;/charset&gt;
  774. &lt;/encoder&gt;
  775. &lt;/appender&gt;
  776. &lt;appender name=&quot;WEBSERVERLOGFILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
  777. &lt;!-- Log level filter --&gt;
  778. &lt;filter class=&quot;ch.qos.logback.classic.filter.ThresholdFilter&quot;&gt;
  779. &lt;level&gt;INFO&lt;/level&gt;
  780. &lt;/filter&gt;
  781. &lt;file&gt;${log.base}/escheduler-web-server.log&lt;/file&gt;
  782. &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy&quot;&gt;
  783. &lt;fileNamePattern&gt;${log.base}/escheduler-web-server.%d{yyyy-MM-dd_HH}.%i.log&lt;/fileNamePattern&gt;
  784. &lt;maxHistory&gt;20&lt;/maxHistory&gt;
  785. &lt;maxFileSize&gt;64MB&lt;/maxFileSize&gt;
  786. &lt;/rollingPolicy&gt;
  787. &lt;encoder&gt;
  788. &lt;pattern&gt;
  789. [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
  790. &lt;/pattern&gt;
  791. &lt;charset&gt;UTF-8&lt;/charset&gt;
  792. &lt;/encoder&gt;
  793. &lt;/appender&gt;
  794. &lt;root level=&quot;INFO&quot;&gt;
  795. &lt;appender-ref ref=&quot;WEBSERVERLOGFILE&quot; /&gt;
  796. &lt;/root&gt;
  797. &lt;/configuration&gt;
  798. </code></pre><h2 id="&#x542F;&#x52A8;&#x505C;&#x6B62;&#x547D;&#x4EE4;">&#x542F;&#x52A8;&#x505C;&#x6B62;&#x547D;&#x4EE4;</h2>
  799. <ul>
  800. <li>&#x542F;&#x505C;Master</li>
  801. </ul>
  802. <pre><code>sh ./bin/arklifter-daemon.sh start master-server
  803. sh ./bin/arklifter-daemon.sh stop master-server
  804. </code></pre><ul>
  805. <li>&#x542F;&#x505C;Worker</li>
  806. </ul>
  807. <pre><code>sh ./bin/arklifter-daemon.sh start worker-server
  808. sh ./bin/arklifter-daemon.sh stop worker-server
  809. </code></pre><ul>
  810. <li>&#x542F;&#x505C;Web</li>
  811. </ul>
  812. <pre><code>sh ./bin/arklifter-daemon.sh start web-server
  813. sh ./bin/arklifter-daemon.sh stop web-server
  814. </code></pre><ul>
  815. <li>&#x542F;&#x505C;Logger<pre><code>sh ./bin/arklifter-daemon.sh start logger-server
  816. sh ./bin/arklifter-daemon.sh stop logger-server
  817. </code></pre></li>
  818. <li>&#x542F;&#x505C;Alert<pre><code>sh ./bin/arklifter-daemon.sh start alert-server
  819. sh ./bin/arklifter-daemon.sh stop alert-server
  820. </code></pre></li>
  821. </ul>
  822. <h2 id="&#x4E00;&#x952E;&#x542F;&#x505C;&#x811A;&#x672C;">&#x4E00;&#x952E;&#x542F;&#x505C;&#x811A;&#x672C;</h2>
  823. <ul>
  824. <li><p>&#x90E8;&#x7F72;&#x7528;&#x6237;&#x914D;&#x7F6E;</p>
  825. <ol>
  826. <li><p>&#x521B;&#x5EFA;&#x90E8;&#x7F72;&#x7528;&#x6237;</p>
  827. <p>target/escheduler-{version}-SNAPSHOT/script/init_deploy_user.sh</p>
  828. </li>
  829. <li><p>&#x914D;&#x7F6E;</p>
  830. <p>&#x56E0;&#x4E3A;escheduler worker &#x90FD;&#x662F;&#x4EE5; sudo -u {linux-user} &#x65B9;&#x5F0F;&#x6765;&#x6267;&#x884C;&#x4F5C;&#x4E1A;&#xFF0C;&#x6240;&#x4EE5;&#x90E8;&#x7F72;&#x7528;&#x6237;&#x9700;&#x8981;&#x6709; sudo &#x6743;&#x9650;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x514D;&#x5BC6;&#x7684;</p>
  831. </li>
  832. </ol>
  833. </li>
  834. </ul>
  835. <pre><code> vi /etc/sudoers
  836. # &#x90E8;&#x7F72;&#x7528;&#x6237;&#x662F; escheduler &#x8D26;&#x53F7;
  837. escheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL
  838. # &#x5E76;&#x4E14;&#x9700;&#x8981;&#x6CE8;&#x91CA;&#x6389; Default requiretty &#x4E00;&#x884C;
  839. #Default requiretty
  840. </code></pre><ul>
  841. <li>&#x521D;&#x59CB;&#x5316; hdfs</li>
  842. </ul>
  843. <p>&#x200B; target/escheduler-{version}-SNAPSHOT/script/init_hdfs.sh</p>
  844. <ul>
  845. <li>&#x5B89;&#x88C5;&#x914D;&#x7F6E;&#x6587;&#x4EF6; install_config</li>
  846. </ul>
  847. <pre><code> # &#x9879;&#x76EE;&#x6240;&#x5728;&#x76EE;&#x5F55;
  848. BASE_PATH=/opt/soft/program
  849. # &#x90E8;&#x7F72;&#x7684;&#x673A;&#x5668;
  850. IPS=ark0,ark1,ark2,ark3,ark4
  851. </code></pre><ul>
  852. <li><p>&#x8FD0;&#x884C;&#x914D;&#x7F6E;&#x6587;&#x4EF6; run_config</p>
  853. <pre><code> # master&#x670D;&#x52A1;&#x6240;&#x5728;&#x673A;&#x5668;,&gt;=1&#x4E2A;
  854. MASTERS=ark0,ark1
  855. # worker&#x670D;&#x52A1;&#x6240;&#x5728;&#x673A;&#x5668;,&gt;=1&#x4E2A;
  856. WORKERS=ark2,ark3,ark4
  857. # alert&#x670D;&#x52A1;&#x6240;&#x5728;&#x673A;&#x5668;,1&#x4E2A;
  858. ALERTS=ark3
  859. # web&#x670D;&#x52A1;&#x6240;&#x5728;&#x673A;&#x5668;,1&#x4E2A;
  860. WEBSERVER=ark1
  861. </code></pre></li>
  862. <li><p>&#x521D;&#x59CB;&#x5316;&#x5B89;&#x88C5;&#x76EE;&#x5F55;</p>
  863. <p> target/escheduler-{version}-SNAPSHOT/script/init_install_path.sh</p>
  864. </li>
  865. <li><p>&#x5C06; target/escheduler-{version}-SNAPSHOT &#x4E0B;&#x914D;&#x7F6E;&#x597D;&#x7684;conf&#x6587;&#x4EF6;&#x5939;&#x548C;&#x7F16;&#x8BD1;&#x597D;&#x7684;escheduler-{version}-SNAPSHOT.tar.gz &#x590D;&#x5236;&#x5230; <strong>&#x4E3B;&#x673A;&#x5668;</strong>&#x7684; BASE_PATH &#x76EE;&#x5F55;&#x4E0B; </p>
  866. <p> &#x8BF4;&#x660E;&#xFF1A;<strong>&#x4E3B;&#x673A;&#x5668;</strong>&#x9700;&#x8981;&#x80FD;&#x514D;&#x5BC6;ssh&#x767B;&#x5F55;&#x5230;&#x5176;&#x5B83;&#x673A;&#x5668;&#x4E0A;</p>
  867. </li>
  868. <li><p>&#x542F;&#x52A8;&#x6240;&#x6709;&#x670D;&#x52A1;</p>
  869. </li>
  870. </ul>
  871. <pre><code class="lang-&#x542F;&#x52A8;&#x6240;&#x6709;&#x670D;&#x52A1;">sh ./deploy/start_all.sh
  872. </code></pre>
  873. <ul>
  874. <li>&#x5173;&#x95ED;&#x6240;&#x6709;&#x670D;&#x52A1;</li>
  875. </ul>
  876. <pre><code class="lang-&#x5173;&#x95ED;&#x6240;&#x6709;&#x670D;&#x52A1;">sh ./deploy/stop_all.sh
  877. </code></pre>
  878. <h2 id="&#x76D1;&#x63A7;&#x670D;&#x52A1;">&#x76D1;&#x63A7;&#x670D;&#x52A1;</h2>
  879. <p>monitor_server.py &#x811A;&#x672C;&#x662F;&#x76D1;&#x542C;&#xFF0C;master&#x548C;worker&#x670D;&#x52A1;&#x6302;&#x6389;&#x91CD;&#x542F;&#x7684;&#x811A;&#x672C;</p>
  880. <p>&#x6CE8;&#x610F;&#xFF1A;&#x5728;&#x5168;&#x90E8;&#x670D;&#x52A1;&#x90FD;&#x542F;&#x52A8;&#x4E4B;&#x540E;&#x542F;&#x52A8;</p>
  881. <p>nohup python -u monitor_server.py &gt; nohup.out 2&gt;&amp;1 &amp;</p>
  882. <h2 id="&#x65E5;&#x5FD7;&#x67E5;&#x770B;">&#x65E5;&#x5FD7;&#x67E5;&#x770B;</h2>
  883. <p>&#x65E5;&#x5FD7;&#x7EDF;&#x4E00;&#x5B58;&#x653E;&#x4E8E;&#x6307;&#x5B9A;&#x6587;&#x4EF6;&#x5939;&#x5185;</p>
  884. <pre><code class="lang-&#x65E5;&#x5FD7;&#x8DEF;&#x5F84;"> logs/
  885. &#x251C;&#x2500;&#x2500; escheduler-alert-server.log
  886. &#x251C;&#x2500;&#x2500; escheduler-master-server.log
  887. |&#x2014;&#x2014; escheduler-worker-server.log
  888. |&#x2014;&#x2014; escheduler-web-server.log
  889. |&#x2014;&#x2014; escheduler-logger-server.log
  890. </code></pre>
  891. </section>
  892. </div>
  893. <div class="search-results">
  894. <div class="has-results">
  895. <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
  896. <ul class="search-results-list"></ul>
  897. </div>
  898. <div class="no-results">
  899. <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
  900. </div>
  901. </div>
  902. </div>
  903. </div>
  904. </div>
  905. </div>
  906. <a href="deploy-foreground.html#问题" class="navigation navigation-prev " aria-label="Previous page: 问题">
  907. <i class="fa fa-angle-left"></i>
  908. </a>
  909. <a href="deploy-background.html#基础软件安装" class="navigation navigation-next " aria-label="Next page: 基础软件安装">
  910. <i class="fa fa-angle-right"></i>
  911. </a>
  912. </div>
  913. <script>
  914. var gitbook = gitbook || [];
  915. gitbook.push(function() {
  916. gitbook.page.hasChanged({"page":{"title":"后端部署","level":"1.3.2","depth":2,"next":{"title":"基础软件安装","level":"1.3.2.1","depth":3,"anchor":"#基础软件安装","path":"pages/deploy-background.md","ref":"pages/deploy-background.md#基础软件安装","articles":[]},"previous":{"title":"问题","level":"1.3.1.5","depth":3,"anchor":"#问题","path":"pages/deploy-foreground.md","ref":"pages/deploy-foreground.md#问题","articles":[]},"dir":"ltr"},"config":{"plugins":["expandable-chapters","insert-logo-link","livereload"],"styles":{"website":"./styles/website.css"},"pluginsConfig":{"livereload":{},"insert-logo-link":{"src":"../images/logo.png","url":"/"},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"expandable-chapters":{}},"theme":"default","author":"YIGUAN","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"调度系统-EasyScheduler","language":"zh-hans","gitbook":"3.2.3","description":"调度系统"},"file":{"path":"pages/deploy-background.md","mtime":"2019-03-07T08:53:26.537Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-03-07T08:58:54.922Z"},"basePath":"..","book":{"language":""}});
  917. });
  918. </script>
  919. </div>
  920. <script src="../gitbook/gitbook.js"></script>
  921. <script src="../gitbook/theme.js"></script>
  922. <script src="../gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.js"></script>
  923. <script src="../gitbook/gitbook-plugin-insert-logo-link/plugin.js"></script>
  924. <script src="../gitbook/gitbook-plugin-livereload/plugin.js"></script>
  925. <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
  926. <script src="../gitbook/gitbook-plugin-search/search.js"></script>
  927. <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
  928. <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
  929. <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
  930. <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
  931. </body>
  932. </html>