diff --git a/LICENSE b/LICENSE
index 34d6be6..28dfacd 100644
--- a/LICENSE
+++ b/LICENSE
@@ -284,7 +284,7 @@
 
 -------------------------------------------------------------------------------
 
-This product includes code from org.apache.hadoop.
+This product includes code from Apache Hadoop
 
 * org.apache.hudi.common.bloom.filter.InternalDynamicBloomFilter.java adapted from org.apache.hadoop.util.bloom.DynamicBloomFilter.java
 
diff --git a/NOTICE b/NOTICE
index c0469fa..ecd4479 100644
--- a/NOTICE
+++ b/NOTICE
@@ -3,84 +3,3 @@
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
-
-This project bundles the following dependencies
-
-----------------
-Metrics
-Copyright 2010-2013 Coda Hale and Yammer, Inc.
-
-This product includes software developed by Coda Hale and Yammer, Inc.
-
------------------
-Guava
-Copyright (C) 2007 The Guava Authors
-
-Licensed under the Apache License, Version 2.0
-
------------------
-Kryo (https://github.com/EsotericSoftware/kryo)
-Copyright (c) 2008-2018, Nathan Sweet All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
-following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-Neither the name of Esoteric Software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------
-
-Jackson JSON Processor
-
-This copy of Jackson JSON processor streaming parser/generator is licensed under the
-Apache (Software) License, version 2.0 ("the License").
-See the License for details about distribution rights, and the
-specific rights regarding derivate works.
-
-You may obtain a copy of the License at:
-
-http://www.apache.org/licenses/LICENSE-2.0
-
---------------
-
-Gson
-Copyright 2008 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-----------------
-
-================= Apache Hadoop 2.8.5 =================
-Apache Hadoop
-Copyright 2009-2017 The Apache Software Foundation
-
-================= Apache Hive 2.3.1 =================
-Apache Hive
-Copyright 2008-2017 The Apache Software Foundation
-
-================= Apache Spark 2.4.4 =================
-Apache Spark
-Copyright 2014 and onwards The Apache Software Foundation
-
-================= Apache Kafka 2.0.0 =================
-Apache Kafka
-Copyright 2020 The Apache Software Foundation.
-
-================= Apache HBase 1.2.3 =================
-Apache HBase
-Copyright 2007-2019 The Apache Software Foundation.
-
-================= Apache Avro 1.8.2 =================
-Apache Avro
-Copyright 2010-2019 The Apache Software Foundation.
\ No newline at end of file
