網站用戶行為分析——Hadoop的安裝(單機和偽分散式)

来源:https://www.cnblogs.com/baojianxin/archive/2018/07/05/9270311.html
-Advertisement-
Play Games

Hadoop安裝方式 Hadoop的安裝方式有三種,分別是單機模式,偽分散式模式,偽分散式模式,分散式模式。 單機模式:Hadoop預設模式為非分散式模式(本地模式),無需進行其他配置即可運行。非分散式即單Java進程,方便進行調試。 偽分散式模式:Hadoop可以在單節點上以偽分散式的方式運行,H ...


Hadoop安裝方式

  Hadoop的安裝方式有三種,分別是單機模式,偽分散式模式,偽分散式模式,分散式模式。

  單機模式:Hadoop預設模式為非分散式模式(本地模式),無需進行其他配置即可運行。非分散式即單Java進程,方便進行調試。

  偽分散式模式:Hadoop可以在單節點上以偽分散式的方式運行,Hadoop進程以分離的Java進程來運行,節點既作為NameNode也作為DataNode,同時,讀取的是HDFS中的文件。

  分散式模式:使用多個節點構成集群環境來運行Hadoop。


Hadoop版本

  Hadoop 有兩個主要版本,Hadoop 1.x.y 和 Hadoop 2.x.y 系列,Hadoop 2.x 版本在不斷更新,新版是相容舊版的。


  裝好了 Ubuntu 系統之後,在安裝 Hadoop 前還需要做一些必備工作。


創建Hadoop用戶

  如果安裝 Ubuntu 的時候不是用的 “hadoop” 用戶,那麼需要增加一個名為 hadoop 的用戶。

  (1)首先按 ctrl+alt+t 打開終端視窗,輸入如下命令創建新用戶 :

  sudo useradd -m hadoop -s /bin/bash

   這條命令創建了可以登陸的 hadoop 用戶,並使用 /bin/bash 作為 shell。

  • sudo是Ubuntu中一種許可權管理機制,管理員可以授權給一些普通用戶去執行一些需要root許可權執行的操作。當使用sudo命令時,就需要輸入您當前用戶的密碼。
  • 在Linux的終端中輸入密碼,終端是不會顯示任何你當前輸入的密碼,也不會提示你已經輸入了多少字元密碼。而在Windows系統中,輸入密碼一般都會以“*”表示你輸入的密碼字元。
  • Ubuntu中終端輸入的命令一般都是使用英文輸入。Linux中英文的切換方式是使用鍵盤“shift”鍵來切換,也可以點擊頂部菜單的輸入法按鈕進行切換。Ubuntu自帶的Sunpinyin中文輸入法已經足夠使用。
  • 在Ubuntu終端視窗中,複製粘貼的快捷鍵需要加上“shift”,即粘貼是 “ctrl+shift+v”。

  (2)接著使用如下命令設置密碼,可簡單設置為 hadoop,按提示輸入兩次密碼:

  sudo passwd hadoop

  (3)可為 hadoop 用戶增加管理員許可權,方便部署,避免一些棘手的許可權問題:

  sudo adduser hadoop sudo

  (4)最後註銷當前用戶(點擊屏幕右上角的齒輪,選擇註銷),返回登陸界面。在登陸界面中選擇剛創建的 hadoop 用戶進行登陸。

  在我的電腦上,第一次註銷用戶後,整個界面只顯示出來桌面背景,圖形界面無法使用,最初以為是我在創建用戶的過程中出了什麼問題,重啟了幾次電腦,再次進入Ubuntu後,註銷用戶的功能可以正常使用了。


 更新apt

  apt(Advanced Packaging Tool)是Linux下的一款安裝包管理工具,是一個客戶/伺服器系統。

  用 hadoop 用戶登錄後,先更新一下 apt,後續使用 apt 安裝軟體,如果沒更新可能有一些軟體安裝不了。按 ctrl+alt+t 打開終端視窗,執行如下命令:

  sudo apt-get update

  若出現如下 “Hash校驗和不符” 的提示,可通過更改軟體源來解決。若沒有該問題,則不需要更改。從軟體源下載某些軟體的過程中,可能由於網路方面的原因出現沒法下載的情況,那麼建議更改軟體源。

  (1)首先點擊左側任務欄的【系統設置】(齒輪圖標),選擇【軟體和更新】。

  (2)點擊 “下載自” 右側的方框,選擇【其他節點】。

  (3)在列表中選中【mirrors.aliyun.com】,並點擊右下角的【選擇伺服器】,會要求輸入用戶密碼,輸入即可。

  (4)接著點擊關閉,此時會提示列表信息過時,點擊【重新載入】。

  (5)最後耐心等待更新緩存即可。更新完成會自動關閉【軟體和更新】這個視窗。如果還是提示錯誤,請選擇其他伺服器節點如 mirrors.163.com 再次進行嘗試。更新成功後,再次執行 sudo apt-get update 就正常了。

  後續需要更改一些配置文件,需要安裝vim。安裝軟體時若需要確認,在提示處輸入 y 即可。

  sudo apt-get install vim

  vim的常用模式有分為命令模式,插入模式,可視模式,正常模式。

  (1)正常模式主要用來瀏覽文本內容。一開始打開vim都是正常模式。在任何模式下按下Esc鍵就可以返回正常模式。

  (2)插入編輯模式則用來向文本中添加內容的。在正常模式下,輸入i鍵即可進入插入編輯模式。

  (3)退出vim:如果有利用vim修改任何的文本,一定要記得保存。Esc鍵退回到正常模式中,然後輸入:wq即可保存文本並退出vim


