BuildFromSource.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
  4. <book>
  5. <bookinfo>
  6. <title>Building from source</title>
  7. <mediaobject>
  8. <imageobject>
  9. <imagedata fileref="images/redswooshWithLogo3.jpg" />
  10. </imageobject>
  11. </mediaobject>
  12. <author>
  13. <surname>Boca Raton Documentation Team</surname>
  14. </author>
  15. <legalnotice>
  16. <para>We welcome your comments and feedback about this document via
  17. email to <email>docfeedback@hpccsystems.com</email> Please include
  18. <emphasis role="bold">Documentation Feedback</emphasis> in the subject
  19. line and reference the document name, page numbers, and current Version
  20. Number in the text of the message.</para>
  21. <para>LexisNexis and the Knowledge Burst logo are registered trademarks
  22. of Reed Elsevier Properties Inc., used under license. Other products,
  23. logos, and services may be trademarks or registered trademarks of their
  24. respective companies. All names and example data used in this manual are
  25. fictitious. Any similarity to actual persons, living or dead, is purely
  26. coincidental.</para>
  27. <para></para>
  28. </legalnotice>
  29. <xi:include href="Version.xml" xpointer="FooterInfo"
  30. xmlns:xi="http://www.w3.org/2001/XInclude" />
  31. <xi:include href="Version.xml" xpointer="DateVer"
  32. xmlns:xi="http://www.w3.org/2001/XInclude" />
  33. <corpname>HPCC Systems</corpname>
  34. <xi:include href="Version.xml" xpointer="FooterInfo"
  35. xmlns:xi="http://www.w3.org/2001/XInclude" />
  36. <mediaobject role="logo">
  37. <imageobject>
  38. <imagedata fileref="images/LN_Rightjustified.jpg" />
  39. </imageobject>
  40. </mediaobject>
  41. </bookinfo>
  42. <chapter id="Buildin-HPCC-from-Source">
  43. <title>Building HPCC from source</title>
  44. <sect1>
  45. <title id="Introduction">Introduction</title>
  46. <para>The LexisNexis HPCC technology is designed to effectively process,
  47. analyze, and find links and associations within high volumes of complex
  48. data. The LexisNexis HPCC technology can detect non-obvious
  49. relationships, scale to support petabytes of data, and is significantly
  50. faster than competing technologies while requiring less hardware and
  51. resources.</para>
  52. <para>This translates into better quality answers in less time so that
  53. organizations can cope with massive data and turn information into
  54. knowledge.</para>
  55. <para>This document will show you how to obtain and build an HPCC system
  56. using the open source model.</para>
  57. <para>OUTLINE DRAFT: </para>
  58. <para>Description: </para>
  59. <para>------------ </para>
  60. <para>This file is the top level handling for cmake based compilation
  61. and build process. </para>
  62. <para>To build for Linux: </para>
  63. <para>1. Check out sources (for example, to directory ~/hpcc) </para>
  64. <para>2. Create a build directory - either as a child of hpcc or
  65. elsewhere </para>
  66. <para>3. cd to the build directory </para>
  67. <para>4a.To create makefiles to build native release version for local
  68. machine, run cmake ~/hpcc </para>
  69. <para>4b.To create makefiles to build native debug version, run cmake
  70. -DCMAKE_BUILD_TYPE=Debug ~/hpcc </para>
  71. <para>4c.To create makefiles to build 32-bit version from 64-bit host,
  72. run cmake -DCMAKE_C_FLAGS:STRING="-m32 -march=i386"
  73. -DCMAKE_CXX_FLAGS:STRING="-m32 -march=i386" ~/hpcc </para>
  74. <para>5. To build the makefiles just created above, run make </para>
  75. <para>6. Executables will be created in ./&lt;releasemode&gt;/bin and
  76. ./&lt;releasemode&gt;/libs </para>
  77. <para></para>
  78. <para>To build for Windows: </para>
  79. <para>1. Check out sources (for example, to directory c:\hpcc) </para>
  80. <para>2. Create a build directory - either as a child of hpcc or
  81. elsewhere </para>
  82. <para>3. cd to the build directory </para>
  83. <para>4. To create a Visual Studio project, run cmake c:\hpcc -G "Visual
  84. Studio 9 2008" The sln file hpccsystems-platform.sln will be created in
  85. the current directory, and will support debug and release targets
  86. </para>
  87. <para>5. To build the project, load the solution into the visual studio
  88. IDE and build in the usual way. 6. Executables will be created in (for
  89. example) c:\hpcc\bin\&lt;release_mode&gt; </para>
  90. <para></para>
  91. </sect1>
  92. </chapter>
  93. <chapter id="Hardware-and-Software-Requirements">
  94. <title>Hardware and Software Requirements</title>
  95. <para>The following section describes the various hardware and software
  96. required in order to run the HPCC.</para>
  97. <sect1 id="Switch">
  98. <title>Switch</title>
  99. <para>A significant component of HPCC is the infrastructure it runs on,
  100. specifically the switch.</para>
  101. <sect2 id="Switch-Requirements">
  102. <title>Switch requirements</title>
  103. <itemizedlist mark="square">
  104. <listitem>
  105. <para>Sufficient number of ports to allow all nodes to be
  106. connected directly to it;</para>
  107. </listitem>
  108. <listitem>
  109. <para>IGMP v.2 support</para>
  110. </listitem>
  111. <listitem>
  112. <para>IGMP snooping support</para>
  113. </listitem>
  114. </itemizedlist>
  115. </sect2>
  116. <sect2 id="Switch-additional-recommend">
  117. <title>Switch additional recommended features</title>
  118. <para><itemizedlist mark="square">
  119. <listitem>
  120. <para>Non-blocking backplane</para>
  121. </listitem>
  122. <listitem>
  123. <para>Low latency (under 35usec)</para>
  124. </listitem>
  125. <listitem>
  126. <para>Layer 3 switching</para>
  127. </listitem>
  128. <listitem>
  129. <para>Managed and monitored (SNMP is a plus)</para>
  130. </listitem>
  131. <listitem>
  132. <para>Port channel (port bundling) support</para>
  133. </listitem>
  134. </itemizedlist></para>
  135. </sect2>
  136. </sect1>
  137. <sect1 id="Nodes-Hardware">
  138. <title>Nodes-Hardware</title>
  139. <para>The HPCC can run as a single node system or a multi node
  140. system.</para>
  141. <sect2 id="Node-Mandatory-requirements">
  142. <title>Node mandatory requirements</title>
  143. <itemizedlist mark="square">
  144. <listitem>
  145. <para>Pentium 4 or newer CPU</para>
  146. </listitem>
  147. <listitem>
  148. <para>64 bit</para>
  149. </listitem>
  150. <listitem>
  151. <para>4GB RAM</para>
  152. </listitem>
  153. <listitem>
  154. <para>one or two Hard Drives</para>
  155. </listitem>
  156. <listitem>
  157. <para>1 GigE network interface</para>
  158. </listitem>
  159. </itemizedlist>
  160. </sect2>
  161. <sect2 id="Node-recommended-specifications">
  162. <title>Node recommended specifications</title>
  163. <para><itemizedlist mark="square">
  164. <listitem>
  165. <para>Nehalem Core i7 CPU</para>
  166. </listitem>
  167. <listitem>
  168. <para>64 bit</para>
  169. </listitem>
  170. <listitem>
  171. <para>12GB RAM</para>
  172. </listitem>
  173. <listitem>
  174. <para>Two 15K RPM SAS Hard Drives (Roxie)</para>
  175. </listitem>
  176. <listitem>
  177. <para>Two 7200K RPM SATA Hard Drives (Thor)</para>
  178. </listitem>
  179. <listitem>
  180. <para>1 GigE network interface</para>
  181. </listitem>
  182. <listitem>
  183. <para>PXE boot support in BIOS</para>
  184. </listitem>
  185. <listitem>
  186. <para>Optionally 3 or more hard drives can be configured in a
  187. RAID 5 container for increased performance</para>
  188. </listitem>
  189. <listitem>
  190. <para>Optionally IPMI and KVM over IP support</para>
  191. </listitem>
  192. </itemizedlist></para>
  193. </sect2>
  194. </sect1>
  195. <sect1 id="Nodes-Software">
  196. <title>Nodes-Software</title>
  197. <para>We recommend all nodes have identical operating systems and
  198. packages installed. This significantly reduces variables when
  199. troubleshooting.</para>
  200. <sect2 id="Operating-System-Requirements">
  201. <title>Operating System Requirements</title>
  202. <para><itemizedlist mark="square">
  203. <listitem>
  204. <para>64 bit LINUX CentOS 5.4 or later</para>
  205. <para>Or</para>
  206. <para>LINUX Ubuntu 9.10 or later and Debian x.xx</para>
  207. </listitem>
  208. </itemizedlist></para>
  209. </sect2>
  210. <sect2 id="configuration-manager">
  211. <title>Dependencies and packages</title>
  212. <para>Running HPCC depends on having these required component packages
  213. listed below installed on the system. For details of the commands
  214. recommended for obtaining these packages, see Specific OS Software
  215. Installation commands section in appendix of the GettingStarted
  216. document.</para>
  217. <itemizedlist mark="square">
  218. <listitem>
  219. <para>OpenLDAP 2.3.43 (base for CentOS 5.5)</para>
  220. </listitem>
  221. <listitem>
  222. <para>OpenLDAP-devel 2.3.43 (base for CentOS 5.5)</para>
  223. </listitem>
  224. <listitem>
  225. <para>libicu 3.6 (for CentOS 5.5)</para>
  226. <para>libicu-3.6-5.11.4.i386.rpm</para>
  227. </listitem>
  228. <listitem>
  229. <para>libicu-devel 3.6 (for CentOS 5.5)</para>
  230. </listitem>
  231. <listitem>
  232. <para>m4 1.4.5 (for CentOS 5.5)</para>
  233. </listitem>
  234. <listitem>
  235. <para>libtool 1.5.22 (for CentOS 5.5)</para>
  236. </listitem>
  237. <listitem>
  238. <para>binutils-devel 2.17.50.0.6 (for CentOS 5.5)</para>
  239. </listitem>
  240. <listitem>
  241. <para>bison 2.4.1 (source)</para>
  242. </listitem>
  243. <listitem>
  244. <para>flex 2.5.35 (source)</para>
  245. </listitem>
  246. <listitem>
  247. <para>The GNU Compiler Collection (GCC) with G++ support (required
  248. only on the ECL Server node)</para>
  249. </listitem>
  250. <listitem>
  251. <para>boost 1.44 (source)</para>
  252. </listitem>
  253. <listitem>
  254. <para>boost-devel 1.44 (source)</para>
  255. </listitem>
  256. <listitem>
  257. <para>Xalan-c 1.10.0 (rpm - fedora epel repository or via
  258. source)</para>
  259. </listitem>
  260. <listitem>
  261. <para>Xalan-c-devel 1.10.0 (rpm - fedora epel repository or via
  262. source)</para>
  263. </listitem>
  264. <listitem>
  265. <para>Xerces-c 2.7.0 (rpm - fedora epel repository or via
  266. source)</para>
  267. </listitem>
  268. <listitem>
  269. <para>Xerces-c-devel 2.7.0 (rpm - fedora epel repository or via
  270. source)</para>
  271. </listitem>
  272. </itemizedlist>
  273. </sect2>
  274. </sect1>
  275. <sect1 id="workstation-requirements">
  276. <title>Workstation Requirements</title>
  277. <itemizedlist>
  278. <listitem>
  279. <para>Running HPCC requires communicating with the system from your
  280. workstation with a browser</para>
  281. <para>You will need to use one of the supported web browsers with
  282. Javascript enabled.</para>
  283. <itemizedlist>
  284. <listitem>
  285. <para>Internet Explorer 7</para>
  286. </listitem>
  287. <listitem>
  288. <para>Mozilla Firefox 3.5 or later</para>
  289. <!--*** Add additional browsers when approved-->
  290. </listitem>
  291. </itemizedlist>
  292. <para>If browser security is set to <emphasis
  293. role="bold">High</emphasis>, you should add ECLWatch as a Trusted
  294. Site to allow Javascript execution.</para>
  295. </listitem>
  296. <listitem>
  297. <para>HPCC Client Tools (ECL IDE). See the ECLWatch web page to
  298. download the Windows install set.</para>
  299. <graphic fileref="images/GS_DownloadTools.png" />
  300. <para></para>
  301. <para>The Client tools were designed to run on Windows machines. See
  302. the appendix for instructions on running them on Linux workstations
  303. using Wine.</para>
  304. </listitem>
  305. </itemizedlist>
  306. </sect1>
  307. </chapter>
  308. <chapter id="Getting_the_Source">
  309. <title>Getting and Installing the Source</title>
  310. <para>This part of the document will discuss ways to get the source code
  311. and install it.</para>
  312. <sect1>
  313. <title>Sources of Source</title>
  314. <para>The source code can be found on the LexisNexis Portal at ***link
  315. to portal***. Register with the NIM*** site to be able to download the
  316. source package.</para>
  317. <para>The source package is in the form of a source tarfile. (.stgz)
  318. download the file from the site to the machine where you wish to install
  319. the HPCC.</para>
  320. <para></para>
  321. </sect1>
  322. <sect1>
  323. <title>Installing the Source files</title>
  324. <para>Extract the source files into a working directory. You may want to
  325. create a directory for the source files. You would also want to have a
  326. directory for the binaries.</para>
  327. <para>For instance, if we wanted to extract to /users/home/hpcc9 we
  328. could issue the command:</para>
  329. <para><programlisting>tar -xzvf hpcc.tar.gz –C /usr/home/hpcc9/
  330. </programlisting>This will be the directory of the source, here we would
  331. create a directory for the binaries.</para>
  332. <para><programlisting>mkdir cmake_build9
  333. </programlisting>Then from the new cmake_build9 directory, you can issue the
  334. command:</para>
  335. <para><programlisting>cmake /usr/home/hpcc9</programlisting>This will
  336. give lots of messages and status as the process runs.</para>
  337. <para>Once this process successfully completes, you can then issue the
  338. command:<programlisting>make
  339. </programlisting>Make will now build all the source files, this process is
  340. automated to detect the platform you are running on. If its a red hat or
  341. CentOS platform, it will create a .rpm file to install. If you are on
  342. Ubuntu/Debian package it will generate a apt-get package.</para>
  343. <para><!--*** The following section is just conjecture at this point,
  344. because I do not fully understand what these commands do or what their purpose is...
  345. *** sorry if this does not quite make sense.-->Another step in the process is
  346. to make the install...</para>
  347. <para><programlisting>make install
  348. </programlisting>This will make the installation file ***</para>
  349. <para><!--*** See comments above!-->Another step in the process is to
  350. make the package...</para>
  351. <para><programlisting>make package
  352. </programlisting>This will package up the installation files ready to
  353. redeploy***</para>
  354. <para></para>
  355. <para>Next steps: Get the GettingStarted document, and the Using Config
  356. Manager document to configure your HPCC system.</para>
  357. </sect1>
  358. </chapter>
  359. </book>