<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You 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.
-->


<cheatsheet title="Set default Hadoop path tutorial">
	<intro>
		<description>
			This tutorial informs you how to set the default Hadoop
			directory for the plugin.
		</description>
	</intro>
	<item title="Create MapReduce Cluster" skip="true">
		<description>
			Define a MapReduce cluster [if you have not done so already]
			by opening the MapReduce Servers view and clicking on the
			blue elephant in the upper right.

			Use the following embedded command to create a new Hadoop Server:
		</description>

		<action pluginId="com.ibm.hipods.mapreduce"
			class="org.apache.hadoop.eclipse.actions.NewServerAction" />
	</item>
	<item title="Open and Explore DFS Tree">

		<description>
			Project Explorer view shows an elephant icon for each defined
			server.  Opening a server entry will open a connection to
			the root of that server's DFS tree.  You can then explore the
			DFS tree.
		</description>

	</item>
</cheatsheet>
