Ejemplo n.º 1
0
 /// <summary>
 /// 获取文件或路径的详细信息
 /// </summary>
 /// <param name="file">文件或路径名</param>
 /// <returns></returns>
 public static HdfsFileInfo GetStatus(string file)
 {
     try
     {
         string url    = BuildUrl(file, WebHdfsAPI.FILESTATUS);
         string result = HttpClientHelperV45.Get(url);
         return(HdfsFileInfo.FromJson(result));
     }
     catch (Exception ex)
     {
         DebugHelper.Error(ex);
         return(null);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 列举当前目录内容
 /// </summary>
 /// <param name="path">HDFS路径</param>
 /// <returns></returns>
 public static List <HdfsFileInfo> LsDir(string path)
 {
     try
     {
         string url    = BuildUrl(path, WebHdfsAPI.LIST);
         string result = HttpClientHelperV45.Get(url);
         return(HdfsFileInfo.ParseJsonArray(result));
     }
     catch (Exception ex)
     {
         DebugHelper.Error(ex);
         return(null);
     }
 }
Ejemplo n.º 3
0
        public static Dictionary <string, string> GetDataNodes()
        {
            Dictionary <string, string> dict = new Dictionary <string, string>();

            try
            {
                string url     = "HTTP://" + WebHdfsHost + WebHdfsAPI.HDFS_LIVENODES;
                string jsonstr = HttpClientHelperV45.Get(url);
                if (string.IsNullOrWhiteSpace(jsonstr))
                {
                    return(null);
                }
                var jObj = JsonConvert.DeserializeObject(jsonstr);
                if (null == jObj)
                {
                    throw new Exception("HDFS LiveNodes Json解析错误");
                }
                var liveNodes = (jObj as JObject)["beans"][0]["LiveNodes"] as JValue;

                var jobjNodes = JsonConvert.DeserializeObject(liveNodes.ToString()) as JObject;
                foreach (var jprop in jobjNodes.Properties())
                {
                    string hname = jprop.Name.Split(':')[0];
                    string addr  = (jprop.Value as JObject)["infoAddr"].ToString();
                    string ip    = addr.Split(':')[0];
                    dict.Add(hname, ip);
                }

                return(dict);
            }
            catch (Exception ex)
            {
                DebugHelper.Error(ex);
                return(null);
            }
        }