AMBARI-22524 : Journal Node start failing when AMS is installed during BP deploy. (avijayan)
diff --git a/ambari-metrics-hadoop-sink/pom.xml b/ambari-metrics-hadoop-sink/pom.xml
index 23f9ba9..a9d342f 100644
--- a/ambari-metrics-hadoop-sink/pom.xml
+++ b/ambari-metrics-hadoop-sink/pom.xml
@@ -31,6 +31,7 @@
<packaging>jar</packaging>
<properties>
<sinkJarName>${project.artifactId}-with-common-${project.version}.jar</sinkJarName>
+ <hadoop.version>3.0.0-beta1</hadoop.version>
</properties>
@@ -141,7 +142,7 @@
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
- <version>2.4.0</version>
+ <version>${hadoop.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
diff --git a/ambari-metrics-hadoop-sink/src/main/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSink.java b/ambari-metrics-hadoop-sink/src/main/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSink.java
index a290ced..bbc9617 100644
--- a/ambari-metrics-hadoop-sink/src/main/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSink.java
+++ b/ambari-metrics-hadoop-sink/src/main/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSink.java
@@ -17,7 +17,8 @@
*/
package org.apache.hadoop.metrics2.sink.timeline;
-import org.apache.commons.configuration.SubsetConfiguration;
+import org.apache.commons.configuration2.SubsetConfiguration;
+import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
@@ -34,7 +35,6 @@
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -143,7 +143,7 @@
metricsCache = new TimelineMetricsCache(maxRowCacheSize,
metricsSendInterval, conf.getBoolean(SKIP_COUNTER_TRANSFROMATION, true));
- conf.setListDelimiter(',');
+ conf.setListDelimiterHandler(new DefaultListDelimiterHandler(','));
Iterator<String> it = (Iterator<String>) conf.getKeys();
while (it.hasNext()) {
String propertyName = it.next();
diff --git a/ambari-metrics-hadoop-sink/src/test/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSinkTest.java b/ambari-metrics-hadoop-sink/src/test/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSinkTest.java
index 30c5c23..6bb6454 100644
--- a/ambari-metrics-hadoop-sink/src/test/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSinkTest.java
+++ b/ambari-metrics-hadoop-sink/src/test/java/org/apache/hadoop/metrics2/sink/timeline/HadoopTimelineMetricsSinkTest.java
@@ -19,7 +19,8 @@
package org.apache.hadoop.metrics2.sink.timeline;
import com.google.gson.Gson;
-import org.apache.commons.configuration.SubsetConfiguration;
+import org.apache.commons.configuration2.SubsetConfiguration;
+import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.metrics2.AbstractMetric;
import org.apache.hadoop.metrics2.MetricType;
@@ -74,7 +75,7 @@
import static org.powermock.api.easymock.PowerMock.verifyAll;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({AbstractTimelineMetricsSink.class, HttpURLConnection.class})
+@PrepareForTest({AbstractTimelineMetricsSink.class, HttpURLConnection.class, SubsetConfiguration.class})
public class HadoopTimelineMetricsSinkTest {
Gson gson = new Gson();
@@ -84,7 +85,7 @@
}
@Test
- @PrepareForTest({URL.class, OutputStream.class, AbstractTimelineMetricsSink.class, HttpURLConnection.class, TimelineMetric.class, HadoopTimelineMetricsSink.class})
+ @PrepareForTest({URL.class, OutputStream.class, AbstractTimelineMetricsSink.class, HttpURLConnection.class, TimelineMetric.class, HadoopTimelineMetricsSink.class, SubsetConfiguration.class})
public void testPutMetrics() throws Exception {
HadoopTimelineMetricsSink sink = new HadoopTimelineMetricsSink();
@@ -102,7 +103,7 @@
OutputStream os = PowerMock.createNiceMock(OutputStream.class);
expect(connection.getOutputStream()).andReturn(os).anyTimes();
- SubsetConfiguration conf = createNiceMock(SubsetConfiguration.class);
+ SubsetConfiguration conf = PowerMock.createNiceMock(SubsetConfiguration.class);
expect(conf.getString("slave.host.name")).andReturn("localhost").anyTimes();
expect(conf.getParent()).andReturn(null).anyTimes();
expect(conf.getPrefix()).andReturn("service").anyTimes();
@@ -116,7 +117,7 @@
expect(conf.getBoolean(eq(SET_INSTANCE_ID_PROPERTY), eq(false))).andReturn(true).anyTimes();
expect(conf.getString(eq(INSTANCE_ID_PROPERTY), anyString())).andReturn("instanceId").anyTimes();
- conf.setListDelimiter(eq(','));
+ conf.setListDelimiterHandler(new DefaultListDelimiterHandler(eq(',')));
expectLastCall().anyTimes();
expect(conf.getKeys()).andReturn(new Iterator() {
@@ -157,7 +158,7 @@
timelineMetric.setInstanceId(eq("instanceId"));
EasyMock.expectLastCall();
- replay(conf, record, metric);
+ replay(record, metric);
replayAll();
sink.init(conf);
@@ -179,7 +180,7 @@
.addMockedMethod("findLiveCollectorHostsFromKnownCollector")
.addMockedMethod("emitMetrics").createNiceMock();
- SubsetConfiguration conf = createNiceMock(SubsetConfiguration.class);
+ SubsetConfiguration conf = PowerMock.createNiceMock(SubsetConfiguration.class);
expect(conf.getString("slave.host.name")).andReturn("localhost").anyTimes();
expect(conf.getParent()).andReturn(null).anyTimes();
expect(conf.getPrefix()).andReturn("service").anyTimes();
@@ -198,7 +199,7 @@
expect(sink.findLiveCollectorHostsFromKnownCollector("localhost2", "6188"))
.andReturn(Collections.singletonList("localhost2")).anyTimes();
- conf.setListDelimiter(eq(','));
+ conf.setListDelimiterHandler(new DefaultListDelimiterHandler(eq(',')));
expectLastCall().anyTimes();
expect(conf.getKeys()).andReturn(new Iterator() {
@@ -309,7 +310,7 @@
.addMockedMethod("findLiveCollectorHostsFromKnownCollector")
.addMockedMethod("emitMetrics").createNiceMock();
- SubsetConfiguration conf = createNiceMock(SubsetConfiguration.class);
+ SubsetConfiguration conf = PowerMock.createNiceMock(SubsetConfiguration.class);
expect(conf.getString("slave.host.name")).andReturn("localhost").anyTimes();
expect(conf.getParent()).andReturn(null).anyTimes();
expect(conf.getPrefix()).andReturn("service").anyTimes();
@@ -326,7 +327,7 @@
expect(conf.getInt(eq(MAX_METRIC_ROW_CACHE_SIZE), anyInt())).andReturn(10).anyTimes();
expect(conf.getInt(eq(METRICS_SEND_INTERVAL), anyInt())).andReturn(10).anyTimes();
- conf.setListDelimiter(eq(','));
+ conf.setListDelimiterHandler(new DefaultListDelimiterHandler(eq(',')));
expectLastCall().anyTimes();
Set<String> rpcPortSuffixes = new HashSet<String>() {{