ソースを参照

AMBARI-9374. Remove Hadoop dependency for AMS. (mpapirkovskyy)

Myroslav Papirkovskyy 10 年 前
コミット
ed03ce07ab

+ 46 - 0
ambari-metrics/ambari-metrics-assembly/pom.xml

@@ -130,6 +130,35 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>1.7</version>
+        <executions>
+          <execution>
+            <id>download-hadoop</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target name="Downloading Hadoop">
+                <mkdir dir="${project.build.directory}/embedded" />
+                <get
+                  src="${hadoop.tar}"
+                  dest="${project.build.directory}/embedded/hadoop.tar.gz"
+                  usetimestamp="true"
+                  />
+                <untar
+                  src="${project.build.directory}/embedded/hadoop.tar.gz"
+                  dest="${project.build.directory}/embedded"
+                  compression="gzip"
+                  />
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
@@ -353,6 +382,14 @@
                         </source>
                       </sources>
                     </mapping>
+                    <mapping>
+                      <directory>/usr/lib/ams-hbase/lib/hadoop-native/</directory>
+                      <sources>
+                        <source>
+                          <location>${project.build.directory}/ambari-metrics-collector-${project.version}/ambari-metrics-collector-${project.version}/hbase/lib/hadoop-native</location>
+                        </source>
+                      </sources>
+                    </mapping>
                     <mapping>
                       <directory>/usr/sbin</directory>
                       <filemode>755</filemode>
@@ -670,6 +707,15 @@
                     <prefix>/usr/lib/ams-hbase/bin</prefix>
                   </mapper>
                 </data>
+                <data>
+                  <src>${project.build.directory}/ambari-metrics-collector-${project.version}/ambari-metrics-collector-${project.version}/hbase/lib/hadoop-native</src>
+                  <type>directory</type>
+                  <mapper>
+                    <type>perm</type>
+                    <filemode>755</filemode>
+                    <prefix>/usr/lib/ams-hbase/lib/hadoop-native</prefix>
+                  </mapper>
+                </data>
                 <data>
                   <src>${collector.dir}/target/lib</src>
                   <type>directory</type>

+ 27 - 1
ambari-metrics/ambari-metrics-assembly/src/main/assembly/collector.xml

@@ -50,8 +50,34 @@
       <directory>${collector.dir}/target/lib</directory>
       <outputDirectory>lib</outputDirectory>
     </fileSet>
+    <fileSet>
+      <directory>${project.build.directory}/embedded/${hadoop.folder}/lib/native</directory>
+      <outputDirectory>hbase/lib/hadoop-native</outputDirectory>
+      <excludes>
+        <exclude>*.so*</exclude>
+      </excludes>
+    </fileSet>
   </fileSets>
 
+  <!--TODO due to broken symlinks  -->
+  <files>
+    <file>
+      <source>${project.build.directory}/embedded/${hadoop.folder}/lib/native/libsnappy.so.1.1.4</source>
+      <outputDirectory>hbase/lib/hadoop-native</outputDirectory>
+      <destName>libsnappy.so.1</destName>
+    </file>
+    <file>
+      <source>${project.build.directory}/embedded/${hadoop.folder}/lib/native/libhdfs.so.0.0.0</source>
+      <outputDirectory>hbase/lib/hadoop-native</outputDirectory>
+      <destName>libhdfs.so</destName>
+    </file>
+    <file>
+      <source>${project.build.directory}/embedded/${hadoop.folder}/lib/native/libhadoop.so.1.0.0</source>
+      <outputDirectory>hbase/lib/hadoop-native</outputDirectory>
+      <destName>libhadoop.so</destName>
+    </file>
+  </files>
+
   <dependencySets>
     <dependencySet>
       <unpack>false</unpack>
@@ -72,4 +98,4 @@
     </dependencySet>
   </dependencySets>
 
-</assembly>
+</assembly>

+ 3 - 4
ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector

@@ -203,14 +203,12 @@ case "$1" in
 #		  hbase_daemon "master" "start"
 #		  hbase_daemon "regionserver" "start"
     if [ !"${DISTRIBUTED_HBASE}" ]; then
