1. 程式人生 > >Centos7上搭建hadoop3.0.3完全分散式 (.tar.gz)

Centos7上搭建hadoop3.0.3完全分散式 (.tar.gz)

這裡搭建的是3個節點的完全分散式,即1個nameNode,2個dataNode,分別如下:

master    nameNode    192.168.0.249

node1    dataNode    192.168.0.251

node2    dataNode    192.168.0.252

1.首先建立好一個CentOS虛擬機器,將它作為主節點我這裡起名為master,起什麼都行,不固定要求

2.VMware中開啟虛擬機器,輸入java -version,檢查是否有JDK環境,不要用系統自帶的openJDK版本,要自己安裝的版本

3.輸入 firewall-cmd --state,若防火牆處於running狀態,則關閉防火牆

systemctl stop firewalld.service       關閉防火牆

systemctl disable firewalld.service       禁用防火牆

4.輸入mkdir /usr/local/hadoop   建立一個hadoop資料夾

5.將hadoop-3.0.3.tar.gz放到剛建立好的hadoop資料夾中

6.進入hadoop目錄,輸入tar -xvf hadoop-3.0.3.tar.gz 解壓tar包

[[email protected] sbin]# cd /usr/local/hadoop/
[[email protected]

hadoop]# ls
hadoop-3.0.3  hadoop-3.0.3.tar.gz 

7.輸入 vi /etc/profile,配置環境變數。加入如如下內容

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.0.3

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

eg:

8. 輸入 souce /etc/profile ,使環境變數改動生效

9.任意目錄輸入hado,然後按Tab,如果自動補全為hadoop,則說明環境變數配的沒問題,否則檢查環境變數哪出錯了

[[email protected]
~]# hadoop

10.建立3個之後要用到的資料夾,分別如下:

mkdir /usr/local/hadoop/tmp

mkdir -p /usr/local/hadoop/hdfs/name

mkdir /usr/local/hadoop/hdfs/data

建立結果如下:

11.進入hadoop-3.0.3解壓後的 /etc/hadoop 目錄,裡面存放的是hadoop的配置檔案,接下來要修改裡面一些配置檔案

12. 有兩個 .sh 檔案,需要指定一下java的目錄,首先輸入 vi hadoop-env.sh 修改配置檔案

[[email protected] hadoop]# vi hadoop-env.sh

將原有的JAVA_HOME註釋掉,根據自己的JDK安裝位置,精確配置JAVA_HOME如下,儲存並退出

export JAVA_HOME=/usr/local/java/jdk1.8.0_161/

13. 輸入 vi yarn-env.sh 修改配置檔案

[[email protected] hadoop]# vi yarn-env.sh

加入如下內容,指定JAVA_HOME,儲存並退出

export JAVA_HOME=/usr/local/java/jdk1.8.0_161/

14. 輸入 vi core-site.xml 修改配置檔案

[[email protected] hadoop]# vi core-site.xml 

在configuration標籤中,新增如下內容,儲存並退出,注意這裡配置的hdfs:master:9000是不能在瀏覽器訪問的

<!--
        <property>
                <name> fs.default.name </name>
                <value>hdfs://master:9000</value>
                <description>指定HDFS的預設名稱,HDFS的URI</description>
        </property>
        -->

        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
                <description>HDFS的URI</description>
        </property>

        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>節點上本地的hadoop臨時資料夾</description>
        </property>

15. 輸入 vi hdfs-site.xml 修改配置檔案

[[email protected] hadoop]# vi hdfs-site.xml

