Hadoop集羣 史上最詳細

搭建Hadoop集羣

Hadoop集羣 史上最詳細

對您有用就點點關注 有問題[email protected]

新的改變

環境部署大數據
一、 簡介
步驟: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] JAVAHOME/jre/binJAVAHOME5[lsy@gbase2 jdk1.8.0261] 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






















  1. 進入到Hadoop安裝包路徑下
    [lsy@gbase2 ~]$ cd /app/lsy/ software
  2. 解壓安裝文件到/app/lsy/module下面
    [lsy@gbase2 software]$ tar -zxvf hadoop-2.8.3.tar.gz -C …/module
  3. 查看是否解壓成功
    [lsy@gbase2 software]$ ls /app/lsy/module/
    hadoop-2.8.3

  4. 將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: JAVAHOME/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] HADOOPHOME/sbin(4[lsy@gbase2hadoop2.8.3] source .bash_profile








  5. 測試是否安裝成功
    [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).coresite.xmlcoresite.xml[lsy@gbase2hadoop] vi core-site.xml
在該文件中編寫如下配置


fs.defaultFS hdfs:// gbase1:9000 hadoop.tmp.dir //app/lsy/module/hadoop-2.8.3/data/tmp (2).hdfs-site.xml 配置hdfs-site.xml [lsy@gbase2 hadoop]$ vi hdfs-site.xml 在該文件中編寫如下配置 dfs.namenode.secondary.http-address gbase3:50090 (3).mapred-site.xml mapreduce.framework.name yarn (4).yarn-site.xml 配置yarn-site.xml [lsy@gbase2 hadoop]$ vi yarn-site.xml 在該文件中增加如下配置 yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname gbase2 mapreduce.jobhistory.address hadoop101:10020 mapreduce.jobhistory.webapp.address gbase1:19888 yarn.log.server.url http:// gbase1:19888/jobhistory/logs 7.格式化 1.在lsy@gbase1上節點上格式化: [lsy@gbase1 hadoop]$ namenode:hadoop namenode -format 2.在lsy@gbase1上啓動namenode節點: [lsy@gbase1 hadoop]$ hadoop-daemon.sh start namenode

測試: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] yarndaemon.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] yarndaemon.shstartnodemanager7.lsy@gbase1:19888[lsy@gbase1hadoop] vi mapred-site.xml

mapreduce.jobhistory.address
gbase1:10020


mapreduce.jobhistory.webapp.address
gbase1:19888










yarn.log.server.url http:// gbase1:19888/jobhistory/logs [lsy@gbase1 hadoop]$ mr-jobhistory-daemon.sh start historyserver

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] 1elseechostartstopstatus!fiFlum1.Flum(1).flume.tar.gzlinux/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] flumengagentnagentfagentcDproperty=valuehive1.apachehive1.2.1bin.tar.gzlinux/lsy/software2.apachehive1.2.1bin.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注意事項:

  1. 查看是否有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

yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmen-check-enabled false (2).配置spark yarn模式 1.改名: [lsy@gbase2 conf]$ mv spark-env.sh.template spark-env.sh 2. 配置spark-env.sh [lsy@gbase2 conf]$ vi spark-env.sh 3. 4. 配置 Spark 任務歷史服務器 1. 修改spark-env.sh文件 export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -D spark.history.fs.logDirectory=hdfs://gbase2:9000/spark1015_2"

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模式

  1. 修改yarn-site.xml
    [lsy@gbase2 hadoop]$ pwd
    /app/lsy/module/hadoop-2.8.3/etc/hadoop
    [lsy@gbase2 hadoop]$ vi yarn-site.xml


yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false

[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












有問題可以聯繫我 郵箱:[email protected]
[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章