国产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
主站蜘蛛池模板: 91欧美亚洲 | 日日做夜夜爱 | 在线观看国产视频 | 国产亚洲视频在线 | 日韩国产欧美一区二区三区 | 爆操欧美 | 亚洲国产成人精品女人久久久 | 国产亚洲欧美一区二区 | 全免费毛片在线播放 | 欧美精品首页 | 中文在线第一页 | 日韩在线欧美高清一区 | 97成人免费视频 | 91精品久久久久久久久久 | 国产成人精品三区 | 亚洲成人777 | 国产1区2区| 国产盗摄精品一区二区三区 | 高清国产一区 | 国产免费不卡 | 日本 黄 a | 成人一级免费视频 | 国产69精品久久 | 欧美1页 | 性刺激欧美三级在线现看中文 | 欧美一区二区三区网站 | 亚洲精品社区 | 黄色a免费 | 亚洲国产欧美日韩精品一区二区三区 | 国产精品高清久久久久久久 | 亚洲欧美日本另类 | 欧美日韩国产在线播放 | 精品伊人久久大线蕉色首页 | 国产毛片久久久久久国产毛片 | 欧美午夜视频在线 | 亚欧洲精品在线视频免费观看 | 91在线看片 | 成人黄色在线观看 | 国产精品一级视频 | 国产一区二区三区免费 | 久久久久久夜精品精品免费啦 |