国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

ASP.NET實現Hadoop增刪改查的示例代碼

來源:懂視網 責編:小采 時間:2020-11-27 22:35:28
文檔

ASP.NET實現Hadoop增刪改查的示例代碼

ASP.NET實現Hadoop增刪改查的示例代碼:本文介紹了ASP.NET實現Hadoop增刪改查的示例代碼,分享給大家,具體如下: packages.config <?xml version=1.0 encoding=utf-8?> <packages> <package id=Microsoft.AspNet.Web
推薦度:
導讀ASP.NET實現Hadoop增刪改查的示例代碼:本文介紹了ASP.NET實現Hadoop增刪改查的示例代碼,分享給大家,具體如下: packages.config <?xml version=1.0 encoding=utf-8?> <packages> <package id=Microsoft.AspNet.Web

本文介紹了ASP.NET實現Hadoop增刪改查的示例代碼,分享給大家,具體如下:

packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
 <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20505.0" targetFramework="net46" />
 <package id="Microsoft.Data.Edm" version="5.2.0" targetFramework="net46" />
 <package id="Microsoft.Data.OData" version="5.2.0" targetFramework="net46" />
 <package id="Microsoft.Hadoop.WebClient" version="0.12.5126.42915" targetFramework="net46" />
 <package id="Microsoft.Net.Http" version="2.0.20505.0" targetFramework="net46" />
 <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.8.0.0" targetFramework="net46" />
 <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net46" />
 <package id="System.Spatial" version="5.2.0" targetFramework="net46" />
 <package id="WindowsAzure.Storage" version="2.0.4.1" targetFramework="net46" />
</packages>

HDFSAccess.cs

using Microsoft.Hadoop.WebHDFS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;

namespace Physical
{
 public sealed class HDFSAccess
 {
 private readonly WebHDFSClient webHDFSClient;

 public HDFSAccess(string uriString, string userName)
 {
 this.webHDFSClient = new WebHDFSClient(new Uri(uriString), userName);
 }

 public List<string> GetDirectories(string path)
 {
 var directoryStatus = this.webHDFSClient.GetDirectoryStatus(path).Result;

 return directoryStatus.Directories.Select(d => d.PathSuffix).ToList();
 }

 public List<string> GetFiles(string path)
 {
 var directoryStatus = this.webHDFSClient.GetDirectoryStatus(path).Result;

 return directoryStatus.Files.Select(d => d.PathSuffix).ToList();
 }

 public bool CreateDirectory(string path)
 {
 // 傳入路徑不包含根目錄時,預設會在根目錄「/」底下
 return this.webHDFSClient.CreateDirectory(path).Result;
 }

 public bool DeleteDirectory(string path)
 {
 // 傳入路徑不包含根目錄時,預設會在根目錄「/」底下
 return this.webHDFSClient.DeleteDirectory(path).Result;
 }

 public string CreateFile(string localFile, string remotePath)
 {
 // 傳入遠端路徑不包含根目錄時,預設會在根目錄「/」底下
 return this.webHDFSClient.CreateFile(localFile, remotePath).Result;
 }

 public bool DeleteFile(string path)
 {
 // 傳入路徑不包含根目錄時,預設會在根目錄「/」底下
 return this.webHDFSClient.DeleteDirectory(path).Result;
 }

 public HttpResponseMessage OpenFile(string path)
 {
 // 傳入路徑不包含根目錄時,預設會在根目錄「/」底下
 return this.webHDFSClient.OpenFile(path).Result;
 }
 }
}

Program.cs

