Hadoop的介紹、搭建、環境

来源:http://www.cnblogs.com/Smileing/archive/2017/07/20/7211137.html
-Advertisement-
Play Games

HADOOP背景介紹 1.1Hadoop產生背景 ——分散式文件系統(GFS),可用於處理海量網頁的存儲 ——分散式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。 1.2 什麼是HADOOP 1.3 HADOOP在大數據、雲計算中的位置和關係 1.4Hadoop生態系統 HDFS:分 ...


HADOOP背景介紹

1.1Hadoop產生背景

  1. HADOOP最早起源於NutchNutch的設計目標是構建一個大型的全網搜索引擎,包括網頁抓取、索引、查詢等功能,但隨著抓取網頁數量的增加,遇到了嚴重的可擴展性問題——如何解決數十億網頁的存儲和索引問題。
  2. 2003年、2004谷歌發表的兩篇論文為該問題提供了可行的解決方案。(谷歌為現代技術做了十分大的貢獻!!)

——分散式文件系統(GFS),可用於處理海量網頁的存儲

——分散式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。

  1. Nutch的開發人員完成了相應的開源實現HDFSMAPREDUCE,並從Nutch中剝離成為獨立項目HADOOP,到20081月,HADOOP成為Apache頂級項目,迎來了它的快速發展期。

1.2 什麼是HADOOP

  1. HADOOPapache旗下的一套開源軟體平臺(apache軟體幾乎都開源)
  2. HADOOP提供的功能:利用伺服器集群,根據用戶的自定義業務邏輯,對海量數據進行分散式處理
  3. HADOOP的核心組件有
    1. HDFS(分散式文件系統)
    2. YARN(運算資源調度系統)
    3. MAPREDUCE(分散式  運算編程框架)

1.3 HADOOP在大數據、雲計算中的位置和關係

1. 雲計算是分散式計算、並行計算、網格計算、多核計算、網路存儲、虛擬化、負載均衡等傳統電腦技術和互聯網技術融合發展的產物。藉助IaaS(基礎設施即服務)PaaS(平臺即服務)SaaS(軟體即服務)等業務模式,把強大的計算能力提供給終端用戶。 

2. 現階段,雲計算的兩大底層支撐技術虛擬化”和“大數據技術。 

3. HADOOP則是雲計算的PaaS層的解決方案之一,並不等同於PaaS,更不等同於雲計算本身。

1.4Hadoop生態系統

HDFS:分散式文件系統hdfsMAPREDUCEyarn)元老級大數據處理技術框架,擅長離線數據分析

MAPREDUCE:分散式運算程式開發框架

HIVE:基於大數據技術(文件系統+運算框架)的SQL數據倉庫工具,使用方便,功能豐富。但基於MR會有很大的延遲。

HBASE:基於HADOOP的分散式海量資料庫,離線分析和線上業務通吃, 是 Google Bigtable 的另一套開源實現。

ZOOKEEPER:分散式協調服務基礎組件,提供的功能包括:配置維護、名字服務、 分散式同步、心跳、組服務等

Mahout:基於mapreduce/spark/flink等分散式運算框架的機器學習演算法庫提供可擴展的電腦學習領域的演算法實現,旨在幫助開發人員更加快捷地開發智能 應用程式。

Oozie:工作流調度框架

Sqoop:數據導入導出工具

Flume:日誌數據採集框架

Avro: 基於JSON的數據序列化的系統。

Cassandra: 一套分散式,非關係型存儲系統,類似Google - BigTable。

Chukwa: 用於監控大型分散式系統的數據採集系統。

Pig:提供一個並行執行的數據流框架。

Spark:類似MapReduce的通用並行框架,繼承了其的分散式優勢,只是中間輸出結果存儲 於記憶體中,提供了相對實時性的處理能力

Tez:新的一套分散式執行框架,主要以開發人員為最終用戶構建性能更快、擴展性更強的應 用程式。

