Hadoop-2.7.4 集羣快速搭建

Hadoop簡介

2003-2004年,Google公開了部分GFS和Mapreduce思想的細節,以此爲基礎Doug Cutting等人用了2年業餘時間實現了DFS和Mapreduce機制,一個微縮版:Nutchjava

Hadoop 於 2005 年秋天做爲 Lucene的子項目 Nutch的一部分正式引入Apache基金會。2006 年 3 月份,Map-Reduce 和 Nutch Distributed File System (NDFS) 分別被歸入稱爲 Hadoop 的項目中node

Hadoop

分佈式存儲系統HDFS (Hadoop Distributed File System )web

  • 分佈式存儲系統
  • 提供了 高可靠性、高擴展性和高吞吐率的數據存儲服務

分佈式計算框架MapReduceapache

  • 分佈式計算框架
  • 具備 易於編程、高容錯性和高擴展性等優勢。

HDFS優勢

高容錯性編程

  • 數據自動保存多個副本
  • 副本丟失後,自動恢復

適合批處理segmentfault

  • 移動計算而非數據
  • 數據位置暴露給計算框架

適合大數據處理centos

  • GB 、TB 、甚至PB 級數據
  • 百萬規模以上的文件數量
  • 10K+ 節點

可構建在廉價機器上服務器

  • 經過多副本提升可靠性
  • 提供了容錯和恢復 機制

HDFS缺點

低延遲數據訪問併發

  • 好比毫秒級
  • 低延遲與高吞吐率

小文件存取app

  • 佔用NameNode 大量內存
  • 尋道時間超過讀取時間

併發寫入、文件隨機修改

  • 一個文件只能有一個寫者
  • 僅支持append

準備工做

環境

JDK:1.8  
Hadoop Release:2.7.4  
centos:7.3  

node1(master)  主機: 192.168.252.121  
node2(slave1)  從機: 192.168.252.122  
node3(slave2)  從機: 192.168.252.123

安裝 JDK

CentOs7.3 安裝 JDK1.8

SSH 免祕鑰

CentOs7.3 Hadoop 用戶 ssh 免密登陸

建立用戶

建議建立一個單獨的用戶Hadoop以從Unix文件系統隔離Hadoop文件系統

$ useradd hadoop
$ passwd hadoop
New password: 
Retype new password:

受權 root 權限,在root下面加一條hadoophadoop ALL=(ALL) ALL

$ chmod 777 /etc/sudoers
$ vi /etc/sudoers
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       NOPASSWD:ALL
$ pkexec chmod 0440 /etc/sudoers

免祕鑰登陸

安裝

下載解壓

在 ndoe1 上操做

su hadoop
cd /home/hadoop/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz
tar -zxvf hadoop-2.7.4.tar.gz

環境變量

若是是對全部的用戶都生效就修改vi /etc/profile 文件
若是隻針對當前用戶生效就修改 vi ~/.bahsrc 文件

sudo vi /etc/profile
#hadoop
export PATH=${HADOOP_HOME}/bin:$PATH
export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/

使環境變量生效,運行 source /etc/profile使/etc/profile文件生效

配置Hadoop

進入hadoop 配置文件目錄

cd /home/hadoop/hadoop-2.7.4/etc/hadoop/

編輯 hadoop-env.sh 文件,找到 JAVA_HOME 改成 JDK 的安裝目錄

sudo vi hadoop-env.sh
export JAVA_HOME=/lib/jvm

修改 core-site.xml

打開 core-site.xml文件並對其進行編輯,以下圖所示。

vi core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.4/tmp</value>
    </property>
</configuration>

修改 hdfs-site.xml

打開hdfs-site.xml文件並對其進行編輯,以下圖所示。

vi hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node1:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.4/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.4/tmp/dfs/data</value>
    </property>
</configuration>

修改 mapred-site.xml

目錄下麼沒有這個文件,這有一個模板,咱們須要先拷貝一份

cp mapred-site.xml.template mapred-site.xml
 vi mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>
</configuration>

修改 yarn-site.xml

vi yarn-site.xml
<configuration>
    
    <!-- Site specific YARN configuration properties -->
    
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

配置集羣

複製節點

將 hadoop-2.7.4 文件夾重打包後複製到其餘子節點

cd /home/hadoop/

tar zcvf hadoop.tar.gz hadoop-2.7.4
scp hadoop.tar.gz hadoop@node2:/home/hadoop/
scp hadoop.tar.gz hadoop@node3:/home/hadoop/

在其餘子節點 解壓

tar -zxvf hadoop.tar.gz

配置slaves文件

修改(Master主機)node1/etc/hadoop/slaves該文件指定哪些服務器節點是datanode節點。刪除locahost,添加全部datanode節點的主機名

cd /home/hadoop/hadoop-2.7.4/etc/hadoop/

[hadoop@node1 hadoop]$ cat slaves 
node2
node3

集羣操做

Format

格式化namenode和datanode並啓動,(在master上執行就能夠了 不須要在slave上執行)

cd /home/hadoop/hadoop-2.7.4/bin

./hadoop namenode -format
./hadoop datanode -format

啓動 hadoop

關閉防火牆

systemctl stop firewalld.service
cd /home/hadoop/hadoop-2.7.4/sbin


./start-dfs.sh
./start-yarn.sh
./mr-jobhistory-daemon.sh start historyserver

或者

./start-all.sh

./mr-jobhistory-daemon.sh start historyserver

查看進程服務

查看啓動進程,缺乏如下任一進程都表示出錯

$ jps
2528 NameNode
2720 SecondaryNameNode
2872 ResourceManager
3151 JobHistoryServer

查看端口占用狀況

netstat -tnlp | grep java

訪問node1

http://192.168.252.121:50070

http://192.168.252.121:8088

圖片描述

圖片描述

圖片描述

中止 hadoop

cd /home/hadoop/hadoop-2.7.4/sbin
./stop-all.sh

或者 jps 查看進程kill

Contact

  • 做者:鵬磊
  • 出處:http://www.ymq.io
  • Email:admin@souyunku.com
  • 版權歸做者全部,轉載請註明出處
  • Wechat:關注公衆號,搜雲庫,專一於開發技術的研究與知識分享

關注公衆號-搜雲庫

相關文章
相關標籤/搜索