1. 程式人生 > >本地上傳檔案到hadoop的hdfs檔案系統裡

本地上傳檔案到hadoop的hdfs檔案系統裡

引言:通過Java本地把windows裡的檔案資源上傳到centOs環境下的 hdfs檔案系統裡,中間遇到了很多問題,不過最終還是把檔案上傳到了hdfs裡了

環境:centos-7.0,hadoop.2.8.5.gz,jdk1.8,eclipse

1、下載hadoop.2.8.5.tar.gz和jdk1.8的linux版本安裝包,上傳到linux的根目錄下並配置環境變數,useradd hadoop一個使用者,這點就不再詳細說了,自己百度一下,隨便把hadoop.tar.gz解壓到一目錄裡,比如/opt/hadoop/hadoop.2.8.5,配置好以後可以看到版本。

2、我們進入到/opt/hadoop/hadoop.2.8.5/etc/裡面又很多配置檔案,我們修改hdfs.site.xml檔案跟core.site.xml檔案

<configuration>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
     </property>
  
    <property>
        <name>dfs.namenode.rpc-bind-host</name>
        <value>0.0.0.0</value>
    </property>
    
     <property>
       <name>dfs.permissions</name>
        <value>false</value>
    </property>
    
</configuration>

core.site.xml 192.168.159.134是我本機的ip,通過ip add可以進行檢視,每個人都不一樣。

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.159.134:9000</value>
    </property>
</configuration>

3、一些常用命令:

cd /opt/hadoop/hadoop.2.8.5/etc/ service iptables stop// 要把防火牆關掉,不然無法進行網路連線

cd /opt/hadoop/hadoop.2.8.5/bin/ hdfs namenode -format //格式化名稱節點

cd /opt/hadoop/hadoop.2.8.5/sbin/ start-dfs.sh//重啟hadoop

cd /opt/hadoop/hadoop.2.8.5/sbin/ start-dfs.sh//stop hadoop

hadoop fs -ls hdfs://192.168.159.134:9000/  //檢視上傳的檔案

hadoop fs -put /a hdfs:192.168.159.134:9000  //centos環境下本地上傳檔案到hdfs

netstat -lnp//檢視網路埠

4、編寫Java 程式碼

package edu.jmi.hdfsclient;

import java.io.IOException;

import java.net.Socket;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * Hello world!
 *
 */
public class AppTest 
{
    public static void main( String[] args ) throws Exception, IOException
    {
        upload();
    }
    
    public static void download() throws IOException {    
        Configuration conf = new Configuration();        
        conf.set("fs.defaultFS","hdfs://192.168.159.134:9000");        
        FileSystem fs = FileSystem.newInstance(conf);      
        fs.copyToLocalFile(new Path("/start-all.sh"),new Path("e://"));   
    }
    
    public static void upload() throws IOException {    
    Configuration conf = new Configuration();     
         conf.set("fs.defaultFS","hdfs://192.168.159.134:9000");     
         FileSystem fs = FileSystem.get(conf);
         Path src=new Path("d://my.txt");
         Path dest=new Path("/");
         fs.copyFromLocalFile(src,dest);
         FileStatus[] fileStatus  = fs.listStatus(dest);
         for(FileStatus file:fileStatus){
          System.out.println(file.getPath());
       }
         System.out.println("上傳成功");
    }
    
    public static void test()throws Exception{
        Socket socket=new Socket("192.168.159.134",9000);
        System.out.println(socket);//檢視網路是否相同,拒絕說明防火牆開了,外界無法訪問到網路。關一下就好了
    }

}

5、效果圖

相關推薦

本地檔案到hadoop的hdfs檔案系統

引言:通過Java本地把windows裡的檔案資源上傳到centOs環境下的 hdfs檔案系統裡,中間遇到了很多問題,不過最終還是把檔案上傳到了hdfs裡了 環境:centos-7.0,hadoop.2.8.5.gz,jdk1.8,eclipse 1、下載hadoop.2

Linux本地檔案到HDFS檔案系統

上傳 切換使用者 su hdfs 檢視hdfs檔案系統目錄檔案 hdfs dfs -ls /user/tgm 上傳檔案 hdfs dfs -put 本地檔案目錄 HDFS檔案目錄 刪除檔案

(4)通過呼叫hadoop的java api實現本地檔案到hadoop檔案系統

(1)首先建立java project 選擇eclipse選單上File->New->Java Project。 並命名為UploadFile。 (2)新增必要的hadoop jar包 右鍵選擇JRE System Library,選擇

Hadoop:本地檔案(window系統)定時獲取檔案至HDFS檔案(兩個虛擬機器)系統 Java 實現

實現功能:定時日誌採集並上傳至HDFS檔案系統的Java API實現 環境+工具:windows  +  虛擬機器Centos * 2  +  eclipse  +  windows下編譯的Hadoop jar包  +  Hadoop叢集 一、流程        1)啟

藍鯨平臺本地檔案ERR_CONNECTION_RESE報錯處理client intended to send too large body:,server: paas.blueking.com

