搭建Hadoop集群
Hadoop集群 史上最詳細
對您有用就點點關注 有問題jarvan_mr@163.com
新的改變
環境部署大資料
一、 簡介
步驟:1.jdk安裝
2.配置SSH免密登錄
3.配置hadoop核心檔案
4.搭建hadoop生態
5.軟體包備注說明
4.格式化namenode
注:1.lsy@gbase2為主機群T,lsy@gbase1、lsy@gbase3為S,
2.不要在/xxx/.bashrc下 source ~/.bash -profile 容易造成服務器掛掉,
3. 在vi ~/.bash_profile更改主機的環境變數 source ~/.bash_profile
4.主機ip地址要ping通、關閉防火墻、時鐘要同步
二、 步驟實施
1.創建檔案夾創建軟體包存放目錄
[lsy@gbase2 ~]$ mkdir /lsy/app/software
[lsy@gbase2 ~]$ cd /lsy/app/software/
創建檔案包存放目錄
[lsy@gbase2 ~]$ mkdir /lsy/app/module
[lsy@gbase2 ~]$ cd /lsy/app/module/
2…jdk安裝
使用的jdk1.8通過Xftp上傳到/app/lsy/software檔案夾下:(software自己建立)
(1) 查詢是否安裝Java軟體:
[lsy@gbase2~]$ rpm -qa | grep java
(2)如果安裝的版本低于1.7,卸載該JDK:
[lsy@gbase2~]$ sudo rpm -e 軟體包
(3)查看JDK安裝路徑:
[lsy@gbase2~]$ which java
(4)解壓JDK到module目錄下
[lsy@gbase2~ software]$ tar -zxvf jdk-8u261-linux-x64.tar.gz -C …/module/
(5)配置JDK環境變數
獲取JDK路徑
[lsy@gbase2~ jdk1.8.0_261]$ pwd
/app/lsyt/module/ jdk1.8.0_261
(6)vi .bash_profile檔案
[lsy@gbase2~ software]$ vi ~.bash_profile
在profile檔案末尾添加JDK路徑
#JAVA_HOME
JAVA_HOME=/app/lsy/module/jdk1.8.0_261
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
J
A
V
A
H
O
M
E
/
j
r
e
/
b
i
n
J
A
V
A
H
O
M
E
(
5
)
讓
修
改
后
的
文
件
生
效
[
l
s
y
@
g
b
a
s
e
2
j
d
k
1.8.
0
2
61
]
JAVA_HOME/jre/bin JAVA_HOME (5)讓修改后的檔案生效 [lsy@gbase2~ jdk1.8.0_261]
JAVAH?OME/jre/binJAVAH?OME(5)讓修改后的文件生效[lsy@gbase2 jdk1.8.02?61] source .bash_profile
(7)測驗JDK是否安裝成功
[lsy@gbase2 jdk1.8.0_261]# java -version
java version “1.8.0_261”
3.配置SSH免密登錄
(1)生成公鑰和私鑰:
[lsy@gbase2 .ssh]$ ssh-keygen -t rsa
然后敲(三個回車),就會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
(2)將公鑰拷貝到要免密登錄的目標機器上
[lsy@gbase2 .ssh]$ ssh-copy-id gbase1
[lsy@gbase2 .ssh]$ ssh-copy-id gbase2
[lsy@gbase2 .ssh]$ ssh-copy-id gbase3
4.搭建Hadoop
- 進入到Hadoop安裝包路徑下
[lsy@gbase2 ~]$ cd /app/lsy/ software - 解壓安裝檔案到/app/lsy/module下面
[lsy@gbase2 software]$ tar -zxvf hadoop-2.8.3.tar.gz -C …/module - 查看是否解壓成功
[lsy@gbase2 software]$ ls /app/lsy/module/
hadoop-2.8.3 - 將Hadoop添加到環境變數
(1)獲取Hadoop安裝路徑
[lsy@gbase2 hadoop-2.8.3]$ pwd
/app/lsy/module/hadoop-2.8.3
(2) vi .bash_profile檔案 // 添加環境變數
[lsy@gbase2 hadoop-2.8.3]$ vi .bash_profile
(3) 在.bash_profile檔案末尾添加JDK路徑:(shitf+g)
##HADOOP_HOME
HADOOP_HOME=/app/lsy/module/hadoop-2.8.3
PATH= P A T H : PATH: PATH:JAVA_HOME/bin: J A V A H O M E / j r e / b i n : JAVA_HOME/jre/bin: JAVAH?OME/jre/bin:HADOOP_HOME/bin: H A D O O P H O M E / s b i n ( 4 ) 讓 修 改 后 的 文 件 生 效 [ l s y @ g b a s e 2 h a d o o p ? 2.8.3 ] HADOOP_HOME/sbin (4)讓修改后的檔案生效 [lsy@gbase2 hadoop-2.8.3] HADOOPH?OME/sbin(4)讓修改后的文件生效[lsy@gbase2hadoop?2.8.3] source .bash_profile - 測驗是否安裝成功
[lsy@gbase2 hadoop-2.8.3]$ hadoop version
hadoop-2.8.3
5.撰寫群發腳本
[lsy@gbase2 ~]$ mkdir bin
[lsy@gbase2 ~]$ cd bin/
[lsy@gbase2 bin]$ touch xsync
[lsy@gbase2 bin]$ vi xsync
#!/bin/bash
#校驗引數是否合法
if(($#==0))
then
echo 請輸入要分發的檔案!
exit;
fi
#獲取要分發檔案的絕對路徑
dirpath=$(cd -P dirname $1; pwd)
filename=$(basename
1
)
e
c
h
o
要
分
發
的
文
件
的
路
徑
是
:
1) echo 要分發的檔案的路徑是:
1)echo要分發的文件的路徑是:dirpath/$filename
#獲取當前用戶名
lsy@gbase=KaTeX parse error: Expected 'EOF', got '#' at position 10: (whoami) #?回圈執行rsync分發檔案到集…i---------------
rsync -rvlt
d
i
r
p
a
t
h
/
dirpath/
dirpath/filename lsy@gbase
i
:
d
i
r
p
a
t
h
/
m
o
d
u
l
e
d
o
n
e
6.
配
置
h
a
d
o
o
p
核
心
文
件
(
1
)
.
c
o
r
e
?
s
i
t
e
.
x
m
l
配
置
c
o
r
e
?
s
i
t
e
.
x
m
l
[
l
s
y
@
g
b
a
s
e
2
h
a
d
o
o
p
]
i:dirpath/module done 6. 配置hadoop核心檔案 (1).core-site.xml 配置core-site.xml [lsy@gbase2 hadoop]
i:dirpath/moduledone6.配置hadoop核心文件(1).core?site.xml配置core?site.xml[lsy@gbase2hadoop] vi core-site.xml
在該檔案中撰寫如下配置
測驗:dfs.namenode.http-address:50070
3.在不同節點啟動datanode
[lsy@gbase1 hadoop]$ hadoop-daemon.sh start datanode
[lsy@gbase2 hadoop]$ hadoop-daemon.sh start datanode
[lsy@gbase3 hadoop]$ hadoop-daemon.sh start datanode
4.在gbase3啟動secondarynamenode
[lsy@gbase3 hadoop]$ hadoop-daemon.sh start secondarynamenode
5.在gbase2啟動yarn
[lsy@gbase2 hadoop]$:yarn-daemon.sh start resourcemanager
6.在lsy@gbase1-3上啟動nodemanager:
[lsy@gbase1 hadoop]
y
a
r
n
?
d
a
e
m
o
n
.
s
h
s
t
a
r
t
n
o
d
e
m
a
n
a
g
e
r
[
l
s
y
@
g
b
a
s
e
2
h
a
d
o
o
p
]
yarn-daemon.sh start nodemanager [lsy@gbase2 hadoop]
yarn?daemon.shstartnodemanager[lsy@gbase2hadoop]yarn-daemon.sh start nodemanager
[lsy@gbase3 hadoop]
y
a
r
n
?
d
a
e
m
o
n
.
s
h
s
t
a
r
t
n
o
d
e
m
a
n
a
g
e
r
7.
配
置
l
s
y
@
g
b
a
s
e
1
:
19888
歷
史
服
務
器
:
[
l
s
y
@
g
b
a
s
e
1
h
a
d
o
o
p
]
yarn-daemon.sh start nodemanager 7.配置lsy@gbase1:19888歷史服務器: [lsy@gbase1 hadoop]
yarn?daemon.shstartnodemanager7.配置lsy@gbase1:19888歷史服務器:[lsy@gbase1hadoop] vi mapred-site.xml
mapreduce.jobhistory.address
gbase1:10020
mapreduce.jobhistory.webapp.address
gbase1:19888
8.查看所有節點jps
三.HDFS-HA集群配置/搭建zookeeper
1.ZK服務端配置
(1).解包:解壓到…/module下
[lsy@gbase2 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C …/module
(2).重命名/lsy/module/zookeeper-3.4.10/conf這個目錄下的zoo_sample.cfg為zoo.cfg
[lsy@gbase2 zookeeper-3.4.10]$ cd conf/
[lsy@gbase2 conf]$ ll
total 12
-rw-r–r--. 1 lsy fxjk 535 Mar 23 2017 configuration.xsl
-rw-r–r--. 1 lsy fxjk 2161 Mar 23 2017 log4j.properties
-rw-r–r--. 1 lsy fxjk 922 Mar 23 2017 zoo_sample.cfg
[lsy@gbase2 conf]$ cp zoo_sample.cfg zoo.cfg
(3).vi zoo.cfg
[lsy@gbase2 conf]$ vi zoo.cfg
注意:記得創建datas 用來存放dataDir=/tmp/zookeeper
[lsy@gbase2 zookeeper-3.4.10]$ mkdir datas
lsy@gbase2 zookeeper-3.4.10]$ cd datas/
[lsy@gbase2 datas]$ pwd
/app/lsy/module/zookeeper-3.4.10/datas
(4).啟動測驗zookeeper
[lsy@gbase2 zookeeper-3.4.10]$ bin/zkServer.sh start
[lsy@gbase2 zookeeper-3.4.10]$ bin/zkServer.sh status
2.搭建zookeeper集群
(1).將gbase2中的zookeeper scp到節點1、2中:
[lsy@gbase2 module]$ scp -r zookeeper-3.4.10/ lsy@gbase1:/app/lsy/dirpath/
[lsy@gbase2 module]$ scp -r zookeeper-3.4.10/ lsy@gbase3:/app/lsy/dirpath/
(2).配置zoo.cfg檔案
1重命名/opt/module/zookeeper-3.4.10/conf這個目錄下的zoo_sample.cfg為zoo.cfg
[lsy@gbase2 conf]$ mv zoo_sample.cfg zoo.cfg
2.打開zoo.cfg檔案
[lsy@gbase2 conf]$ vim zoo.cfg
增加如下配置
server.1= gbase1:2888:3888
server.2= gbase2:2888:3888
server.3= gbase3:2888:3888
(3).群發
[lsy@gbase2 conf]$ xsync zoo.cfg
(4).配置主節點 (gbase1為領導者L) 記得要分發myid
[lsy@gbase2 zookeeper-3.4.10]$ cd datas/
[lsy@gbase2 datas]$ ll
total 0
drwxr-xr-x. 2 lsy fxjk 6 Nov 11 17:22 version-2
[lsy@gbase2 datas]$ vi myid
(5).在1-3啟動測驗
[lsy@gbase1 datas]$ /app/lsy/dirpath/zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /app/lsy/dirpath/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
[lsy@gbase2 conf]$ /app/lsy/module/zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /app/lsy/module/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
[lsy@gbase3 datas]$ /app/lsy/dirpath/zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /app/lsy/dirpath/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
(6).查看 leader/follower
[lsy@gbase1 datas]$ /app/lsy/dirpath/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/lsy/dirpath/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Mode: leader
[lsy@gbase2 conf]$ /app/lsy/module/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/lsy/module/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Mode: follower
[lsy@gbase3 datas]$ /app/lsy/dirpath/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/lsy/dirpath/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Mode: follower
(7).撰寫群起腳本
#!/bin/bash
if(($#!=1))
then
echo 請輸入start或stop或status
exit;
fi
if [ $1 = start ] || [ $1 = stop ] || [ $1 = status ]
then
xcall zkServer.sh
1
e
l
s
e
e
c
h
o
請
輸
入
s
t
a
r
t
或
s
t
o
p
或
s
t
a
t
u
s
!
f
i
四
.
搭
建
F
l
u
m
1.
搭
建
F
l
u
m
(
1
)
.
將
f
l
u
m
e
.
t
a
r
.
g
z
上
傳
到
l
i
n
u
x
的
/
a
p
p
/
l
s
y
/
s
o
f
t
w
a
r
e
目
錄
下
(
2
)
.
解
壓
[
l
s
y
@
g
b
a
s
e
2
s
o
f
t
w
a
r
e
]
1 else echo 請輸入start或stop或status! fi 四.搭建Flum 1.搭建Flum (1).將flume.tar.gz上傳到linux的/app/lsy/software目錄下 (2).解壓 [lsy@gbase2 software]
1elseecho請輸入start或stop或status!fi四.搭建Flum1.搭建Flum(1).將flume.tar.gz上傳到linux的/app/lsy/software目錄下(2).解壓[lsy@gbase2software] tar -zxvf apache-flume-1.7.0-bin.tar.gz -C …/module
(3).修改apache-flume-1.7.0-bin的名稱為flume
[lsy@gbase2 module]$ mv apache-flume-1.7.0-bin flume
(4).將flume/conf下的flume-env.sh.template檔案修改為flume-env.sh,
[lsy@gbase2 conf]$ mv flume-env.sh.template flume-env.sh
安裝flume注意事項:1有JAVA_HOME 2.解壓就可使用
2.啟動agent
(1). vi ~/.bash_profile配置環境
[lsy@gbase2 flume]$ vi ~/.bash_profile
(2.)添加/app/lsy/module/flume
(3).啟動agent
[lsy@gbase2 flume]
f
l
u
m
e
?
n
g
a
g
e
n
t
?
n
a
g
e
n
t
的
名
稱
?
f
a
g
e
n
t
配
置
文
件
?
c
其
他
文
件
在
的
目
錄
?
D
p
r
o
p
e
r
t
y
=
v
a
l
u
e
五
.
搭
建
h
i
v
e
1.
把
a
p
a
c
h
e
?
h
i
v
e
?
1.2.1
?
b
i
n
.
t
a
r
.
g
z
上
傳
到
l
i
n
u
x
的
/
l
s
y
/
s
o
f
t
w
a
r
e
目
錄
下
2.
解
壓
a
p
a
c
h
e
?
h
i
v
e
?
1.2.1
?
b
i
n
.
t
a
r
.
g
z
到
/
l
s
y
/
m
o
d
u
l
e
/
目
錄
下
面
[
l
s
y
@
g
b
a
s
e
2
s
o
f
t
w
a
r
e
]
flume-ng agent -n agent的名稱 -f agent組態檔 -c 其他檔案在的目錄 -Dproperty=value 五.搭建hive 1.把apache-hive-1.2.1-bin.tar.gz上傳到linux的/lsy/software目錄下 2.解壓apache-hive-1.2.1-bin.tar.gz到/ lsy /module/目錄下面 [lsy@gbase2 software]
flume?ngagent?nagent的名稱?fagent配置文件?c其他文件在的目錄?Dproperty=value五.搭建hive1.把apache?hive?1.2.1?bin.tar.gz上傳到linux的/lsy/software目錄下2.解壓apache?hive?1.2.1?bin.tar.gz到/lsy/module/目錄下面[lsy@gbase2software] tar -zxvf apache-hive-1.2.1-bin.tar.gz -C …/module/
3.修改apache-hive-1.2.1-bin.tar.gz的名稱為hive
[lsy@gbase2 module]$ mv apache-hive-1.2.1-bin/ hive
4.修改/lsy/module/hive/conf目錄下的hive-env.sh.template名稱為hive-env.sh
[lsy@gbase2 conf]$ mv hive-env.sh.template hive-env.sh
5.配置hive-env.sh檔案
配置HIVE_HOME路徑
export HIVE_HOME=/app/lsy/module/hive
6.測驗:
[lsy@gbase2 hive]$ hive
結果:
7.安裝hive注意事項:
- 查看是否有HADOOP_HOME、JAVA_HOME
2.在bin配置到PATH中,在環境變數中提供HIVE_HOME
六.搭建Redis
[lsy@gbase1 hadoop]$ make
測驗
[lsy@gbase2 bin]$ pwd
/usr/local/bin
七.搭建Spark(裝的是standalone模式下的)
404
(1).檢查物理記憶體/虛擬記憶體(/app/lsy/module/hadoop-2.8.3/etc/hadoop)
[lsy@gbase2 hadoop]$ vi yarn-site.xml
2.配置日志
[lsy@gbase2 conf]$ mv spark-defaults.conf.template spark-defaults.conf
[lsy@gbase2 conf]$ vi spark-defaults.conf
3.測驗:
[lsy@gbase2 bin]$ pwd
/app/lsy/module/spark-2.1.1-bin-hadoop2.7/bin
[lsy@gbase2 bin]$ cd spark-submit \
3.配置歷史服務器
[lsy@gbase2 conf]$ vi spark-defaults.conf
[lsy@gbase2 conf]$ vi spark-env.sh
[lsy@gbase2 conf]$ hadoop fs -mkdir /spark-log-1015
一.lcoal模式(僅作測驗使用):
[lsy@gbase2 ~]$ vi ~/.bash_profile
[lsy@gbase2 ~]$ source ~/.bash_profile
[lsy@gbase2 module]$ cd spark-local
[lsy@gbase2 spark-local]$ ll
[lsy@gbase2 spark-local]$ bin/spark-submit --class org.apache.spark.examples.SparkPi --executor-memory 1G --total-executor-cores 2 ./examples/jars/spark-examples_2.11-2.1.1.jar 100
運行結果:
1.二測:
[lsy@gbase2 spark-local]$ bin/run-example SparkPi 100
2…spark-shell下:
[lsy@gbase2 spark-local]$ bin/spark-shell
3.退出使用:scala> :q
二.spark-standalone模式
[lsy@gbase2 module]$ cp -r spark-2.1.1-bin-hadoop2.7 spark-standalone
[lsy@gbase2 conf]$ pwd
/app/lsy/module/spark-standalone/conf
[lsy@gbase2 conf]$ mv spark-env.sh.template spark-env.sh
[lsy@gbase2 conf]$ vi spark-env.sh
[lsy@gbase2 conf]$ mv slaves.template slaves
[lsy@gbase2 conf]$ vi slaves
[lsy@gbase2 module]$ xsync spark-standalone
[lsy@gbase2 module]$ cd spark-standalone
[lsy@gbase2 spark-standalone]$ sbin/start-all.sh
查看行程:
[lsy@gbase2 sbin]$ jps
.測驗
[lsy@gbase2 spark-standalone]$ bin/spark-submit --class org.apache.spark.examples.SparkPi --executor-memory 1G --total-executor-cores 2 ./examples/jars/spark-examples_2.11-2.1.1.jar 100
配置歷史服務器:
[lsy@gbase2 conf]$ mv spark-defaults.conf.template spark-defaults.conf
[lsy@gbase2 conf]$ vi spark-defaults.conf
[lsy@gbase2 conf]$ vi spark-env.sh
分發檔案:
[lsy@gbase2 conf]$ xsync spark-env.sh
要分發的檔案的路徑是:/app/lsy/module/spark-standalone/conf/spark-env.sh
[lsy@gbase2 conf]$ xsync spark-defaults.conf
要分發的檔案的路徑是:/app/lsy/module/spark-standalone/conf/spark-defaults.conf
創建1015
[lsy@gbase2 spark-standalone]$ hadoop fs -mkdir /spark-log-1015
啟動
[lsy@gbase2 spark-standalone]$ sbin/start-all.sh
三.Yarn模式
- 修改yarn-site.xml
[lsy@gbase2 hadoop]$ pwd
/app/lsy/module/hadoop-2.8.3/etc/hadoop
[lsy@gbase2 hadoop]$ vi yarn-site.xml
[lsy@gbase2 module]$ cp -r spark-2.1.1-bin-hadoop2.7 spark-yarn
告訴M/R hadoop地址
/app/lsy/module/spark-yarn/conf
[lsy@gbase2 conf]$ mv spark-env.sh.template spark-env.sh
[lsy@gbase2 conf]$ vi spark-env.sh
2.改日志
YARN_CONF_DIR=/app/lsy/module/hadoop-2.8.3/etc/hadoop
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -D
spark.history.fs.logDirectory=hdfs://gbase2:9000/spark1117_2"
[lsy@gbase2 conf]$ mv spark-defaults.conf.template spark-defaults.conf
測驗:
[lsy@gbase2 spark-yarn]$ hadoop fs -mkdir /spark1117_2
[lsy@gbase2 spark-yarn]$ sbin/start-history-server.sh
[lsy@gbase2 spark-yarn]$ bin/spark-submit --class org.apache.spark.examples.SparkPi --executor-memory 1G --total-executor-cores 2 ./examples/jars/spark-examples_2.11-2.1.1.jar 100
八.搭建mariadb
[lsy@gbase2 module]$ getconf LONG_BIT
64
[lsy@gbase2 software]$ tar -zxvf mariadb-10.2.14-linux-x86_64.tar.gz -C …/module
[lsy@gbase2 module]$ mv mariadb-10.2.14-linux-x86_64 mariadb
九.軟體包備注
1.jdk:jdk-8u261-linux-x64.tar.gz
2.hadoop:hadoop-2.8.3.tar.gz
3. zookeeper-3.4.10.tar.gz
4. apache-flume-1.7.0-bin.tar.gz
5. apache-hive-1.2.1-bin.tar.gz
6. redis-3.0.4.tar.gz
7. spark-2.1.1-bin-hadoop2.7.tgz
8. mariadb-10.2.14-linux-x86_64
有問題可以聯系我 郵箱:jarvan_mr@163.com
jarvan_mr@163.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239646.html
標籤:其他