1.5Hadoop大數據項目流程圖

1) 數據採集:定製開發採集程式,或使用開源框架FLUME

2) 數據預處理:定製開發mapreduce程式運行於hadoop集群

3) 數據倉庫技術:基於hadoop之上的Hive

4) 數據導出:基於hadoopsqoop數據導入導出工具

5) 數據可視化:定製開發web程式或使用kettle等產品

6) 整個過程的流程調度:hadoop生態圈中的oozie工具或其他類似開源產品

1.6Hadoop集群的安裝

提前準備:虛擬機的正常安裝,網卡啟動成功,Xshell和ftp軟體。jdk的壓縮包,和Hadoop的壓縮包。

 

HadoopMaster1     NameNode  SecondaryNameNode     192.168.242.110

 

HadoopYarn       ResourceManager         192.168.242.111

 

HadoopSlaver1     DataNode    NodeManager     192.168.242.112

 

HadoopSlaver2     DataNode    NodeManager     192.168.242.113

 

HadoopSlaver3     DataNode    NodeManager     192.168.242.114

 1.6.1上傳jdk安裝包(用xftp上傳文件)

  解壓到相應目錄:rpm -ivh ./xxxxx.jdk  ./user/java

  編輯環境變數:為了在各個目錄下能運行JAVA代碼

 

vim /etc/profile
export JAVA_HOME=/usr/java/jvm/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

wq後保存: source  /etc/profile 配置更新

echo java 檢驗 或者 javac java-version

 1.6.2 Hadoop的安裝

1、解壓到相應目錄:cd /usr/local     tar –zxvf ./hadoop-2.7.2.tar.gz

    把目錄修改為hadoop   mv hadoop-2... hadoop
2、修改hadoop-env.sh
     vim  /usr/local/hadoop/etc/hadoop/hadoop-env.sh

  修改export JAVA_HOME 語句為 export JAVA_HOME=/usr/java/default

3、修改core-site.xml 配置埠

cd /usr/local/hadoop/etc/hadoop
vi core-site.xml 

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file://usr/hadoop/hadoop-2.6.4/tmp</value>  //文件存儲的目錄。需要創建
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> //集群Master的埠號
</property>
</configuration>

 

###修改secondaryNamenode中的core-site.xml 配置冷備份
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:/usr/hadoop/hadoop-2.8.0/dfs/fsimage/</value> //需要把映射文件考到這個目錄
</property>
<property>
<name>fs.checkpoint.edits.ir</name>
<value>file:/usr/hadoop/hadoop-2.8.0/dfs/edits/</value>
</property>

4、修改集群hdfs-site.xml配置

vi  hdfs-site.xml

<configuration>

<property>
<name>dfs.namenode.secondary.http-address</name>  //冷備份
<value>HadoopMaster1 :50090</value>
</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoop/data/name</value>//主文件的存儲目錄需要在相應目錄創建

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/home/hadoop/data/data</value>//data文件的存儲目錄需要在相應目錄創建

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.secondary.http.address</name>

<value>hdp-node-01:50090</value>

</property>

</configuration>

5、配hadoop的環境變數 把/usr/hadoop/bin和/usr/hadoop/sbin設到PATH中

vi /etc/profile
  
 export PATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin
  更新:source etc/profile

測試hadoop命令是否可以直接執行,任意目錄下敲hadoop

  1.6.3Yarn的搭建

 配置計算調度系統Yarn和計算引擎Map/Reduce
1  namenode上配置 mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2 yarn-site.xml的配置

<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property> 
<name>yarn.nodemanager.aux-services</name> 
<value>mapreduce_shuffle</value> 
</property> 
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

3啟動yarn集群start-yarn.sh
4 jps觀察啟動結果

  1.6.4搭建五台機器,集群