在configuration標籤中,新增如下內容,儲存並退出

        <property>
                <name>dfs.namenode.http-address</name>
                <value>master:50070</value>
        </property>
        <!--
        <property>
                <name>dfs.datanode.http.address</name>
                <value>master:50075</value>
                <description>
                The datanode http server address and port.
                If the port is 0 then the server will start on a free port.
                </description>
        </property>
        -->

        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/hdfs/name</value>
                <description>namenode上儲存hdfs名字空間元資料 </description>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/hdfs/data</value>
                <description>datanode上資料塊的物理儲存位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
                <description>副本個數,預設是3,應小於datanode機器數量</description>
        </property>

    <!--後增,如果想讓solr索引存放到hdfs中,則還須新增下面兩個屬性-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

16. 輸入 vi mapred-site.xml 修改配置檔案

[[email protected] hadoop]# vi mapred-site.xml

在configuration標籤中,新增如下內容,儲存並退出

        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <description>指定mapreduce使用yarn框架</description>
        </property>

17. vi yarn-site.xml 修改配置檔案

[[email protected] hadoop]# vi yarn-site.xml

在configuration標籤中,新增如下內容,儲存並退出

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
                <description>指定resourcemanager所在的hostname</description>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
                <description>
                NodeManager上執行的附屬服務。
                需配置成mapreduce_shuffle,才可執行MapReduce程式
                </description>
        </property>

18. 輸入 vi workers 修改配置檔案(老版本是slaves檔案,3.0.3 用 workers 檔案代替 slaves 檔案)

[[email protected] hadoop]# pwd
/usr/local/hadoop/hadoop-3.0.3/etc/hadoop
[[email protected] hadoop]# vi workers 

將localhost刪掉,加入如下內容,即dataNode節點的主機名

node1
node2

19. 將虛擬機器關閉,再複製兩份虛擬機器,重新命名為node1,node2,注意這裡一定要關閉虛擬機器,再複製

20. 將3臺虛擬機器都開啟,後兩臺複製的虛擬機器開啟時,都選擇“我已複製該虛擬機器”

21. 在master機器上,輸入vi /etc/hostname,將localhost改為master,儲存並退出

22. 在node1機器上,輸入 vi /etc/hostname,將localhost改為node1,儲存並退出

23. 在node2機器上,輸入 vi /etc/hostname,將localhost改為node2,儲存並退出

24. 在三臺機器分別輸入 vi /etc/hosts 修改檔案,其作用是將一些常用的網址域名與其對應的IP地址建立一個關聯,當用戶在訪問網址時,系統會首先自動從Hosts檔案中尋找對應的IP地址

三個檔案中都加入如下內容,儲存並退出,注意這裡要根據自己實際IP和節點主機名進行更改,IP和主機名中間要有一個空格

192.168.0.249 master
192.168.0.251 node1
192.168.0.252 node2

25. 配置三臺機器間的免密登入ssh (搭hadoop必須要配免密登入)

26. 如果node節點還沒有hadoop,則master機器上分別輸入如下命令將hadoop複製

