Skip to content

Commit 14f060b

Browse files
committed
Merge pull request #1 from apache/trunk
sync
2 parents 124a412 + 4d7055e commit 14f060b

File tree

1,542 files changed

+67528
-26274
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,542 files changed

+67528
-26274
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/tla/yarnregistry.t
2424
yarnregistry.pdf
2525
hadoop-tools/hadoop-aws/src/test/resources/auth-keys.xml
2626
hadoop-tools/hadoop-aws/src/test/resources/contract-test-options.xml
27+
hadoop-tools/hadoop-azure/src/test/resources/azure-auth-keys.xml
2728
patchprocess/

BUILDING.txt

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ Requirements:
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)
1313
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
14-
* Jansson C XML parsing library (if compiling libwebhdfs)
1514
* Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)
1615
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
1716
* python (for releasedocs)
@@ -28,19 +27,19 @@ On Linux:
2827
$ ./start-build-env.sh
2928

3029
On Mac:
31-
First make sure Homebrew has been installed ( http://brew.sh/ )
32-
$ brew install docker boot2docker
33-
$ boot2docker init -m 4096
34-
$ boot2docker start
35-
$ $(boot2docker shellinit)
30+
First make sure Virtualbox and docker toolbox are installed.
31+
You can use docker toolbox as described in http://docs.docker.com/mac/step_one/.
32+
$ docker-machine create --driver virtualbox \
33+
--virtualbox-memory "4096" hadoopdev
34+
$ eval $(docker-machine env hadoopdev)
3635
$ ./start-build-env.sh
3736

3837
The prompt which is then presented is located at a mounted version of the source tree
3938
and all required tools for testing and building have been installed and configured.
4039

4140
Note that from within this docker environment you ONLY have access to the Hadoop source
4241
tree from where you started. So if you need to run
43-
dev-support/test-patch.sh /path/to/my.patch
42+
dev-support/bin/test-patch /path/to/my.patch
4443
then the patch must be placed inside the hadoop source tree.
4544

4645
Known issues:
@@ -74,6 +73,8 @@ Optional packages:
7473

7574
* Snappy compression
7675
$ sudo apt-get install snappy libsnappy-dev
76+
* Intel ISA-L library for erasure coding
77+
Please refer to https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version
7778
* Bzip2
7879
$ sudo apt-get install bzip2 libbz2-dev
7980
* Jansson (C Library for JSON)
@@ -148,7 +149,8 @@ Maven build goals:
148149
installed snappy using a package manager.
149150
* Use -Dbundle.snappy to copy the contents of the snappy.lib directory into
150151
the final tar file. This option requires that -Dsnappy.lib is also given,
151-
and it ignores the -Dsnappy.prefix option.
152+
and it ignores the -Dsnappy.prefix option. If -Dsnappy.lib isn't given, the
153+
bundling and building will fail.
152154

153155
OpenSSL build options:
154156

@@ -169,7 +171,8 @@ Maven build goals:
169171
installed openssl using a package manager.
170172
* Use -Dbundle.openssl to copy the contents of the openssl.lib directory into
171173
the final tar file. This option requires that -Dopenssl.lib is also given,
172-
and it ignores the -Dopenssl.prefix option.
174+
and it ignores the -Dopenssl.prefix option. If -Dopenssl.lib isn't given, the
175+
bundling and building will fail.
173176

174177
Tests options:
175178

@@ -178,6 +181,34 @@ Maven build goals:
178181
* -Dtest=<TESTCLASSNAME>,<TESTCLASSNAME#METHODNAME>,....
179182
* -Dtest.exclude=<TESTCLASSNAME>
180183
* -Dtest.exclude.pattern=**/<TESTCLASSNAME1>.java,**/<TESTCLASSNAME2>.java
184+
* To run all native unit tests, use: mvn test -Pnative -Dtest=allNative
185+
* To run a specific native unit test, use: mvn test -Pnative -Dtest=<test>
186+
For example, to run test_bulk_crc32, you would use:
187+
mvn test -Pnative -Dtest=test_bulk_crc32
188+
189+
Intel ISA-L build options:
190+
191+
Intel ISA-L is a erasure coding library that can be utilized by the native code.
192+
It is currently an optional component, meaning that Hadoop can be built with
193+
or without this dependency. Note the library is used via dynamic module. Please
194+
reference the official site for the library details.
195+
https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version
196+
197+
* Use -Drequire.isal to fail the build if libisal.so is not found.
198+
If this option is not specified and the isal library is missing,
199+
we silently build a version of libhadoop.so that cannot make use of ISA-L and
200+
the native raw erasure coders.
201+
This option is recommended if you plan on making use of native raw erasure
202+
coders and want to get more repeatable builds.
203+
* Use -Disal.prefix to specify a nonstandard location for the libisal
204+
library files. You do not need this option if you have installed ISA-L to the
205+
system library path.
206+
* Use -Disal.lib to specify a nonstandard location for the libisal library
207+
files.
208+
* Use -Dbundle.isal to copy the contents of the isal.lib directory into
209+
the final tar file. This option requires that -Disal.lib is also given,
210+
and it ignores the -Disal.prefix option. If -Disal.lib isn't given, the
211+
bundling and building will fail.
181212

182213
----------------------------------------------------------------------------------
183214
Building components separately

dev-support/README.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one or more
3+
contributor license agreements. See the NOTICE file distributed with
4+
this work for additional information regarding copyright ownership.
5+
The ASF licenses this file to You under the Apache License, Version 2.0
6+
(the "License"); you may not use this file except in compliance with
7+
the License. You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
18+
This directory contains tools to help in the development and release of Apache Hadoop.
19+
20+
* bin
21+
22+
* releasedocmaker
23+
24+
Build release notes for a given Hadoop project or subproject. This is called from Maven when -Preleasedocs is used. See BUILDING.txt for more information.
25+
26+
* shelldocs
27+
28+
Create documentation for the Unix Shell API. This is called from Maven when -Pshelldocs is used.
29+
30+
* smart-apply-patch
31+
32+
Intelligently apply a patch file to a source tree.
33+
34+
* test-patch
35+
36+
Test a patch against a source tree.
37+
38+
* create-release.sh
39+
40+
Helps REs create a release of Apache Hadoop for distribution.
41+
42+
* determine-flaky-tests-hadoop.py
43+
44+
Given a jenkins test job, this script examines all runs of the job done within specified period of time (number of days prior to the execution time of this script), and reports all failed tests.
45+
46+
* docker
47+
48+
Various helpers for the start-build-env.sh script, including the Dockerfile itself. See parent BUILDING.txt for more information.
49+
50+
* findHangingTest.sh
51+
52+
Finds hanging test from Jenkins build output.
53+
54+
55+
Previously, the scripts test-patch.sh, smart-apply-patch.sh, releasedocmaker.py, and shelldocs.py were in this directory. They have been moved to the Apache Yetus project (https://yetus.apache.org). These scripts have been replaced with wrapper scripts located in the bin directory. Command line options are generally different than the previous versions that shipped with older versions of Apache Hadoop.
56+
57+
The wrapper scripts will download, verify (if GPG is installed), and cache a local copy of Apache Yetus in the hadoop/patchprocess directory. The version that is used may be overridden by setting the HADOOP\_YETUS\_VERSION environment variable. The cache directory may be overwritten by setting the HADOOP\_PATCHPROCESS directory. If a local version of Apache Yetus is already installed, it may be used instead by setting the YETUS\_HOME environment variable to point to that directory.

dev-support/bin/releasedocmaker

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
BINDIR=$(cd -P -- "$(dirname -- "${BASH_SOURCE-0}")" >/dev/null && pwd -P)
18+
exec "${BINDIR}/yetus-wrapper" releasedocmaker "$@"

dev-support/bin/shelldocs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
BINDIR=$(cd -P -- "$(dirname -- "${BASH_SOURCE-0}")" >/dev/null && pwd -P)
18+
exec "${BINDIR}/yetus-wrapper" shelldocs "$@"

dev-support/bin/smart-apply-patch

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
BINDIR=$(cd -P -- "$(dirname -- "${BASH_SOURCE-0}")" >/dev/null && pwd -P)
18+
exec "${BINDIR}/yetus-wrapper" smart-apply-patch --project=hadoop "$@"

dev-support/bin/test-patch

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
BINDIR=$(cd -P -- "$(dirname -- "${BASH_SOURCE-0}")" >/dev/null && pwd -P)
18+
exec "${BINDIR}/yetus-wrapper" test-patch --project=hadoop --skip-dir=dev-support "$@"

0 commit comments

Comments
 (0)