Skip to content

Commit b02f775

Browse files
author
Colin Patrick Mccabe
committed
HADOOP-9329. document native build dependencies in BUILDING.txt (Vijay Bhat via Colin P. McCabe)
(cherry picked from commit bf6295b)
1 parent 219eb22 commit b02f775

File tree

2 files changed

+45
-8
lines changed

2 files changed

+45
-8
lines changed

BUILDING.txt

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,44 @@ Requirements:
1010
* ProtocolBuffer 2.5.0
1111
* CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac
1212
* Zlib devel (if compiling native code)
13-
* openssl devel ( if compiling native hadoop-pipes )
13+
* openssl devel ( if compiling native hadoop-pipes and to get the best HDFS encryption performance )
14+
* Jansson C XML parsing library ( if compiling libwebhdfs )
15+
* Linux FUSE (Filesystem in Userspace) version 2.6 or above ( if compiling fuse_dfs )
1416
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
1517

18+
----------------------------------------------------------------------------------
19+
Installing required packages for clean install of Ubuntu 14.04 LTS Desktop:
20+
21+
* Oracle JDK 1.7 (preferred)
22+
$ sudo apt-get purge openjdk*
23+
$ sudo apt-get install software-properties-common
24+
$ sudo add-apt-repository ppa:webupd8team/java
25+
$ sudo apt-get update
26+
$ sudo apt-get install oracle-java7-installer
27+
* Maven
28+
$ sudo apt-get -y install maven
29+
* Native libraries
30+
$ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
31+
* ProtocolBuffer 2.5.0
32+
$ wget https://protobuf.googlecode.com/svn/rc/protobuf-2.5.0.tar.gz
33+
$ tar -zxvf protobuf-2.5.0.tar.gz
34+
$ cd protobuf-2.5.0.tar.gz
35+
$ ./configure
36+
$ make
37+
$ sudo make install
38+
$ sudo ldconfig
39+
40+
Optional packages:
41+
42+
* Snappy compression
43+
$ sudo apt-get install snappy libsnappy-dev
44+
* Bzip2
45+
$ sudo apt-get install bzip2 libbz2-dev
46+
* Jansson (C Library for JSON)
47+
$ sudo apt-get install libjansson-dev
48+
* Linux FUSE
49+
$ sudo apt-get install fuse libfuse-dev
50+
1651
----------------------------------------------------------------------------------
1752
Maven main modules:
1853

@@ -90,7 +125,7 @@ Maven build goals:
90125
* Use -Drequire.openssl to fail the build if libcrypto.so is not found.
91126
If this option is not specified and the openssl library is missing,
92127
we silently build a version of libhadoop.so that cannot make use of
93-
openssl. This option is recommended if you plan on making use of openssl
128+
openssl. This option is recommended if you plan on making use of openssl
94129
and want to get more repeatable builds.
95130
* Use -Dopenssl.prefix to specify a nonstandard location for the libcrypto
96131
header files and library files. You do not need this option if you have
@@ -128,8 +163,8 @@ Protocol Buffer compiler
128163
The version of Protocol Buffer compiler, protoc, must match the version of the
129164
protobuf JAR.
130165

131-
If you have multiple versions of protoc in your system, you can set in your
132-
build shell the HADOOP_PROTOC_PATH environment variable to point to the one you
166+
If you have multiple versions of protoc in your system, you can set in your
167+
build shell the HADOOP_PROTOC_PATH environment variable to point to the one you
133168
want to use for the Hadoop build. If you don't define this environment variable,
134169
protoc is looked up in the PATH.
135170
----------------------------------------------------------------------------------
@@ -258,8 +293,8 @@ Several tests require that the user must have the Create Symbolic Links
258293
privilege.
259294

260295
All Maven goals are the same as described above with the exception that
261-
native code is built by enabling the 'native-win' Maven profile. -Pnative-win
262-
is enabled by default when building on Windows since the native components
296+
native code is built by enabling the 'native-win' Maven profile. -Pnative-win
297+
is enabled by default when building on Windows since the native components
263298
are required (not optional) on Windows.
264299

265300
If native code bindings for zlib are required, then the zlib headers must be
@@ -277,5 +312,4 @@ http://www.zlib.net/
277312
----------------------------------------------------------------------------------
278313
Building distributions:
279314

280-
* Build distribution with native code : mvn package [-Pdist][-Pdocs][-Psrc][-Dtar]
281-
315+
* Build distribution with native code : mvn package [-Pdist][-Pdocs][-Psrc][-Dtar]

hadoop-common-project/hadoop-common/CHANGES.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,9 @@ Release 2.7.0 - UNRELEASED
268268
HADOOP-8059. Add javadoc to InterfaceAudience and InterfaceStability.
269269
(Brandon Li via suresh)
270270

271+
HADOOP-9329. document native build dependencies in BUILDING.txt (Vijay Bhat
272+
via Colin P. McCabe)
273+
271274
OPTIMIZATIONS
272275

273276
HADOOP-11323. WritableComparator#compare keeps reference to byte array.

0 commit comments

Comments
 (0)