scp /usr/local/hadoop/* [email protected]:/usr/local/hadoop

scp /usr/local/hadoop/* [email protected]:/usr/local/hadoop

27. 在master機器上,任意目錄輸入 hdfs namenode -format 格式化namenode,第一次使用需格式化一次,之後就不用再格式化,如果改一些配置檔案了,可能還需要再次格式化

hdfs namenode -format

格式化完成。

28. 在master機器上,進入hadoop的sbin目錄,輸入 ./start-all.sh 啟動hadoop(若只配了hdfs,則可以 輸入 ./start-dfs.sh 啟動hdfs)

[[email protected] sbin]# ./start-dfs.sh 

29. 輸入jps檢視當前java的程序,

該命令是JDK1.5開始有的,作用是列出當前java程序的PID和Java主類名,nameNode節點除了JPS,還有3個程序,啟動成功

若為了只使用hdfs而只配了hdfs,採用 ./start-dfs.sh 啟動, 則

30. 在node1機器和node2機器上分別輸入 jps 檢視程序如下,說明配置成功

若只配置了hdfs, 採用 ./start-dfs.sh 啟動。 則

31. 在瀏覽器訪問nameNode節點的8088埠和50070埠可以檢視hadoop的執行狀況

32. 在master機器上,進入hadoop的sbin目錄,輸入 ./stop-all.sh 關閉hadoop 或 輸入 ./stop-dfs.sh 關閉dfs

遇到的坑:Attempting to operate on hdfs namenode as root

寫在最前注意:
1、master,slave都需要修改start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四個檔案
2、如果你的Hadoop是另外啟用其它使用者來啟動,記得將root改為對應使用者

HDFS格式化後啟動dfs出現以下錯誤:

[[email protected] sbin]# ./start-dfs.sh
Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [slave1]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

在/usr/local/hadoop/hadoop-3.0.3/sbin路徑下:

將start-dfs.sh,stop-dfs.sh兩個檔案頂部新增以下引數

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

還有,start-yarn.sh,stop-yarn.sh頂部也需新增以下:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

修改後重啟 ./start-dfs.sh,成功!

相關推薦

Centos7搭建hadoop3.0.3完全分散式 .tar.gz

這裡搭建的是3個節點的完全分散式,即1個nameNode,2個dataNode,分別如下: master    nameNode    192.168.0.249 node1    dataNode    192.168.0.251 node2    dataNode 

Ubuntu16.04環境下搭建Hadoop3.0.3分散式叢集

    最近剛好趕上雙11騰訊促銷,於是搶購了一個8核16G記憶體的雲伺服器,加上業務上需要用到hadoop,hive,於是想搭建搭建一個hadoop分散式叢集,但是限於自己手頭上伺服器數量不多,因此打算先搭建一個hadoop偽分散式叢集。   首先介紹一下我的安裝

CentOS7搭建hadoop2.7.3完全分散式

這裡搭建的是3個節點的完全分散式,即1個nameNode,2個dataNode,分別如下: CentOS-master   nameNode   192.168.11.128 CentOS-node1   dataNode    192.168.11.131 Cen

Centos7.5搭建Hadoop2.8.5完全分散式叢集

一、基礎環境設定 1. 準備4臺客戶機(VMware虛擬機器) 系統版本:Centos7.5 192.168.208.128 ——Master 192.168.208.129 ——Slaver-1 192.168.208.130 ——Slaver-2 192.168.208.130 ——Slaver-3

Linux核心0.11完全註釋修正版 --讀書筆記1

RTFSC 閱讀0.11核心版本的原因: 適合作業系統初學者的入門學習起點 閱讀早期核心的好處: 簡化的核心程式碼,避免現有核心的複雜性,能夠透徹的說明問題 -- Leland

在VM虛擬機器搭建Hadoop2.7.3+Spark2.1.0完全分散式叢集

1.選取三臺伺服器(CentOS系統64位) 114.55.246.88主節點   114.55.246.77 從節點   114.55.246.93 從節點      之後的操作如果是用普通使用者操作的話也必須知道root使用者的密碼,因為有些操作是得

大資料之1Centos7搭建分散式Hadoop叢集

本文介紹搭建一個Namenode兩個DataNode的Hadoop全分散式叢集的全部步驟及方法。具體環境如下: 一、環境準備 3個Centos7虛擬機器或者3個在一個區域網內的實際Centos7機器,機器上已安裝JDK1.8,至於不會安裝Centos7或者JDK1.8的同

Hadoop從入門到精通系列之--3.完全分散式環境搭建

目錄 一 什麼是完全分散式 二 準備伺服器 三 叢集分發指令碼 3.1 scp(secure copy)安全拷貝 3.2 rsync遠端同步 3.3 叢集分發指令碼 四 叢集規劃 4.1 規劃思想 4.2 具體配置 4.3 ssh免密登陸 一 什麼

Hbase2.1.0 on Hadoop3.0.3叢集(基於CentOS7.5)

完全分散式叢集搭建請移步: 在CentOS7.5上搭建Hadoop3.0.3完全分散式叢集 當前CentOS,JDK和Hadoop版本: [[email protected] ~]# cat /etc/redhat-release CentOS Linux rel

Centos7搭建redis4.0.9偽分散式叢集環境

使用系統是Centos7 redis版本:4.0.9 gem版本:4.0.0 ruby版本:2.5.1 1.下載redis 上圖是從redis官網扒下來的,不過單機版安裝使用也沒啥難度,就不談了,make的時候要有C++編譯器,可以get set啥的就算是裝好了 yum

基於CentOS6.5系統Hadoop2.7.3完全分散式叢集搭建詳細步驟

 前言:本次搭建hadoop叢集使用虛擬機器克隆方式克隆slave節點,這樣做可以省去很多不必要的操作,來縮短我們的搭建時間。 一、所需硬體,軟體要求 使用 VMWare構建三臺虛擬機器模擬真實物理環境 作業系統:CentOS6.5 二、必備條件 hadoop搭建需

【Zabbix】在CentOS7安裝Zabbix3.0

led spl clas connector 不同數據庫 自由 sel 做了 之前 Zabbix安裝   首先說明一下,本文主要參考了【http://www.linuxidc.com/Linux/2016-11/137030.htm】和【http://www.cnblog

關於 mysql2 -v '0.3.21'CentOS7.3

ssi nec rvm plugin ren single local -o for in 個人由於沒有安裝mysql而是裝的MariaDB,所以網上說安裝mysql,故沒有采用,經查閱資料後,詳細情況如下: Gem時報錯: [[email protected]

Centos7搭建局域網的yum源倉庫

不支持 src 安裝包 cto onf 自己 是否 連接 創建文件 1.#輸入命令rmp -q -vsftpd,查看是否安裝了該包。 2.#創建掛載點,把光盤掛載到該點 3.#使用命令用rpm-ivh 安裝vsftpd安裝包 4.#啟動vsftpd服務,設為下次開機

Centos7搭建Racktables

linux centos7 會裝不會用=。= 1.介紹 Racktables是一個用來管理機房資產的開源工具,可以用來管理成百上千臺的服務器及更多的IP和MAC地址。適用於機房和數據中心的服務器管理 2.安裝配置 安裝教程參考:https://github.com/RackTables/rackta

CentOS7.2 搭建 Jenkins2.107.3

CentOS7.2 Jenkins Jenkins 簡介Jenkins?是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。Java 安裝 yum -y install java-1.8.0-openjdk-dev

centos7搭建DHCP服務器

centos7首先打開一個虛擬機,在虛擬機上執行“rpm -q dhcp”命令檢查是否有安裝DHCP安裝包, 在虛擬機上插入裝系統的系統盤並且掛載上,插入光盤方法按下面圖片上順序操作“虛擬機→設置→CD/DVD→瀏覽→找到存放系統盤的位置→打開→已連接→確定”此操作先做或者進入系統後在做效果一樣。如圖所示:

linux,centos7搭建LVS負載均衡

for rpm -ivh /bin/bash 同步 tab 創建 log BE .rpm 在linux,centos7上搭建LVS負載均衡 實前準備 準備五臺虛擬機 四臺centos7 一臺做調度 一臺做nfs緩存 兩臺做wed群集 一臺windows7 開始逐個配置

centos7+搭建cobblerweb遠程快速裝機

訪問 輕量級 acf net 管理系統 重啟 status 命令 裝系統 Cobbler介紹 Cobbler(補鞋匠)是一個Linux服務器快速網絡安裝的服務,而且在經過調整也可以支持網絡安裝windows。該工具使用python開發,小巧輕便(才15k行python代碼

高效實用,在centos7搭建MFS分布式文件系統

使用 原理 source 網絡 組成 tar zxvf sha 變量 系統搭建 MFS原理: MFS是一個具有容錯性的網絡分布式文件系統,他把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源 MFS文件系統組成: 1、元數據服務器(master)