安裝SSH、配置SSH無密碼登陸

  集群、單節點模式都需要用到 SSH 登陸(類似於遠程登陸,可以登錄某台 Linux 主機,並且在上面運行命令),Ubuntu 預設已安裝了 SSH client,此外還需要安裝 SSH server

  sudo apt-get install openssh-server

  安裝後,可以使用如下命令登陸本機:

  ssh localhost

  此時會有如下提示(SSH首次登陸提示),輸入 yes 。然後按提示輸入密碼 hadoop,這樣就登陸到本機了。

  但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。

  首先退出剛纔的 ssh,就回到了我們原先的終端視窗,然後利用 ssh-keygen 生成密鑰,並將密鑰加入到授權中:

  exit                       # 退出剛纔的 ssh localhost
  cd ~/.ssh/                    # 若沒有該目錄,請先執行一次ssh localhost
  ssh-keygen -t rsa              # 會有提示,都按回車就可以
  cat ./id_rsa.pub >> ./authorized_keys  # 加入授權
  • 在 Linux 系統中,~ 代表的是用戶的主文件夾,即 “/home/用戶名” 這個目錄,如你的用戶名為 hadoop,則 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 後面的文字是註釋,只需要輸入前面命令即可。

  此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了。


 安裝Java環境

  Java環境可選擇 Oracle 的 JDK,或是 OpenJDK,新版本在 OpenJDK 1.7 下是沒問題的。為圖方便,這邊直接通過命令安裝 OpenJDK 7。

  sudo apt-get install default-jre default-jdk

  上述安裝過程需要訪問網路下載相關文件,需要保持聯網狀態。安裝結束以後,需要配置JAVA_HOME環境變數,可以在Linux終端中輸入下麵命令打開當前登錄用戶的環境變數配置文件.bashrc:

  vim ~/.bashrc

  在文件最前面添加如下單獨一行(註意,等號“=”前後不能有空格),然後保存退出:

  export JAVA_HOME=/usr/lib/jvm/default-java

  接下來,要讓環境變數立即生效,執行如下代碼:

  source ~/.bashrc    # 使變數設置生效

  執行上述命令後,可以檢驗一下是否設置正確:

  echo $JAVA_HOME     # 檢驗變數值
  java -version
  $JAVA_HOME/bin/java -version  # 與直接執行java -version一樣

  至此,就成功安裝了Java環境。下麵就可以進入Hadoop的安裝。

  在JDK安裝過程中,出現了下麵的問題

  (1)vim ~/.bashrc打開環境變數配置文件之後,將游標直接移動到了文件的起始位置,然後將“export JAVA_HOME=/usr/lib/jvm/default-java”粘貼到了文件中,由於不清楚vim的使用,在網上查找到了“保存並退出”的方法,按住Ctrl,再按兩下Z,然後,然後我也忘了發生了啥。

  (2)以為經過上面的操作就配置完環境變數了,所以在終端中,輸入了上面代碼框中的三條代碼檢驗環境變數是否配置完成,發現環境變數沒有配置成功。

  (3)將終端關閉,重新打開,發現終端的頂部出現了錯誤提示:“export JAVA_HOME=/usr/lib/jvm/default-java # ~/.bashrc:executed by bash(1) for non-login shells”,多次打開、關閉終端,這個提示都無法消失,考慮重啟電腦。

  (4)重啟電腦,輸入密碼登錄Jesse用戶,能夠正常使用。註銷用戶後,輸入密碼登錄hadoop用戶,界面黑屏,正中央彈出提示框:“export JAVA_HOME=/usr/lib/jvm/default-java # ~/.bashrc:executed by bash(1) for non-login shells”......,點擊提示框下方的確定按鈕沒有反應。

  (5)把這個錯誤的情況反映給了俺哥,分析錯誤原因是我在配置環境變數的時候,將.bashrc文件寫錯了,.bashrc文件主要保存個人的一些個性化設置,如命令別名、路徑等,個人暫時理解成,每次登陸用戶都會啟動執行這個文件,這個文件出錯,會導致用戶無法登錄進圖形界面,俺哥給出的解決方案是,把這個文件修改回去,由於我對這個文件的修改僅限於在文件起始位置添加了那一行代碼,所以需要將那一行代碼刪除。

  (6)考慮退出圖形界面,在終端里修改那個文件。按“CTRL+ALT+F2”退出圖形界面,輸入用戶密碼登錄,再輸入vim ~/.bashrc,打開文件,用DEL鍵刪除了前面添加的代碼,“ESC”,“:wq”之後提示“readonly”,表明這個文件不可修改。

  (7)思考了一下vim ~/.bashrc這行代碼的意義,決定登錄Jesse用戶,然後在Jesse用戶的圖形界面中找到hadoop文件夾下的.bashrc,在編輯器中刪除第一行代碼,emmmm,沒有保存的許可權。

  (8)emmmm,考慮到這幾次操作都是因為許可權的原因操作失敗,想到了sudo命令,打開終端,輸入sudo vim ~/.bashrc,輸入Jesse用戶的密碼,在編輯器中刪除第一行代碼,然後“:wq”,保存成功了。也就是說,hadoop的.bashrc文件被修改回去了。

  (9)註銷Jesse用戶,重新登錄hadoop用戶,在hadoop用戶的圖形界面中,找到了hadoop文件夾下的.bashrc文件,直接在第一行添加“export JAVA_HOME=/usr/lib/jvm/default-java ”,保存成功,環境變數設置正確。

  emmmm,上面這波操作原因是沒有將“export JAVA_HOME=/usr/lib/jvm/default-java 單獨添加到.bashrc的第一行。


