编程知识 cdmana.com

Hadoop集群 史上最详细

搭建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] 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












有问题可以联系我 邮箱:jarvan_mr@163.com
jarvan_mr@163.com

版权声明
本文为[osc_v1ao43h5]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4265623/blog/4839769

Scroll to Top