code: void startDataNode(Configuration conf, 
                       AbstractList<File> dataDirs
                       ) throws IOException {
      initGlobalSetting(conf, dataDirs);
      
      /* Initialize namespace manager */
      List<InetSocketAddress> nameNodeAddrs = DFSUtil.getNNServiceRpcAddresses(conf);
      
      //TODO this will be no longer valid, since we will have multiple namenodes
      // We might want to keep it and assign the first NN to it.
      DataNode.nameNodeAddr = nameNodeAddrs.get(0); 
      namespaceManager = new NamespaceManager(conf, nameNodeAddrs);
    
      initDataSetAndScanner(conf, dataDirs, nameNodeAddrs.size());
    }
docs: This method starts the data node with the specified conf.
  
  @param conf - the configuration
  if conf's CONFIG_PROPERTY_SIMULATED property is set
  then a simulated storage based data node is created.
  
  @param dataDirs - only for a non-simulated storage data node
  @throws IOException