大數據入門:Hadoop安裝、環境配置及檢測

来源:https://www.cnblogs.com/hynazwaa/archive/2018/11/25/10015759.html
-Advertisement-
Play Games

@[toc] Hadoop所用安裝包和配置文件等我找到最方便使用的方式再上傳到博客,如果有需要也歡迎找我分享。 這篇博客是建立在我另一篇博客的基礎上,建議先瀏覽博文 "大數據入門第一篇:maven項目的搭建" 在windows下, 1.導包Hadoop包 我用的是破解版的文件,不需要安裝,直接解壓到 ...


目錄


@


Hadoop所用安裝包和配置文件等我找到最方便使用的方式再上傳到博客,如果有需要也歡迎找我分享。


在windows下,

1.導包Hadoop包

我用的是破解版的文件,不需要安裝,直接解壓到D盤下
在這裡插入圖片描述


2.配置環境變數

  • 接下來配置環境變數,相信配置過jdk的同學們對這一步應該不算陌生。

我的電腦——>屬性——>高級系統設置——>環境變數——>系統變數——>編輯Path,增加 %HADOOP_HOME%\bin ——>新建一個變數名為 HADOOP_HOME,變數值為 hadoop安裝路徑的系統變數——>確定操作——>完成
在這裡插入圖片描述

在這裡插入圖片描述

找到系統變數,編輯Path
在這裡插入圖片描述

加上 %HADOOP_HOME%\bin即可
在這裡插入圖片描述

確定之後,新建一個系統變數
在這裡插入圖片描述

在這裡插入圖片描述
然後依次確定剛纔的操作,配置環境變數工作完成。


3.把winutil包拷貝到Hadoop bin目錄下

在這裡插入圖片描述


4.把Hadoop.dll放到system32下

路徑:C:\Windows\System32
在這裡插入圖片描述


5.檢測Hadoop是否正常安裝

5.1在maven項目中檢測,將配置文件放入resource包下

在這裡插入圖片描述

5.2然後通過一個簡單的wordcount程式檢測Hadoop是否安裝成功

先在本地電腦寫一個txt文件,內容隨便輸入,
如:
在這裡插入圖片描述

5.3保存好之後,寫程式:

(檢測這裡將程式複製過去就可以,先不用理解,後續學習)

package com.oracle.demo.mr;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;

public class WordCount {
    public class WcMapper extends Mapper<LongWritable,Text,Text,IntWritable> {
        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            String line = value.toString();
            String[] strs = line.split(" ");
            for (String s:strs){
                Text outkey = new Text(s);
                IntWritable outvalue = new IntWritable(1);
                context.write(outkey,outvalue);
            }
        }
    }
    public class WcReduce extends Reducer<Text,IntWritable,Text,IntWritable> {
        @Override
        protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int count = 0;
            for (IntWritable n:values){
                count += n.get();

            }
            context.write(key,new IntWritable(count));
        }
    }
    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
        Job job = Job.getInstance();

        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);

        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);

        job.setMapperClass(com.oracle.demo.mr.WcMapper.class);
        job.setReducerClass(com.oracle.demo.mr.WcReduce.class);

        FileInputFormat.setInputPaths(job,new Path("E:\\BigData\\input.txt"));
        FileOutputFormat.setOutputPath(job,new Path("E:\\BigData\\output"));

        job.waitForCompletion(true);
    }
}

註意:
在這裡插入圖片描述
運行之後控制台顯示:
在這裡插入圖片描述
。。。
在這裡插入圖片描述
。。。
在這裡插入圖片描述

表示運行成功,沒有錯誤

5.4最後我們打開輸出文件查看:

在這裡插入圖片描述

結果是:
在這裡插入圖片描述
此刻,表示Hadoop安裝成功,大功告成了。


6.容易出現的錯誤:

6.1.導包錯誤

6.2.輸出文件存在

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory file:/E:/BigData/output already exists
在這裡插入圖片描述
如何解決:之前運行的輸出文件刪除即可。

6.3.環境搭建或配置等錯誤

在這裡插入圖片描述


這篇博客是我自己安裝完之後寫出來的,如果過程中有什麼疏漏或者疑問,歡迎和我交流。安裝過程中也許會遇到一些自己解決不了的錯誤,不要急躁,慢慢找方法解決就好了,希望你能成為一個優秀的程式員。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 分頁機制 在虛擬記憶體中,頁表是個映射表的概念, 即從進程能理解的線性地址(linear address)映射到存儲器上的物理地址(phisical address). 很顯然,這個頁表是需要常駐記憶體的東西, 以應對頻繁的查詢映射需要(實際上,現代支持VM的處理器都有一個叫TLB的硬體級頁表緩存部 ...
  • -c :新賬號passwd檔的說明欄 -d :新賬號每次登錄時所使用的home_dir,預設值為default_home內login名稱,並當成登錄時目錄名稱 -e :*賬號終止日期,日期的指定格式為MM/DD/YY -g :*group(組)名稱或以數字來做用戶登錄的起始組。 -G :*定義此用戶 ...
  • 1、GROUP=100 #依賴於/etc/login.defs的USE RGRUUPS_ENAB參數,如果為no,則在此處控制 2、HOME=/home #把用戶的家路徑健在/home中 3、INACTIVE=-1 #是否啟用賬戶過期停權,-1表示不啟用 4、EXPIRE= #賬號終止日期,不設置表 ...
  • 原創作品,轉載請在文章頭部(顯眼位置)註明出處:https://www.cnblogs.com/sunshine5683/p/10014724.html 要在linux學習的路上越走越遠,總結是必不可少的!接下來繼續總結內容.... 1、$ vim /etc/security/limits.conf ...
  • 查詢Linux系統負載情況,一般需要瞭解三個方面的信息: 1、Linux系統配置。如Linux版本號、CPU、記憶體、網路、磁碟等; 2、收集系統負載信息的手段。常用的工具包有sysstat和procps等。 3、查詢結果分析。通過工具包獲取系統負載信息,要具體分析系統是否負載、某項指標參數是否超標、 ...
  • SqlServer 操作 JSON Intro Sql Server 從 2016 開始支持了一些 json 操作,最近的項目里也是好多地方直接用欄位直接存成了 json ,需要瞭解一下怎麼在 Sql Server 中操作 JSON. JSON支持適用於 SqlServer 2016 及以上版本 和 ...
  • 轉自:http://www.maomao365.com/?p=7847摘要: 為了更好的記錄資料庫中存儲過程腳本的變化情況,下文采用資料庫觸發器來自動記載每次“存儲過程”的變化(新增或修改),如下所示: 實驗環境:sql server 2008 R2 <hr />處理方法:1 .master資料庫下 ...
  • 原創作品,歡迎轉載,轉載請在文章顯眼位置註明出處:https://www.cnblogs.com/sunshine5683/p/10016569.html 開始之前先註意:在linux中切換到sqlplus,進行命令操作時候,退格鍵有可能不能用,出現^H的情況,這時候將退格鍵和Ctrl鍵一起使用,問 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...