天天看點

大資料Hadoop叢集搭建

大資料hadoop叢集搭建

cpu型号:intel(r) xeon(r) cpu e5-2620 v4 @ 2.10ghz

cpu核數:16

記憶體:64gb

版本:centos linux release 7.5.1804 (core)

主機清單:

ip

主機名

192.168.1.101

node1

192.168.1.102

node2

192.168.1.103

node3

192.168.1.104

node4

192.168.1.105

node5

軟體安裝包路徑:/data/tools/

java_home路徑:/opt/java # java為軟連結,指向jdk的指定版本

hadoop叢集路徑:/data/bigdata/

元件名

安裝包

說明

jdk

jdk-8u162-linux-x64.tar.gz

基礎環境

zookeeper

zookeeper-3.4.12.tar.gz

hadoop

hadoop-2.7.6.tar.gz

spark

spark-2.1.2-bin-hadoop2.7.tgz

scala

scala-2.11.12.tgz

hbase

hbase-1.2.6-bin.tar.gz

hive

apache-hive-2.3.3-bin.tar.gz

kylin

apache-kylin-2.3.1-hbase1x-bin.tar.gz

kafka

kafka_2.11-1.1.0.tgz

hue

hue-3.12.0.tgz

flume

apache-flume-1.8.0-bin.tar.gz

注:所有的軟連結不可以跨伺服器傳輸,應該單獨建立;否則會把軟連結所指向的檔案或整個目錄傳過去;

也可以node1生成一套密鑰,然後把~/.ssh整個目錄分發到其它伺服器,共用一個密鑰

官方文檔

生産環境:兩個主節點隻裝namenode,不裝datanode;

建立指定目錄

建立相應目錄

由于zookeeper沒有提供同時啟動叢集中所有節點的執行腳本,在生産中逐個節點啟動稍微有些麻煩,自定義一個腳本用來啟動叢集中所有節點,如下:

生産中一個hdfs叢集會有兩個resourcemanager節點,若逐個節點啟動稍微有些麻煩,自定義一個腳本用來啟動叢集中所有resourcemanager節點,如下:

\

quorumpeermain

journalnode

namenode

dfszkfailovercontroller

datanode

nodemanager

resourcemanager

在任意一台namenode機器上通過jps指令查找到namenode的程序号,然後通過kill -9的方式殺掉程序,觀察另一個namenode節點是否會從狀态standby變成active狀态。

然後觀察原來是standby狀态的namenode機器的zkfc日志,若最後一行出現如下日志,則表示切換成功:

這時再通過指令啟動被kill掉的namenode程序

對應程序的zkfc最後一行日志如下:

可以在兩台namenode機器之間來回kill掉namenode程序以檢查hdfs的ha配置!

scala運作在jvm虛拟機,需要配置jdk;

如果以上兩步沒問題,表示scala已安裝和配置成功。

說明:<code>spark.executorenv.pythonhashseed=0</code>配置:

如果你使用的是python3+,并且在spark叢集上使用distinct(),reducebykey(),和join()這幾個函數時,就會觸發下面的異常:

python建立周遊對象對象時會對每個對象進行随機哈希建立索引。然而在一個叢集上,每個節點計算時對某一個變量建立的索引值不同,會導緻資料索引沖突。是以需要設定pythonhashseed來固定随機種子,保證索引一緻。參見:

spark叢集配置(4):其他填坑雜項

master

worker

historyserver

master和hadoop的namenode程序運作在同一台主機上,與datanode通信

以讀寫hdfs的資料。regionserver跟hadoop的datanode運作在同一台主機上。

參考:

hbase 資料庫簡介安裝與常用指令的使用

hmaster

hregionserver

hbase web頁面http://192.168.1.101:16030

hbase master url:http://192.168.1.101:60010

kafka實戰最佳經驗

kafka并沒有提供同時啟動叢集中所有節點的執行腳本,在生産中一個kafka叢集往往會有多個節點,若逐個節點啟動稍微有些麻煩,自定義一個腳本用來啟動叢集中所有節點,如下:

建立主題:(指明要連接配接的zookeeper)例如主題名稱為:testtopic

檢視主題:

任選一台,建立生産者:(kafka叢集使用者)

另一台,建立消費者

生産者輸入一些資料,看消費者是否顯示生産者所輸入的資料。

kafka也同樣沒有提供關閉叢集操作的腳本。這裡我提供一個用來關閉kafka叢集的腳本(可以放在任意一條節點上):

參考:https://blog.51cto.com/moerjinrong/2092614

注意:由于html格式問題,上面jdbc的url中的&amp;改為照片中紅色下劃線的符号

大資料Hadoop叢集搭建

runjar

# 啟動hive時才有

安裝kylin前確定:hadoop 2.4+、hbase 0.13+、hive 0.98+,1.*已經安裝并啟動。

hive需要啟動metastore和hiveserver2。

apache kylin同樣可以使用叢集部署,但使用叢集部署并不能增加計算速度

因為計算過程使用mapreduce引擎,與kylin自身無關,而是主要為查詢提供負載均衡。本次采用單節點。

将hive安裝目錄lib目錄中的所有jar包複制到kylin安裝目錄下的lib目錄中。

如果不關閉,會報如下錯誤

進入bin目錄下分别執行

在kylin安裝根目錄下執行

到目前為止所啟動的程序:

# kylin程序

服務啟動後,浏覽器通路位址:http://ip:7070/kylin/

使用者名:admin

密碼:kylin

1.配置資料源

(1)依次選擇 model -&gt; data source -&gt; load hive table

大資料Hadoop叢集搭建

(2)輸入 hive 中資料庫的表名格式為: 資料庫名.資料表名

如:db_hivetest.student ,然後點選sync即可。

大資料Hadoop叢集搭建

添加成功後,效果如下圖:

大資料Hadoop叢集搭建

1、界面無法同步hive表中繼資料

解決方法,在kylin安裝目錄下:

執行指令:<code>vim ./bin/kylin.sh</code> 需要對此腳本做以下修改:

可以看到一個leader,其它為follower就可以*

沒有啟動的去相應伺服器下單獨啟動

繼續閱讀