static void Main(string[] args) { Console.WriteLine("Initializing DataNode"); string nameNodeIp = args[0]; int port = Convert.ToInt32(args[1]); // Use ec2 instance manager to get the private ip address of this data node EC2InstanceManager.InstanceManager instanceManager = EC2InstanceManager.InstanceManager.Instance; ipAddress = instanceManager.GetPrivateIpAddress(); #if DEBUG if (ipAddress == null) { ipAddress = "localhost"; } #endif Server server = new Server { Services = { DataNodeProto.DataNodeProto.BindService(new DataNodeHandler()), ClientProto.ClientProto.BindService(new ClientHandler()) }, //Ports = { new ServerPort(ipAddress, Constants.Port, ServerCredentials.Insecure) } Ports = { new ServerPort(ipAddress, port, ServerCredentials.Insecure) } }; Console.WriteLine("Done initializing"); server.Start(); Console.WriteLine("Trying to connect to: " + nameNodeIp); Channel channel = new Channel(nameNodeIp + ":" + Constants.Port, ChannelCredentials.Insecure); ConnectionManager.Instance.NameNodeConnection = channel; var client = new DataNodeProto.DataNodeProto.DataNodeProtoClient(channel); // Send initial heartbeat to initialize datanode in namenode var response = client.SendHeartBeat(HeartBeat.CreateHeartBeatRequest(), new CallOptions().WithWaitForReady(true)); Console.WriteLine("Successfully connected to namenode"); // Initialize blockstorage BlockStorage mBlockStorage = BlockStorage.Instance; Task heartBeatTask = HeartBeat.SendHeartBeat(client); Task blockReportTask = BlockReport.SendBlockReport(client); while (true) { } }
static void Main(string[] args) { Console.WriteLine("Initializing NameNode"); Database = new Database(); DataNodeManager nodeManager = DataNodeManager.Instance; // Use ec2 instance manager to get the private ip address of this name node EC2InstanceManager.InstanceManager instanceManager = EC2InstanceManager.InstanceManager.Instance; string ipAddress = instanceManager.GetPrivateIpAddress(); #if DEBUG if (ipAddress == null) { ipAddress = "localhost"; } #endif Server server = new Server { Services = { DataNodeProto.DataNodeProto.BindService(new DataNodeHandler()), ClientProto.ClientProto.BindService(new ClientHandler()) }, Ports = { new ServerPort(ipAddress, Constants.Port, ServerCredentials.Insecure) } }; Console.WriteLine("Done initializing"); server.Start(); //Check for dead datanodes Task nodeCheckTask = nodeManager.RunNodeCheck(); Console.WriteLine("Greeter server listening on ip address " + ipAddress + ", port " + Constants.Port); Console.WriteLine("Press any key to stop the server..."); Console.ReadKey(); server.ShutdownAsync().Wait(); }