[[email protected] etc]# pwd /data/bkce/etc [[email protected] etc]# vim nginx.conf [[email protected] nginx]# pw

github 本地git和刪除檔案

提交程式碼 $ git init                               # 初始化 git 專案 $ git

Centos安裝lrzsz與本地終端、下載檔案

一、首先安裝lrzsz yum -y install lrzsz 二、命令 1.上傳檔案,執行命令rz,會跳出檔案選擇視窗,選擇好檔案,點選確認即可。 rz 執行rz命令後彈出選擇檔案視窗,找到要上傳的檔案後確認,檔案會被上傳到Centos當前目錄下 2.下載檔案,執行命令sz sz 檔名 執

Linux伺服器檔案和windows本機檔案方法(本地檔案Linux,Linux檔案下載到本機)

1、windows系統中下載XShell安裝檔案。下載地址:https://www.newasp.net/soft/384562.html  2、安裝之後,新建會話輸入遠端linux的賬號和密碼。 3、上傳檔案:在shell終端模擬器中輸入命令rz,即可從本機選擇檔案利用Zmodem上傳到伺服器

linux系統和下載檔案(命令列)

SecureCRT與linux互相上傳和下載檔案(命令列) 在scrt中檔案的上傳或者下載除了使用命令列以後可以通過ftp,今天咋們就用命令列rz實現檔案的上傳, 上傳 1. 檔案的上傳

SecureCRT 6.5從本地檔案到linux虛擬機器

前提:你的電腦已經安裝虛擬機器,我安裝的是VMware;並且在你的虛擬機器上面已經安裝linux,我安裝的是CentOS,建議安裝CentOS或者 Red Hat,尤其是紅帽,你遇到問題,在網上可以很快查到解決方法; 1,配置SecureCRT:選項-->會話選項--

XShell本地檔案到Ubuntu及從Ubuntu下載檔案本地

使用XShell本地上傳檔案到Ubuntu上及從Ubuntu下載檔案到本地。 1.第一種方法是最常用的 :如果下載了Xshell和Xftp,Ctrl+Alt+F就可以選擇檔案的互傳了!(虛擬機器/雲伺服器通用)--只要相互間能ping得通。 2.第二種方法 :

解決Moodle自定義form的檔案,會被系統自動刪除

解決Moodle自定義form的檔案上傳,會被系統自動刪除 問題: 二次開發Moodle的時候,在繼承系統自帶moodleform類來實現表單提交時,通過使用系統自帶的檔案上傳(filemanager、filepicker)會出現檔案上傳一段時間後會自動被系統刪除(丟失

本地檔案,資料夾 到gitlab 專案分支

檔案上傳一般都是上傳到master分支如何上傳到別的分支1. git init 生成本地./git 檔案git init2. 新增需要上傳的檔案git add *         #需要上傳的檔案  資料夾3. 對上傳的檔案進行說明    git commit -m "**"

windows本地檔案到遠端windows伺服器

 步驟: 1.“開始”--“執行”--輸入“mstsc”或者“windows鍵+R 組合鍵,再輸入mstsc. 2.連線之前點“選項”->“本地資源”,再在“本地裝置”中選中“磁碟驅動器”(win8上是驅動器,一樣),然後連線到遠端計算機後,在左側的目錄樹中找到

Centos 與本地終端 、下載 檔案

首先安裝lrzsz # yum -y install lrzsz 1.上傳檔案,執行命令rz,會跳出檔案選擇視窗,選擇好檔案,點選確認即可。 # rz 執行rz命令後彈出選擇檔案視窗,找到要上傳的檔案後確認,檔案會被上傳到Centos當前目錄下 2.下載檔案,執行命令sz # sz 檔名 執行 sz命

關於在一個form表單同時多個檔案和文字資訊的解決方案。。。

執行環境:tomcat5.0.30+springframework步驟:1。定義一個form表單index.jsp和error.jsp**************************************index.jsp************************

通過javaApi 從本地檔案到叢集

獲取本地檔案工具類import java.io.*; public class GetLocalFile { public static String getLocalFile(String

SpringBoot圖片(三)——呼叫檔案專案的方法(同時啟動兩個專案)

簡單說明:圖片上傳有一個專門的工程A,提供了圖片的上傳和下載預覽,工程B涉及到圖片上傳以及回顯,都是呼叫的工程A的方法,言外之意就是要同時啟動兩個專案。 程式碼: //工程B的html程式碼 <div class="col-md-12"> <label class="cont

MySQL修改預設Blob資料型別大小(解決1M以上檔案失敗的問題)

如果需要在MySQL中儲存二進位制資料,那麼肯定會用到 BLOB 型別的欄位。MySQL中,BLOB是個型別系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個型別之間的唯一區別是在儲存檔案的最大大小的不同。 MySQL的四種 BLOB 型別: (單位:位元

PHP中curl模擬post及接收檔案

public function Action_Upload(){ $this->path_config(); exit(); $furl="@d:\develop\JMFrameworkWithDemo.rar"; $url= "http://localh