+      echo "Starting HBase."
       hbase_daemon "master" "start"
     else
       echo "Launching in distributed mode. Assuming Hbase daemons up and running."
     fi
 
-#    sleep 30
-#TODO check issue fixed
-
 		CLASS='org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryServer'
 		# YARN_OPTS="${YARN_OPTS} ${YARN_TIMELINESERVER_OPTS}"
 		# if [[ -n "${YARN_TIMELINESERVER_HEAPSIZE}" ]]; then
@@ -275,7 +273,8 @@ case "$1" in
       fi
 
       #stop hbase daemons
-      if [ ! "${DISTRIBUTED_HBASE}" ]; then
+      if [ !"${DISTRIBUTED_HBASE}" ]; then
+        echo "Stopping HBase master"
         hbase_daemon "master" "stop"
       fi
 

+ 4 - 0
ambari-metrics/pom.xml

@@ -40,6 +40,10 @@
       http://public-repo-1.hortonworks.com/HDP/centos6/2.x/GA/2.2.0.0/tars/hbase-0.98.4.2.2.0.0-2041-hadoop2.tar.gz
     </hbase.tar>
     <hbase.folder>hbase-0.98.4.2.2.0.0-2041-hadoop2</hbase.folder>
+    <hadoop.tar>
+      http://public-repo-1.hortonworks.com/HDP/centos6/2.x/GA/2.2.0.0/tars/hadoop-2.6.0.2.2.0.0-2041.tar.gz
+    </hadoop.tar>
+    <hadoop.folder>hadoop-2.6.0.2.2.0.0-2041</hadoop.folder>
     <resmonitor.install.dir>
       /usr/lib/python2.6/site-packages/resource_monitoring
     </resmonitor.install.dir>

+ 6 - 4
ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-hbase-env.xml

@@ -129,10 +129,12 @@ export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Djava.security.auth.lo
 {% endif %}
 
 #Specify native libraries of installed Hadoop paltform
-_HADOOP_IN_PATH=$(PATH="${HADOOP_HOME:-${HADOOP_PREFIX}}/bin:$PATH" which hadoop 2>/dev/null)
-_HADOOP_CLASSPATH="/usr/lib/ams-hbase/lib/*"
-_HADOOP_JAVA_LIBRARY_PATH=$(HADOOP_CLASSPATH="$_HADOOP_CLASSPATH" ${_HADOOP_IN_PATH} org.apache.hadoop.hbase.util.GetJavaProperty java.library.path)
-export HBASE_OPTS="$HBASE_OPTS -Djava.library.path=${_HADOOP_JAVA_LIBRARY_PATH}"
+#_HADOOP_IN_PATH=$(PATH="${HADOOP_HOME:-${HADOOP_PREFIX}}/bin:$PATH" which hadoop 2>/dev/null)
+#_HADOOP_CLASSPATH="/usr/lib/ams-hbase/lib/*"
+#_HADOOP_JAVA_LIBRARY_PATH=$(HADOOP_CLASSPATH="$_HADOOP_CLASSPATH" ${_HADOOP_IN_PATH} org.apache.hadoop.hbase.util.GetJavaProperty java.library.path)
+#use embedded native libs
+_HADOOP_NATIVE_LIB="/usr/lib/ams-hbase/lib/hadoop-native/"
+export HBASE_OPTS="$HBASE_OPTS -Djava.library.path=${_HADOOP_NATIVE_LIB}"
 
 #"Unsetting" HADOOP_HOME to avoid importing HADOOP installed cluster related configs like: /usr/hdp/2.2.0.0-2041/hadoop/conf/ 
 export HADOOP_HOME=`pwd`

+ 0 - 6
ambari-server/src/main/resources/common-services/AMS/0.1.0/metainfo.xml

@@ -78,9 +78,6 @@
             <package>
               <name>ambari-metrics-hadoop-sink</name>
             </package>
-            <package>
-              <name>hadoop_2_2_*</name>
-            </package>
           </packages>
         </osSpecific>
         <osSpecific>
@@ -89,9 +86,6 @@
             <package>
               <name>ambari-metrics-assembly</name>
             </package>
-            <package>
-              <name>hadoop-2-2-.*</name>
-            </package>
           </packages>
         </osSpecific>
         <osSpecific>