安裝Hadoop2  

  如果使用虛擬機方式安裝Ubuntu系統,請用虛擬機中的Ubuntu自帶firefox瀏覽器下載,才能把hadoop文件下載虛擬機ubuntu中。不要使用Windows系統下的瀏覽器下載,文件會被下載到Windows系統中,虛擬機中的Ubuntu無法訪問外部Windows系統的文件。

  如果是使用雙系統方式安裝Ubuntu系統,進入Ubuntu系統,在Ubuntu系統打開firefox瀏覽器訪下載hadoop文件。

  Hadoop 2 可以通過 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下載,一般選擇下載最新的穩定版本,即下載 “stable” 下的 hadoop-2.x.y.tar.gz 這個格式的文件,這是編譯好的,另一個包含 src 的則是 Hadoop 源代碼,需要進行編譯才可使用。

  下載完成後,hadoop文件預設的下載位置是“下載”文件夾。選擇將 Hadoop 安裝至 /usr/local/ 中:

    sudo tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local  # 解壓到/usr/local中(根據所下載的hadoop版本進行修改)
    cd /usr/local/
    sudo mv ./hadoop-2.6.0/ ./hadoop                       # 將文件夾名改為hadoop(根據所下載的hadoop版本進行修改)
    sudo chown -R hadoop ./hadoop                          # 修改文件許可權    
  • tar -zxf ~/下載/spark-2.1.0.tgz -C /usr/local/ #把spark-2.1.0.tgz這個壓縮文件解壓到/usr/local目錄下
  • cd .. #返回上一級目錄
  • cd ~ #進入到當前Linux系統登錄用戶的主目錄(或主文件夾)。在 Linux 系統中,~代表的是用戶的主文件夾,即“/home
  • mv spark-2.1.0 spark #把spark-2.1.0目錄重新命名為spark
  • chown -R hadoop:hadoop ./spark # hadoop是當前登錄Linux系統的用戶名,把當前目錄下的spark子目錄的所有許可權,賦予給用戶hadoop

  Hadoop 解壓後即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:

  cd /usr/local/hadoop
  ./bin/hadoop version
  • 相對路徑和絕對路徑:註意命令中的相對路徑與絕對路徑,比如 ./bin/..../etc/... 等包含 ./ 的路徑,均為相對路徑,以 /usr/local/hadoop 為當前目錄。例如在 /usr/local/hadoop 目錄中執行 ./bin/hadoop version 等同於執行 /usr/local/hadoop/bin/hadoop version。可以將相對路徑改成絕對路徑來執行,但如果你是在主文件夾 ~ 中執行 ./bin/hadoop version,執行的會是 /home/hadoop/bin/hadoop version,就不是我們所想要的了。