1、關閉虛擬機,完全克隆複製5份(一個個啟動 修改IP和hostname)

  分別修改虛擬機的ip vim/etc/sysconfig/network-scripts/ifcfg-env33跟之前的圖對應

  修改hostname  vim /etc/hostname  對應之前的名 

2、確認互相能夠ping通,用ssh登陸

在主機創建 .shh目錄 

ssh-keygen  -t rsa

ssh-copy-id (子機IP和自己IP)一直確定完成免密,hosts修改可以改名

3,同時修改所有虛擬機的/etc/hosts,確認使用名字可以ping通

HadoopMaster1      192.168.242.110

HadoopYarn       192.168.242.111

HadoopSlaver1     192.168.242.112

HadoopSlaver2    192.168.242.113

HadoopSlaver3     192.168.242.114

4,修改master上/etc/hadoop/slaves文件,每一個slave占一行(子機的名)

HadoopSlaver1     

 

HadoopSlaver2    

 

HadoopSlaver3

現在集群namenode  datanode已經可以啟動了

  使用start-dfs.sh啟動集群,jps並觀察結果

配置文件詳細信息以後慢慢搭建時會慢慢更改。

現在這個集群完全搭建完畢,過程較長。建議初學者一點一點搭環境。配置文件可能會有問題。後續慢慢更改。

 

 

  

  

 


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

-Advertisement-
Play Games
更多相關文章
  • 生成AWR報告需要dbms_workload_repository包的許可權。一、以oracle用戶登錄到資料庫伺服器二、進入SQLPLUS三、執行腳本@?/rdbms/admin/awrrpt.sql四、設定生成報告的格式說明:不用輸入,預設即可,直接按Enter五、設定報告時間段的天數說明:只導當... ...
  • 因本人較懶,有些圖片缺失和東西寫的比較簡單,請多包涵 編碼規範: 命名的規範(入鄉隨俗) 編碼習慣: 團隊合作: 團隊配置管理軟體: (TFS SVN) 第一章 更改身份驗證模式:伺服器 屬性 安全性 Master: 記錄所有系統信息 Model: 模板 Msdb: 自動備份 Tempdb: 臨時資 ...
  • 昨晚添加完索引之後, 查詢整表的時候拋出Lock wait timeout exceeded; try restarting transaction, 嚇死小白的我, 為什麼條件查詢可以, 整表查不了, 老大說是不是我添加錯了..., 後來找到解決辦法, 原來是死鎖了查看資料庫的隔離級別select... ...
  • 關於時間序列的計算是一個很(也)常(很)用(大)的topic,而且應用範圍很廣,譬如計算同比,環比,根據時間序列預測某個值。必不可少的就是在模型裡面有一個日期的維度。 ...
  • 一、redis配置 1、啟動redis 這裡使用的是windows版本的redis,直接解壓使用就可以了。 註意1: 當運行redis-server時需要註意的是不同的電腦因為配置問題可能無法雙擊啟動。所以需要通過命令提示符的方式進行啟動 這個界面表示redis已經啟動,預設配置 redis.hos ...
  • 本位出處:http://www.cnblogs.com/wy123/p/7211742.html (保留出處並非什麼原創作品權利,本人拙作還遠遠達不到,僅僅是為了鏈接到原文,因為後續對可能存在的一些錯誤進行修正或補充,無他) MySQL中的InnoDB引擎表索引類型有一下幾種(以下所說的索引,沒有特 ...
  • 基本知識方便操作 //創建資料庫 create database databasename; //進入資料庫 use databasename; //顯示表名(可以通過這個語句查看表數量,從而判斷是否導入錯誤) show tables; //在進入資料庫之前顯示所有表 show tables fro ...
  • LVS服務原理以及搭建(理論+乾貨) 版權聲明:本文為yunshuxueyuan原創文章 如需轉載請標明出處: https://my.oschina.net/yunshuxueyuan/blog QQ技術交流群:299142667 一、 LVS簡介 LVS是Linux Virtual Server的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...