मैं HDInsight क्लस्टर में MapReduce नौकरी सबमिट करने का प्रयास कर रहा हूं। मेरे काम में मैंने भाग कम नहीं किया क्योंकि मैं कुछ भी कम नहीं करना चाहता हूं। मैं बस इतना करना चाहता हूं कि प्रत्येक फ़ाइल नाम को पार्स करें और मान को फ़ाइल में प्रत्येक पंक्ति में जोड़ दें। ताकि मेरे पास फ़ाइल के अंदर आवश्यक सभी डेटा होंगे।सी # MapReduce नौकरी विंडोज Azure HDInsight सबमिट करें - प्रतिक्रिया स्थिति कोड सफलता का संकेत नहीं देता है: 500 (सर्वर त्रुटि)
मेरे कोड
using Microsoft.Hadoop.MapReduce;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GetMetaDataFromFileName
{
class Program
{
static void Main(string[] args)
{
var hadoop = connectAzure();
//Temp Workaround to Env Variables
Environment.SetEnvironmentVariable("HADOOP_HOME", @"c:\hadoop");
Environment.SetEnvironmentVariable("Java_HOME", @"c:\hadoop\jvm");
var result = hadoop.MapReduceJob.ExecuteJob<MetaDataGetterJob>();
}
static IHadoop connectAzure()
{
//TODO: Update credentials and other information
return Hadoop.Connect(
new Uri("https://sampleclustername.azurehdinsight.net//"),
"admin",
"Hadoop",
"password",
"blobstoragename.blob.core.windows.net", //Storage Account that Log files exists
"AccessKeySample", //Storage Account Access Key
"logs", //Container Name
true
);
}
//Hadoop Mapper
public class MetaDataGetter : MapperBase
{
public override void Map(string inputLine, MapperContext context)
{
try
{
//Get the meta data from name of the file
string[] _fileMetaData = context.InputFilename.Split('_');
string _PublicIP = _fileMetaData[0].Trim();
string _PhysicalAdapterMAC = _fileMetaData[1].Trim();
string _BootID = _fileMetaData[2].Trim();
string _ServerUploadTime = _fileMetaData[3].Trim();
string _LogType = _fileMetaData[4].Trim();
string _MachineUpTime = _fileMetaData[5].Trim();
//Generate CSV portion
string _RowHeader = string.Format("{0},{1},{2},{3},{4},{5},", _PublicIP, _PhysicalAdapterMAC, _BootID, _ServerUploadTime, _LogType, _MachineUpTime);
//TODO: Append _RowHeader to every row in the file.
context.EmitLine(_RowHeader + inputLine);
}
catch(ArgumentException ex)
{
return;
}
}
}
//Hadoop Job Definition
public class MetaDataGetterJob : HadoopJob<MetaDataGetter>
{
public override HadoopJobConfiguration Configure(ExecutorContext context)
{
//Initiate the job config
HadoopJobConfiguration config = new HadoopJobConfiguration();
config.InputPath = "asv://[email protected]/Input";
config.OutputFolder = "asv://[email protected]/Output";
config.DeleteOutputFolder = true;
return config;
}
}
}
}
आमतौर पर है कि क्या करना आप बात 500 (सर्वर त्रुटि) के कारण? क्या मैं गलत प्रमाण-पत्रों की आपूर्ति कर रहा हूं? असल में मैं वास्तव में Hadoop में कनेक्ट उपयोगकर्ता नाम और HadoopUser पैरामीटर के बीच अंतर को समझ नहीं पाया। कनेक्ट विधि?
धन्यवाद,
इस पर कोई सुधार? – Rengasamy