Hadoop單機配置(非分散式)

  Hadoop 預設模式為非分散式模式(本地模式),無需進行其他配置即可運行。非分散式即單 Java 進程,方便進行調試。  

  可以執行例子來感受下 Hadoop 的運行。Hadoop 附帶了豐富的例子(運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

  • wordcount:假設現在有n個文本,WordCount程式就是利用MR計算模型來統計這n個文本中每個單詞出現的總次數。
  • grep:該程式實現的是對指定文檔中指定單詞的詞頻進行計算。

   在此我們選擇運行 grep 例子,我們將 input 文件夾中的所有文件作為輸入,篩選當中符合正則表達式 dfs[a-z.]+ 的單詞並統計出現的次數,最後輸出結果到 output 文件夾中。

 

 

 

 

 

 

 

  

  

 


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

-Advertisement-
Play Games
更多相關文章
  • -- # https://dev.mysql.com/doc/refman/8.0/en/charset-database.html -- create database aixinyz; -- 默認為:latin1,以安裝MYSQL時,默認,當害安裝時選了UTF-8就好了,沒有隻能代碼實現 -- ... ...
  • 一. BloB和Text 1. 合成索引 合成索引可以提高大文本欄位BLOB和Text的查詢性能, 合成索引是在表中增加一個欄位存放散列值,這種技術只能用於精確匹配的查詢,可以使用md5()或sha1,crc23() 來生成散列值, 數值型散列值可以提高存儲效率 。下麵演示下 上面展示了合成索引的用 ...
  • 一.大數據發展背景 現今是數據飛速膨脹的大數據時代,大數據強調3V特征,即Volume(量級)、Varity(種類)和Velocity(速度)。 ·Volume(量級):TB到ZB。 ·Varity(種類):結構化到結構化和非結構化。 ·Velocity(速度):批量數據到流數據處理。 據統計全球8 ...
  • 1.SELECT * FROM CT_FIN_RiskItem--先查詢表,確定數據的確不對(cfstatus第一行缺少)2.select * from CT_FIN_RiskItem as of timestamp to_timestamp('2017-04-20 10:45:03', 'yyyy ...
  • 本機環境系統:Debian 9桌面系統:KDE Plasma ## 官網下載自己系統最新穩定版 https://www.mongodb.com/download-center#community 選擇Debian 9 Linux 64-bit x64 ## 解壓 csr@debian:~$ su r ...
  • Preface We all know that Xtrabackup is a backup tool of percona for innodb or Xtradb.It's usually used to back up whole databases physically.But how t ...
  • 資料庫表簡介:物品表 `id` int(11) '物品id,唯一標識', `name` varchar(255) '物品名稱', `level` int(11) '物品類別等級,禮品包為最高級1,類別為2級,詳細物品為3級', `parentId` int(11) '只有3級詳細物品有上級id', ...
  • [20180705]關於hash join 2.txt--//昨天優化sql語句,執行計劃hash join right sna,加入一個約束設置XX欄位not null,邏輯讀從上萬下降到50.--//關於hash join派生的執行計劃,而且hash join還在外連接時支持右關聯,特別是11g ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...