using Physical;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyTest
{
 class Program
 {
 // HDFS cluster 客戶端進入端點設定于 主機上
 // 預設端點:http://[主機名稱]:50070
 // 預設帳號:Wu
 private static HDFSAccess access = new HDFSAccess(@"http://127.0.0.1:50070", "Wu");

 static void Main(string[] args)
 {
 GetDirectoriesTest();
 Console.WriteLine("----------------------------------------------");
 GetFilesTest();
 Console.WriteLine("----------------------------------------------");
 DirectoryTest();
 Console.WriteLine("----------------------------------------------");
 FileTest();
 Console.WriteLine("----------------------------------------------");
 OpenFileTest();
 Console.ReadKey();
 } 

 public void TestCleanup()
 {
 //取得根目錄資料夾
 var directories = access.GetDirectories(@"/");

 // 移除預設目錄:tmp、user 外的目錄
 foreach (var directory in directories)
 {
 if ("tmp".Equals(directory) || "user".Equals(directory))
 {
 continue;
 }
 else
 {
 access.DeleteDirectory(directory);
 }
 }

 // 取得根目錄檔案
 var files = access.GetFiles(@"/");

 // 移除所有檔案
 foreach (var file in files)
 {
 access.DeleteFile(file);
 }

 // 移除 OpenFile 轉存檔案
 File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "Test.jpg"));
 }

 //_傳入根目錄_預期回傳預設目錄
 public static void GetDirectoriesTest()
 {
 // 預設根目錄下有兩個目錄:tmp、user
 var expected = new List<string>() { "tmp", "user", };

 var actual = access.GetDirectories(@"/");

 foreach (var item in actual)
 {
 Console.WriteLine(item);
 }

 }

 //_傳入根目錄_預期回傳空集合
 public static void GetFilesTest()
 {
 // 預設根目錄下沒有檔案
 var expected = new List<string>();

 var actual = access.GetFiles(@"/");
 foreach (var item in actual)
 {
 Console.WriteLine(item);
 }

 }

 //_建立zzz目錄_預期成功_預期根目錄下有zzz目錄_刪除zzz目錄_預期成功_預期根目錄下無zzz目錄
 public static void DirectoryTest()
 {
 var directoryName = "zzz";

 // 建立zzz目錄
 var boolCreateDirectory = access.CreateDirectory(directoryName);

 Console.WriteLine("建立zzz目錄_預期成功:"+boolCreateDirectory);

 // 建立zzz目錄_預期成功_預期根目錄下有zzz目錄
 // 預設根目錄下有三個目錄:tmp、user、zzz
 var expectedCreateDirectory = new List<string>() { "tmp", "user", directoryName, };

 var actualCreateDirectory = access.GetDirectories(@"/");


 foreach (var item in actualCreateDirectory)
 {
 Console.WriteLine(item);
 }

 Console.WriteLine("********************************************");
 // 刪除zzz目錄
 var boolDeleteDirectory = access.DeleteDirectory(directoryName);

 Console.WriteLine("刪除zzz目錄_預期成功:" + boolDeleteDirectory);


 // 刪除zzz目錄_預期成功_預期根目錄下無zzz目錄
 // 預設根目錄下有兩個目錄:tmp、user
 var expectedDeleteDirectory = new List<string>() { "tmp", "user", };

 var actualDeleteDirectory = access.GetDirectories(@"/");

 foreach (var item in actualDeleteDirectory)
 {
 Console.WriteLine(item);
 }
 }

 //_建立Test檔案_預期根目錄下有Test檔案_刪除Test檔案_預期成功_預期根目錄下無Test檔案
 public static void FileTest()
 {
 var localFile = Path.Combine(Directory.GetCurrentDirectory(), "TestFolder", "Test.jpg");

 var remotePath = "Test.jpg";

 // 建立Test檔案
 var boolCreateFile = access.CreateFile(localFile, remotePath);

 // 建立Test檔案_預期根目錄下有Test檔案
 var expectedCreateFile = new List<string>() { remotePath, };

 var actualCreateFile = access.GetFiles(@"/");

 foreach (var item in actualCreateFile)
 {
 Console.WriteLine(item);
 }
 Console.WriteLine("********************************************");
 // 刪除Test檔案
 var boolDeleteFile = access.DeleteDirectory(remotePath);

 Console.WriteLine("刪除Test檔案_預期成功:"+boolDeleteFile);

 // 刪除Test檔案_預期成功_預期根目錄下無Test檔案
 var expectedDeleteFile = new List<string>();

 var actualDeleteFile = access.GetFiles(@"/");

 foreach (var item in actualDeleteFile)
 {
 Console.WriteLine(item);
 }
 }

 //_建立Test檔案_預期根目錄下有Test檔案_取得Test檔案_預期成功_預期回傳Test檔案Stream并轉存成功
 public static void OpenFileTest()
 {
 var localFile = Path.Combine(Directory.GetCurrentDirectory(), "TestFolder", "Test.jpg");
 var remotePath = "Test.jpg";
 var saveFile = Path.Combine(Directory.GetCurrentDirectory(), "Test.jpg");

 Console.WriteLine("saveFile:" + saveFile);
 Console.WriteLine("********************************************");
 // 建立Test檔案
 var boolCreateFile = access.CreateFile(localFile, remotePath);

 // 建立Test檔案_預期根目錄下有Test檔案
 var expectedCreateFile = new List<string>() { remotePath, };

 var actualCreateFile = access.GetFiles(@"/");

 foreach (var item in actualCreateFile)
 {
 Console.WriteLine(item);
 }


 Console.WriteLine("********************************************");
 // 取得Test檔案
 var response = access.OpenFile(remotePath);

 // 取得Test檔案_預期成功
 response.EnsureSuccessStatusCode();

 // 取得Test檔案_預期成功_預期回傳Test檔案Stream并轉存成功
 using (var fs = File.Create(saveFile))
 {
 response.Content.CopyToAsync(fs).Wait();
 }

 Console.WriteLine(File.Exists(saveFile));

 }
 }
}

運行結果如圖:

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

ASP.NET實現Hadoop增刪改查的示例代碼

ASP.NET實現Hadoop增刪改查的示例代碼:本文介紹了ASP.NET實現Hadoop增刪改查的示例代碼,分享給大家,具體如下: packages.config <?xml version=1.0 encoding=utf-8?> <packages> <package id=Microsoft.AspNet.Web
推薦度:
標簽: 實現 代碼 示例
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 一级毛片子 | 伊人精品在线视频 | 精品一区二区三区视频日产 | 国产一区二区网站 | 在线观看国产视频 | 亚洲一区日韩一区欧美一区a | 日韩国产欧美视频 | 欧日韩视频 | 亚洲国产精品日韩一线满 | 激情一区二区三区成人 | 欧美日韩高清一本大道免费 | 国产精品美女久久久久网站 | 国产不卡在线视频 | 国产欧美日韩综合精品一区二区 | 亚洲精品在线免费观看视频 | 91国内精品久久久久影院优播 | 国产成人精品免费午夜app | 日韩欧美高清 | 久久免费视频观看 | 亚洲欧美日韩综合精品网 | 亚洲 欧美 91 | 日本一区二区三区在线观看 | 理论片国产 | 99久久精品国产一区二区小说 | 日韩在线精品视频 | 亚洲色图欧美激情 | 欧美视频日韩视频 | 欧美日韩视频一区二区在线观看 | 欧美第一夜 | 国产一区二区久久久 | 国产激情一区二区三区成人91 | 亚洲国产精品日韩一线满 | 欧美精品亚洲精品日韩专区va | 久久国产精品电影 | 国产精品视频一区二区三区 | 福利视频欧美一区二区三区 | 日韩欧美在线播放 | 一级毛片在线看在线播放 | 欧洲高清一区二区三区试看 | 国产精品99久久久 | 久久精品一区二区影院 |