大数据平台搭建
一、安装前准备
1、查看防火墙状态
2、关闭防火墙(分别在三台虚拟机上操作)
-
[root@slave2 ~]# systemctl status firewalld.service
-
● firewalld.service - firewalld - dynamic firewall daemon
-
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
-
Active: active (running) since 四 2021-09-30 23:26:22 CST; 6h left
-
Docs: man:firewalld(1)
-
Main PID: 6124 (firewalld)
-
CGroup: /system.slice/firewalld.service
-
└─6124 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
-
-
9月 30 23:26:21 slave2 systemd[1]: Starting firewalld - dynamic firewall daemon...
-
9月 30 23:26:22 slave2 systemd[1]: Started firewalld - dynamic firewall daemon.
-
[root@master ~]# systemctl stop firewalld.service
-
[root@slave2 ~]# systemctl disable firewalld.service
-
[root@slave2 ~]# systemctl status firewalld.service
-
● firewalld.service - firewalld - dynamic firewall daemon
-
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
-
Active: inactive (dead)
-
Docs: man:firewalld(1)
-
-
9月 30 23:26:21 slave2 systemd[1]: Starting firewalld - dynamic firewall daemon...
-
9月 30 23:26:22 slave2 systemd[1]: Started firewalld - dynamic firewall daemon.
-
9月 30 17:24:52 slave2 systemd[1]: Stopping firewalld - dynamic firewall daemon...
-
9月 30 17:24:52 slave2 systemd[1]: Stopped firewalld - dynamic firewall daemon.
3、配置hosts映射(分别在三台虚拟机上操作)
-
[root@master ~]# vi /etc/hosts
-
192.168.204.111 master
-
192.168.204.122 slave1
-
192.168.204.133 slave2
-
-
[root@master ~]# ping slave1
-
PING slave1 (192.168.204.122) 56(84) bytes of data.
-
64 bytes from slave1 (192.168.204.122): icmp_seq=1 ttl=64 time=0.397 ms
-
64 bytes from slave1 (192.168.204.122): icmp_seq=2 ttl=64 time=0.277 ms
-
[root@master ~]# ping slave2
-
PING slave2 (192.168.204.133) 56(84) bytes of data.
-
64 bytes from slave2 (192.168.204.133): icmp_seq=1 ttl=64 time=0.434 ms
-
64 bytes from slave2 (192.168.204.133): icmp_seq=2 ttl=64 time=0.344 ms
-
64 bytes from slave2 (192.168.204.133): icmp_seq=3 ttl=64 time=0.377 ms
4、ssh服务配置
1)查看ssh服务是否开启(分别在三台虚拟机上操作)
-
查看当前机器是否安装了SSH服务:rpm -qa |grep ssh
-
查看SSH服务是否启动:ps -e | grep sshd
2)ssh免密登录设置(分别在三台虚拟机上操作)
[root@master ~]# ssh-keygen
连续按Enter键确认。
在root目录下输入:ll-a 可以查看当前目录下的所有文件(包含隐藏文件)。
然后进入.ssh隐藏目录,输入ls 命令,如图所示:
分别在三台虚拟机上执行如下两行命令:
-
ssh-copy-id master
-
ssh-copy-id slave1
-
ssh-copy-id slave2
执行时,到了红色框区域,需要输入yes
3)测试是否成功
为了测试免密设置是否成功,可执行如下命令:
-
ssh master
-
ssh slave1
-
ssh slave2
4)为了规范后续Hadoop集群相关软件和数据的安装配置,这里在虚拟机的根目录下建一些文件夹作为约定,具体如下:
文件夹名 | 作用 |
---|---|
/export/data/ | 存放数据文件 |
/export/servers/ | 存放服务类文件 |
/export/software/ | 存放安装包文件 |
具体需要执行下面3条命令(分别在三台虚拟机上操作):
-
mkdir -p /export/data/
-
mkdir -p /export/servers/
-
mkdir -p /export/software/
进入export目录下,执行ls命令,如图所示即为成功。
一、jdk安装及配置
1、下载安装包
2、上传安装包
3、解压安装包
[root@master1 ~]# tar -zxvf jdk-8u161-linux-x64.tar.gz
4、移动到指定路径下
[root@master1 ~]# mv jdk1.8.0_161 /export/software
5、配置环境变量
-
[root@master1 ~]# vi /etc/profile
-
[root@master1 ~]# source /etc/profile
-
export JAVA_HOME=/export/software/jdk1.8.0_161
-
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
export PATH=$PATH:$JAVA_HOME/bin
6、验证是否完成安装
-
[root@master1 ~]# java -version
-
java version "1.8.0_161"
-
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
-
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
二、hadoop安装及配置
1、下载安装包
2、上传安装包
3、解压安装包
[root@master ~]# tar -zxvf hadoop-2.4.1.tar.gz
4、移动到指定路径下
[root@master ~]# mv hadoop-2.4.1 /export/software/
5、配置环境变量
-
[root@master ~]# vi /etc/profile
-
[root@master ~]# source /etc/profile
-
-
export HADOOP_HOME=/export/software/hadoop-2.4.1
-
export HADOOP_CONF_DIR=/export/software/hadoop-2.4.1/etc/hadoop
-
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
6、验证是否完成安装
-
[root@master ~]# hadoop version
-
Hadoop 2.4.1
-
Subversion http://svn.apache.org/repos/asf/hadoop/common -r 1604318
-
Compiled by jenkins on 2014-06-21T05:43Z
-
Compiled with protoc 2.5.0
-
From source with checksum bb7ac0a3c73dc131f4844b873c74b630
-
This command was run using /export/software/hadoop-2.4.1/share/hadoop/common/hadoop-common-2.4.1.jar
7、hadoop集群配置
配置文件 |
功能描述 |
hadoop.env.sh | 配置Hadoop运行所需的环境变量 |
yarn.env.sh | 配置Yarn运行所需的环境变量 |
core-site.xml | Hadoop核心全局配置文件,可在其他配置文件中引用此该文件 |
hdfs-site.xml | HDFS配置文件,继承core-site.xml配置文件 |
mapred-site.xml | MapReduce配置文件,继承core-site.xml配置文件 |
yarn-site.xml | Yarn配置文件,继承core-site.xml配置文件 |
在表中,前2个配置文件都是用来指定Hadoop 和YARN所需运行环境,hadoop.env.sh用来保证Hadoop系统能够正常运行HDFS的守护进程NameNode、SecondaryNameNode和DataNode;而yarn.env.sh用来保证YARN的守护进程ResourceMananger和NodeManager能正常启动。
8、配置hadoop集群主节点
1)修改hadoop-env.sh和yarn.env.sh
修改hadoop-env.sh文件的27行内容为图片所示。
-
# 配置hadoop运行时需要的环境变量
-
27 export JAVA_HOME=/export/software/jdk1.8.0_161
修改yarn.env.sh的23行如图片所示:
-
# 配置hadoop运行时需要的环境变量
-
23 export JAVA_HOME=/export/software/jdk1.8.0_161
2)修改core-site.xml
在末尾的标签中间加入下面属性的设置:
-
<configuration>
-
<!-- 用于Hadoop的文件系统,由URI指定-->
-
<property>
-
<name>fs.defaultFS</name>
-
<!-- 用于指定namenode地址在机器master上-->
-
<value>hdfs://master:9000</value>
-
</property>
-
<!-- 用于配置hadoop的临时目录-->
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/export/software/hadoop-2.4.1/tmp</value>
-
</property>
-
</configuration>
3)修改hdfs-site.xml
在末尾的标签中间加入下面属性的设置:
-
<configuration>
-
<!--指定HDFS副本的数量,不能超过机器节点数-->
-
<property>
-
<name>dfs.replication</name>
-
<value>3</value>
-
</property>
-
<!-- 为secondary namenode配置所在的IP和端口-->
-
<property>
-
<name>dfs.namenode.secondary.http-address</name>
-
<value>slave1:50090</value>
-
</property>
-
</configuration>
4)修改mapred-site.xml
在末尾的标签中间加入下面属性的设置:
-
<configuration>
-
<!-- 指定MapReduce运行时框架,这里指定在yarn上-->
-
<property>
-
<name>mapreduce.framework.name</name>
-
<value>yarn</value>
-
</property>
-
</configuration>
5)修改yarn-site.xml
在末尾的标签中间加入下面属性的设置:
-
<c<configuration>
-
-
<!-- Site specific YARN configuration properties -->
-
<!-- 指定yarn集群的管理者(resourcemanger)的地址-->
-
<property>
-
<name>yarn.resourcemanager.hostname</name>
-
<value>master</value>
-
</property>
-
<property>
-
<name>yarn.nodemanager.aux-services</name>
-
<value>mapreduce_shuffle</value>
-
</property>
-
</configuration>
6)修改slaves文件
vi编辑slaves文件,将原有的localhost删掉,然后加入如图所示的内容
-
master
-
slave1
-
slave2
9、将集群主节点的配置文件分发到其他子节点
并且分别在其他节点配置环境变量
-
scp -r /export/software/hadoop-2.4.1 slave1:/export/software/
-
scp -r /export/software/hadoop-2.4.1 slave2:/export/software/
10、Hadoop集群测试
格式化文件系统
[root@master hadoop]# hadoop namenode -format
11、启动和关闭Hadoop集群
-
start-dfs.sh
-
start-yarn.sh
-
-
start-all.sh
12、通过UI查看Hadoop运行状态
Hadoop 集群正常启动后,它默认开放了50070和8088两个端口,分别用于监控HDFS集群和YARN集群。
输入网址192.168.233.131:50070,可查看HDFS管理界面,其中192.168.233.131为master的ip地址
三、zookeeper安装及配置
1.下载安装包
2.上传安装包
3.解压安装包,移动到指定位置
解压:
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
移动到指定位置:
mv apache-zookeeper-3.5.9-bin.tar.gz /export/software/
修改名字:
mv apache-zookeeper-3.5.9-bin zookeeper-3.5.9
4.Zookeeper的相关配置
(1)配置zoo.cfg文件(进入到zookeeper目录下:bin里面是一些启动的命令,要在conf里面配置,lib可用的jar包,logs是日志文件)
[root@master software]# cd /export/software/zookeeper-3.5.9/conf/
改名:
mv zoo_sample.cfg zoo.cfg
配置:
底部输入 :set nu -------显示行号
a.设置文件目录及数据持久化路径
b.配置Zookeeper集群的服务器编号及对应的主机名、选举端口号和通信端口号
(注意此处必须与自己的虚拟机名称对应)
-
[root@master conf]# vi zoo.cfg
-
-
# 设置数据文件目录 数据持久化路径
-
12 dataDir=/export/data/zookeeper/zkdata
-
# 配置zookeeper集群的服务器及对应的主机名、通信端口号和选举端口号
-
29 server.1=192.168.204.111:2888:3888
-
30 server.2=192.168.204.112:2888:3888
-
31 server.3=192.168.204.113:2888:3888
c.将master里的zookeeper传给其他俩节点
-
[root@master zkdata]# scp -r /export/software/zookeeper-3.5.9 slave1:/export/software/
-
[root@master zkdata]# scp -r /export/software/zookeeper-3.5.9 slave2:/export/software/
2)创建myid文件
a.创建数据文件目录:mkdir -p /export/data/zookeeper/zkdata
-
[root@master conf]# mkdir -p /export/data/zookeeper/zkdata
-
[root@master conf]# cd /export/data/zookeeper/zkdata
-
[root@master zkdata]# vi myid
b.vi一个myid文件,文件内容为(slave1 为2 ,slave2 为3)
(3)配置环境变量(注意是在系统变量里)
-
[root@slave1 zkdata]# vi /etc/profile
-
-
export ZK_HOME=/export/software/zookeeper-3.5.9
-
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$ZK_HOME/bin:$PATH
传向其他俩节点
-
[root@master zkdata]# scp -r /etc/profile slave1:/etc/
-
[root@master zkdata]# scp -r /etc/profile slave2:/etc/
source /etc/profile
5.启动和关闭Zookeeper
启动Zookeeper:(分别在master、slave1、slave2里面输入)
注意:将master、slave1和slave2的Zookeeper全部开启,再分别查看Zookeeper的状态
[root@master zkdata]# zkServer.sh start
查看Zookeeper状态:
[root@master zkdata]# zkServer.sh status
master:follower
slave1:leader
slave2:follower
四、hadoop高可用集群搭建
1、修改各配置文件,所有的配置文件在/export/software/hadoop-2.4.1/etc/hadoop目录下
a.修改core-site.xml,内容如下:配置hdfs的端口和zookeeper的地址和端口
-
[root@master zkdata]# cd /export/software/hadoop-2.4.1/etc/hadoop
-
[root@master hadoop]# vi core-site.xml
-
<configuration>
-
<!--指定hdfs的nameservices为ns1,集群模式(高可用)-->
-
<property>
-
<name>fs.defaultFS</name>
-
<value>hdfs://cluster</value>
-
</property>
-
<!-- 指定hadoop临时目录-->
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/export/software/hadoop-2.4.1/tmp</value>
-
</property>
-
<!-- 指定ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点-->
-
<property>
-
<name>ha.zookeeper.quorum</name>
-
<value>master:2181,slave1:2181,slave2:2181</value>
-
</property>
-
</configuration>
b.修改hdfs-site.xml,内容如下:
vi hdfs-site.xml
-
<configuration>
-
<!--指定HDFS副本的数量,不能超过机器节点数-->
-
<property>
-
<name>dfs.replication</name>
-
<value>3</value>
-
</property>
-
<!-- 为namenode集群定义一个services name -->
-
<property>
-
<name>dfs.nameservices</name>
-
<value>cluster</value>
-
</property>
-
<!-- nameservice 包含哪些namenode,为各个namenode起名 -->
-
<property>
-
<name>dfs.ha.namenodes.cluster</name>
-
<value>nn01,nn02</value>
-
</property>
-
<!-- 名为nn01的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->
-
<value>master:9000</value>
-
</property>
-
<!--名为nn01的namenode的http地址和端口号,用来和web客户端通讯 -->
-
<property>
-
<name>dfs.namenode.http-address.cluster.nn01</name>
-
<value>master:50070</value>
-
</property>
-
<!-- 名为nn02的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->
-
<property>
-
<name>dfs.namenode.rpc-address.cluster.nn02</name>
-
<value>slave1:9000</value>
-
</property>
-
<!--名为nn02的namenode的http地址和端口号,用来和web客户端通讯 -->
-
<property>
-
<name>dfs.namenode.http-address.cluster.nn02</name>
-
<value>slave1:50070</value>
-
</property>
-
<!-- namenode间用于共享编辑日志的journal节点列表 -->
-
<property>
-
<name>dfs.namenode.shared.edits.dir</name>
-
<value>qjournal://master:8485;slave1:8485;slave2:8485/cluster</value>
-
</property>
-
<!-- journalnode 上用于存放edits日志的目录 -->
-
<property>
-
<name>dfs.journalnode.edits.dir</name>
-
<value>/export/data/hadoop/journaldata</value>
-
</property>
-
<!-- 指定该集群出现故障时,是否自动切换到另一台namenode -->
-
<property>
-
<name>dfs.ha.automatic-failover.enabled.cluster</name>
-
<value>true</value>
-
</property>
-
<!-- 配置失败自动切换实现方式 -->
-
<property>
-
<name>dfs.client.failover.proxy.provider.cluster</name>
-
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
-
</property>
-
<!-- 一旦需要NameNode切换,使用ssh方式进行操作 -->
-
<property>
-
<name>dfs.ha.fencing.methods</name>
-
<value>sshfence
-
shell(/bin/true)
-
</value>
-
</property>
-
<!-- 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置 -->
-
<property>
-
<name>dfs.ha.fencing.ssh.private-key-files</name>
-
<value>/root/.ssh/id_rsa</value>
-
</property>
-
<!-- connect-timeout超时时间 -->
-
<property>
-
<name>dfs.ha.fencing.ssh.connect-timeout</name>
-
<value>30000</value>
-
</property>
-
<property>
-
<name>dfs.name.dir</name>
-
<value>/export/software/hadoop-2.4.1/tmp/dfs/name</value>
-
</property>
-
<property>
-
<name>dfs.data.dir</name>
-
<value>/export/software/hadoop-2.4.1/tmp/dfs/data</value>
-
</property>
-
<!--开启WebHDFS-->
-
<property>
-
<name>dfs.webhdfs.enabled</name>
-
<value>true</value>
-
</property>
-
</configuration>
c.修改yarn-site.xml,内容如下:
vi yarn-site.xml
-
<configuration>
-
-
<!-- Site specific YARN configuration properties -->
-
<!-- 启用Resource Manager HA高可用性 -->
-
<property>
-
<name>yarn.resourcemanager.ha.enabled</name>
-
<value>true</value>
-
</property>
-
<!-- 指定resourcemanager的名字 -->
-
<property>
-
<name>yarn.resourcemanager.cluster-id</name>
-
<value>yrc</value>
-
</property>
-
<!-- 使用了2个resourcemanager,分别指定Resourcemanager的地址 -->
-
<property>
-
<name>yarn.resourcemanager.ha.rm-ids</name>
-
<value>rm1,rm2</value>
-
</property>
-
<!-- 指定rm1的地址 -->
-
<property>
-
<name>yarn.resourcemanager.hostname.rm1</name>
-
<value>master</value>
-
</property>
-
<!-- 指定rm2的地址 -->
-
<property>
-
<name>yarn.resourcemanager.hostname.rm2</name>
-
<value>slave1</value>
-
</property>
-
<!-- 指定zookeeper集群机器 -->
-
<property>
-
<name>yarn.resourcemanager.zk-address</name>
-
<value>master:2181,slave1:2181,slave2:2181</value>
-
</property>
-
<!-- NodeManager上运行的附属服务,默认是mapreduce_shuffle -->
-
<property>
-
<name>yarn.nodemanager.aux-services</name>
-
<value>mapreduce_shuffle</value>
-
</property>
-
</configuration>
d.修改mapred-site.xml(该文件不存在,需要手动创建),cp mapred-site.xml.template mapred-site.xml,内容如下:
-
<configuration>
-
<!-- 采用yarn作为mapreduce的资源调度框架 -->
-
<property>
-
<name>mapreduce.framework.name</name>
-
<value>yarn</value>
-
</property>
-
</configuration>
e.修改slaves文件,内容如下:
-
master
-
slave1
-
slave2
(2)拷贝复制到其它机器(hadoop2、hadoop3)
-
[root@master hadoop]# scp -r /export/software/hadoop-2.4.1/etc/hadoop slave1:/export/software/hadoop-2.4.1/etc/
-
[root@master hadoop]# scp -r /export/software/hadoop-2.4.1/etc/hadoop slave2:/export/software/hadoop-2.4.1/etc/
(3)进入:
-
[root@master data]# cd /export/data/
-
[root@master data]# ls
-
hadoop zookeeper
-
[root@master data]# hdfs zkfc -formatZK
ls 查看是否有zookeeper(即进行过格式化zookeeper),若没有则进行格式化zookeeper:
命令行输入: hdfs zkfc -formatZK
(3)启动Zookeeper(三台虚拟机都进行)
-
[root@hadoop1 data]# zkServer.sh start
-
[root@hadoop1 data]# zkServer.sh stop
(4)进入
-
[]
-
[]
-
hadoop zookeeper
-
[]
-
[]
-
journaldata
-
[]
(5)启动journalnode
-
[]
-
[]
(6)进入
[root@master hadoop]# cd /export/software/hadoop-2.4.1/tmp/
删除文件
[root@master tmp]# rm -rf *
进入
[root@master tmp]# cd /export/software/hadoop-2.4.1/
ls 查看是否有dfs,有则进行删除:(三台虚拟机都需操作)
[root@master hadoop-2.4.1]# rm -rf dfs
(6)格式化hadoop
[root@master tmp]# hadoop namenode -format
ls 查看tmp下是否有dfs,将有dfs的tmp文件拷贝到hadoop2虚拟机上
[root@slave1 tmp]# scp -r /export/software/hadoop-2.4.1/tmp master:/export/software/hadoop-2.4.1/
(7)启动hadoop
-
[]
-
[]
(8) 查看每台节点的进程
五、scala安装及配置
1.启动hadoop(搭建高可用集群的一起启动)
(1)启动Zookeeper(三台虚拟机都进行)
[root@master ~]# zkServer.sh start
(2)启动journalnode(三台虚拟机都进行)
[root@master ~]# hadoop-daemon.sh start journalnode
(3)启动Hadoop
[root@master ~]# start-all.sh
2.scala的安装与配置
(1)安装包的解压(并移动到指定位置)
-
[root@master ~]# tar -zxvf scala-2.12.14.tgz
-
[root@master ~]# mv scala-2.12.14 /export/software/
2)环境变量的配置
在命令行中输入如下命令,打开profile配置文件
-
[root@master ~]# vi /etc/profile
-
-
export SCALA_HOME=/export/software/scala-2.12.14
-
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$ZK_HOME/bin:$PATH
source /etc/profile
测试scala安装 scala -version
在命令行输入scala,能进入scala命令行说明安装成功.
-
[root@master ~]# scala -version
-
Scala code runner version 2.12.14 -- Copyright 2002-2021, LAMP/EPFL and Lightbend, Inc.
-
[root@master ~]# scala
-
Welcome to Scala 2.12.14 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_161).
-
Type in expressions for evaluation. Or try :help.
-
-
scala> :quit
注意!:退出Scala的命令为 :quit
六、spark安装及配置
1.spark的安装与配置
和Scala的安装与配置一样,先进行解压(并移动到指定位置),然后打开profie文件配置环境变量
-
[root@master ~]# tar -zxvf spark-2.1.0-bin-hadoop2.4.tgz
-
[root@master ~]# mv spark-2.1.0-bin-hadoop2.4 /export/software/
2.配置conf/spark-env.sh 文件
进入到conf目录下会发现spark-env.sh为临时文件,须重命名为spark-env.sh
执行如下命令:
-
[root@master ~]# cd /export/software/spark-2.1.0-bin-hadoop2.4/conf/
-
[root@master conf]# ls
-
docker.properties.template metrics.properties.template spark-env.sh.template
-
fairscheduler.xml.template slaves.template
-
log4j.properties.template spark-defaults.conf.template
-
[root@master conf]# mv spark-env.sh.template spark-env.sh
-
[root@master conf]# vi spark-env.sh
-
-
export SCALA_HOME=/export/software/scala-2.12.14
-
export JAVA_HOME=/export/software/jdk1.8.0_161
-
export HADOOP_HOME=/export/software/hadoop-2.4.1
-
# 指定HDFS配置文件目录
-
export HADOOP_CONF_DIR=/export/software/hadoop-2.4.1/etc/hadoop
-
# 在每一个Worker节点上可用的最大内存
-
export SPARK_WORK_MEMORY=4g
-
# 配置主机名
-
export SPARK_MASTER_IP=master
-
# 配置端口号
-
export SPARK_MASTER_PORT=7077
配置conf/slaves 文件 将节点的主机名加入到slaves文件中
-
[]
-
[]
-
-
slave1
-
slave2
3.启动Spark集群
在启动前,将scala文件、spark文件以及etc目录下的profile文件传给slave1和slave2,并在slave1和slave2命令行中输入source /etc/profile使环境变量生效
进入spark目录下,输入如下命令:
-
[root@master conf]# scp -r /export/software/spark-2.1.0-bin-hadoop2.4 slave1:/export/software/
-
[root@master conf]# scp -r /export/software/spark-2.1.0-bin-hadoop2.4 slave2:/export/software/
-
[root@master conf]# scp -r /etc/profile slave1:/etc/
-
[root@master conf]# scp -r /etc/profile slave2:/etc/
[root@master spark-2.1.0-bin-hadoop2.4]# sbin/start-all.sh
5.配置HistoryServer(无要求可不配置)
(1)默认情况下,Spark程序运行完毕后,就无法再查看运行记录的WebUI,通过HistoryServer可以提供一个服务,通过读取日志文件,使得我们可以在程序运行结束后,依然能够查看运行过程。
(2)复制spark-defaults.conf,以供修改
(3)将以下内容复制到spark-default.conf末尾处,通过这段配置,可以指定spark将日志输入到HDFS中
-
[]
-
[]
-
docker.properties.template metrics.properties.template spark-env.sh
-
fairscheduler.xml.template slaves
-
log4j.properties.template spark-defaults.conf.template
-
[]
-
[]
-
-
spark.eventLog.enabled true
-
-
spark.eventLog.dir hdfs://master:8020/spark_log
-
-
spark.eventLog.compress true
(4)将以下内容复制到spark-env.sh的末尾,配置HistoryServer启动参数,使得HistoryServer在启动的时候读取HDFS中写入的spark日志
-
[root@master conf]# vi spark-env.sh
-
-
# 指定HIstoryServer运行参数
-
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:9000/history"
-
spark运行jar包
[root@master bin]# ./spark-submit --class cn.movie.movie_01 /root/movie.jar
七、Hbase安装及配置
先进行解压(并移动到指定位置),然后打开profie文件配置环境变量
-
[root@master ~]# tar -zxvf hbase-1.2.4-bin.tar.gz
-
[root@master ~]# mv hbase-1.2.4 /export/software/
-
[root@master ~]# vi /etc/profile
-
-
export HBASE_HOME=/export/software/hbase-1.2.4
-
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$ZK_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin:$PATH
-
-
[root@master ~]# source /etc/profile
-
[root@master ~]# hbase version
-
HBase 1.2.4
-
Source code repository git://asf-dev/home/busbey/projects/hbase revision=67592f3d062743907f8c5ae00dbbe1ae4f69e5af
-
Compiled by busbey on Tue Oct 25 18:10:20 CDT 2016
-
From source with checksum b45f19b5ac28d9651aa2433a5fa33aa0
传给另外两个节点
-
[root@master ~]# scp -r /etc/profile slave1:/etc/
-
[root@master ~]# scp -r /etc/profile slave2:/etc/
-
-
分别在slave1和slave2中:
-
source /etc/profile
配置相关文件:
1、vi /export/software/hbase-1.2.4/conf/hbase-env.sh
-
[root@master ~]# vi /export/software/hbase-1.2.4/conf/hbase-env.sh
-
# 配置jdk
-
26 # The java implementation to use. Java 1.7 required.
-
27 export JAVA_HOME=/export/software/jdk1.8.0_161
-
# 为46,47行添加注释(前面加 #)
-
46 # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
-
47 # export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
-
# 删除120行的#,解除注释
-
120 export HBASE_PID_DIR=/var/hadoop/pids
-
# 删除128行的#,解除注释,并将true改为false
-
128 export HBASE_MANAGES_ZK=false
2、vi /export/software/hbase-1.2.4/conf/hbase-site.xml
-
<configuration>
-
<property>
-
<name>hbase.rootdir</name>
-
# 主节点的ip
-
<value>hdfs://192.168.204.124:9000/HBase</value>
-
</property>
-
-
<property>
-
<name>hbase.cluster.distributed</name>
-
<value>true</value>
-
</property>
-
-
<property>
-
<name>hbase.zookeeper.quorum</name>
-
# 三台节点各自的ip
-
<value>192.168.204.124,192.168.204.125,192.168.204.126</value>
-
</property>
-
-
<property>
-
<name>hbase.zookeeper.property.dataDir</name>
-
<value>/export/data/zookeeper/zkdata</value>
-
</property>
-
<property>
-
<name>hbase.master.info.port</name>
-
<value>60010</value>
-
</property>
-
</configuration>
3、vi /export/software/hbase-1.2.4/conf/regionservers
-
192.168.204.124:2888
-
192.168.204.125:2888
-
192.168.204.126:2888
4、传给另外两节点
-
[root@master ~]# scp -r /export/software/hbase-1.2.4 slave1:/export/software/
-
[root@master ~]# scp -r /export/software/hbase-1.2.4 slave2:/export/software/
5、开启hbase
-
master的开启:
-
[root@master ~]# hbase-daemon.sh start master
-
slave1的开启:
-
[root@slave1 ~]# hbase-daemon.sh start regionserver
-
slave2的开启:
-
[root@slave2 ~]# hbase-daemon.sh start regionserver
八、mysql安装及配置
1、yum install wget命令安装wget
-
[root@master ~]# yum install wget
-
[root@master ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
2、下载mysql
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
[root@master ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
3、安装mysql的依赖包
[root@master ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
4、安装mysql数据库
[root@master ~]# yum -y install mysql-community-server
5、完成安装,重启mysql
-
[]
-
[]
6、重启服务后,直接使用root账户登录:
命令:mysql -u root 直接登陆
出现
则需要重置密码:
第一步就是跳过MySQL的密码认证过程,方法如下:
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
-
-
vi /etc/my.cnf
-
-
[mysqld]
-
skip-grant-tables
mysql -u root -p
此时会显示让你输入密码,直接回车,就可以成功连接Mysql
7、进去MySQL后修改root账户密码
use mysql; // 打开系统数据库mysql
update user set password=password('new password') where user='root'; //修改密码为new password
出现
-
mysql> update user set password=password('277877061#xyl') where user='root';
-
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
-
mysql> update mysql.user set authentication_string=password('277877061#xyl') where user=='root';
-
Query OK, 1 row affected, 1 warning (0.00 sec)
-
Rows matched: 1 Changed: 1 Warnings: 1
-
mysql> flush privileges;
-
Query OK, 0 rows affected (0.00 sec)
8、退出mysql:
-
mysql> quit
-
Bye
9、将之前修改vi /etc/my.cnf里面的skip-grant-tables删除并保存退出
退出,重新输密码进入
设置的url没有连接mysql的权限,解决方法如下
在本机先使用root用户登录mysql:
[root@hadoop1 bin]# mysql -u root -p
进行授权操作:
-
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
-
mysql> FLUSH PRIVILEGES;
九、hive安装及配置
1.下载hive压缩包
2.上传到虚拟机
3.解压(并移动到指定位置)
-
[root@master ~]# tar -xzvf apache-hive-2.1.1-bin.tar.gz
-
[root@master ~]# mv apache-hive-2.1.1-bin /export/software/
4.配置环境变量
-
[root@master ~]# vi /etc/profile
-
-
export HIVE_HOME=/export/software/apache-hive-2.1.1-binexport PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$ZK_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin:$PATH
-
[root@master ~]# source /etc/profile
5.配置文件管理
首先进入hive下的conf目录把所有带template后缀的文件移除后缀。
示例:$ cp hive-env.sh.template hive-env.sh /*去掉template后缀*/
-
[root@master ~]# cd /export/software/apache-hive-2.1.1-bin/
-
[root@master apache-hive-2.1.1-bin]# cd conf/
-
[root@master conf]# ls
-
beeline-log4j2.properties.template ivysettings.xml
-
hive-default.xml.template llap-cli-log4j2.properties.template
-
hive-env.sh.template llap-daemon-log4j2.properties.template
-
hive-exec-log4j2.properties.template parquet-logging.properties
-
hive-log4j2.properties.template
-
[root@master conf]# cp hive-env.sh.template hive-env.sh
其中hive-default.xml移除后缀后,需要修改名为hive-site.xml。
$mv hive-default.xml hive-site.xml /*改名*/
-
[root@master conf]# cp hive-default.xml.template hive-default.xml
-
[root@master conf]# mv hive-default.xml hive-site.xml
A.编辑 hive-env.sh文件
因为Hive使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:
-
[root@master conf]# vi hive-env.sh
-
-
export JAVA_HOME=/export/software/jdk1.8.0_161
-
export HADOOP_HOME=/export/software/hadoop-2.4.1
-
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
-
export HIVE_HOME=/export/software/apache-hive-2.1.1-bin
-
export HIVE_CONF_DIR=$HIVE_HOME/conf
-
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib
B.修改hive-log4j2.properties,配置hive的log
-
[root@master conf]# cp hive-log4j2.properties.template hive-log4j2.properties
-
[root@master conf]# vi hive-log4j2.properties
-
-
property.hive.log.dir=/export/software/apache-hive-2.1.1-bin/logs
-
property.hive.log.file=hive.log
C.修改hive-site.xml
在/export/software/apache-hive-2.1.1-bin/下新建一个tmp目录,在tmp/下新建一个hduser目录
mkdir tmp
mkdir tmp/hduser
-
[]
-
[]
-
[]
-
[]
-
hduser
将hive-site.xml文件中:
-- 凡是${system:java.io.tmpdir}都替换成:/export/software/apache-hive-2.1.1-bin/tmp
-- 凡是${system:user.name}都替换为hduser
D.配置Hive Metastore
默认情况下, Hive的元数据保存在了内嵌的derby数据库里, 但一般情况下生产环境使用MySQL来存放Hive元数据。
1) 将 mysql-connector-java-5.1.40.jar 放入 $HIVE_HOME/lib 下。(mysql jdbc驱动程序)
2) hive-site.xml 中配置 MySQL 数据库连接信息:
注意使用新的mysql安装驱动后,配置的hive-site.xml 文件下
需要将 com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver
特别说明:从 Hive 2.1 版本开始, 在第一次运行hive之前,需要先运行schematool命令来执行初始化操作
[root@hadoop1 bin]# schematool -initSchema -dbType mysql
十、kafka的安装及配置
1.下载kafka压缩包
2.上传到虚拟机
3.解压(并移动到指定位置)
-
[root@master ~]# tar -zxvf kafka-2.4.1
-
[root@master ~]# mv kafka-2.4.1 /export/software/
4.配置环境变量
-
[root@master ~]# vi /etc/profile
-
-
export KAFKA_HOME=/export/software/kafka-2.4.1
-
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$ZK_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HBASE_HOME/bin:$FLUME_HOME/bin:$KAFKA_HOME/bin:$FLINK_HOME/bin
-
-
source /etc/profile
5.配置文件
1)master里面server.properties
-
[root@master config]# vi server.properties
-
-
broker.id=0
-
port=9092
-
log.dir=/tmp/kafka-logs
-
host.name=master
-
# listeners = PLAINTEXT://your.host.name:9092
-
listeners=PLAINTEXT://master:9092
-
advertised.listeners=PLAINTEXT://master:9092
-
log.dir=/tmp/kafka-logs
-
zookeeper.connect=master:2181,slave1:2181,slave2:2181
2)slave1里面修改server.properties为server-1.properties
-
[root@slave1 ~]# vi /export/software/kafka-2.4.1/config/server-1.properties
-
-
broker.id=1
-
port=9093
-
log.dir=/tmp/kafka-logs-1
-
host.name=slave1
-
listeners=PLAINTEXT://slave1:9093
-
advertised.listeners=PLAINTEXT://slave1:9093
-
log.dir=/tmp/kafka-logs-1
-
zookeeper.connect=master:2181,slave1:2181,slave2:2181
3)slave2中将server.properties为server-2.properties
-
[root@slave2 ~]# vi /export/software/kafka-2.4.1/config/server-2.properties
-
-
broker.id=2
-
port=9094
-
host.name=slave2
-
log.dir=/tmp/kafka-logs3
-
listeners=PLAINTEXT://slave2:9094
-
advertised.listeners=PLAINTEXT://slave2:9094
-
log.dir=/tmp/kafka-logs3
-
zookeeper.connect=master:2181,slave1:2181,slave2:2181
6.在多个节点启动kafka命令
-
#在每个节点的$KAFKA_HOME 目录下执行
-
#master节点
-
bin/kafka-server-start.sh config/server.properties
-
#slave1节点
-
bin/kafka-server-start.sh config/server-1.properties
-
#slave2节点
-
bin/kafka-server-start.sh config/server-2.properties
kafka生产者消费者实例
创建一个名为itcasttopic的主题,命令如下:
kafka-topics.sh --create --topic lxy1 --partitions 3 --replication-factor 2 --zookeeper master:2181,slave1:2181,salve2:2181/kafka
创建成功后,就可以创建生产者生产消息
kafka-console-producer.sh --broker-list master:9092,sle1:9093,slave2:9094 --topic lxy1
创建消费者信息
创建了生产者之后,可以看到光标保持在等待输入状态,切换至slave1来创建消费者
kafka-console-consumer.sh --from-beginning --topic lxy1 --bootstrap-server master:9092,slave1:9093,slave2:9094
十一、Flume的安装及配置
1.下载flume压缩包
2.上传到虚拟机
3.解压(并移动到指定位置)
4.配置环境变量
-
[root@master ~]# vi /etc/profile
-
-
export FLUME_HOME=/export/software/flume-1.8.0
-
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$ZK_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HBASE_HOME/bin:$FLUME_HOME/bin:$KAFKA_HOME/bin:$FLINK_HOME/bin
-
-
source /etc/profile
5.配置文件
在flume-1.8.0/job/ 下的flume-kafka.conf
mkdir /export/software/flume-1.8.0/job/
-
[root@master flume-1.8.0]# vi job/flume-kafka.conf
-
-
a1.sources=r1
-
a1.sinks=k1
-
a1.channels=c1
-
-
a1.sources.r1.type=exec
-
a1.sources.r1.command=tail -F /export/software/test/result.txt
-
#设置Kafka接收器
-
a1.sinks.k1.type=org.apache.flume.sink.kafka.KafkaSink
-
#设置已有的kafka主题
-
a1.sinks.k1.topic=xylsb
-
#设置Kafka的broker地址和端口号
-
a1.sinks.k1.brokerList=192.168.204.124:9092
-
a1.sinks.k1.requiredAcks=1
-
a1.sinks.k1.batchSize=20
-
-
a1.channels.c1.type=memory
-
a1.channels.c1.capacity=1000
-
a1.channels.c1.transactionCapacity=100
-
-
a1.sources.r1.channels=c1
-
a1.sinks.k1.channel=c1
启动flume
[root@master flume-1.8.0]# flume-ng agent --conf conf/ --name a1 --conf-file job/flume-kafka.conf
启动kafka
[root@master software]# kafka-console-consumer.sh --bootstrap-server master:9092 --from-beginning --topic xylsb
十二、Flink的安装及配置
1.下载flink压缩包
2.上传到虚拟机
3.解压(并移动到指定位置)
4.配置环境变量
-
[root@master ~]# vi /etc/profile
-
-
export FLINK_HOME=/export/software/flink-1.8.0
-
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$ZK_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HBASE_HOME/bin:$FLUME_HOME/bin:$KAFKA_HOME/bin:$FLINK_HOME/bin
-
-
source /etc/profile
5.配置文件
-
[]
-
-
jobmanager.rpc.address: master
-
[]
-
-
slave1
-
slave2
分发节点
-
scp -r /export/software/flink-1.4.1 slave1:/export/software/
-
scp -r /export/software/flink-1.4.1 salve2:/export/software/
启动FLINK
停止FLINK
bin/stop-cluster.sh
十三、Redis的安装及配置
1.下载flink压缩包
2.上传到虚拟机
3.解压(并移动到指定位置)
-
[root@master ~]# tar -zxvf redis-3.0.4.tar.gz
-
[root@master ~]# mv redis-3.0.4 /export/software/
4.进入解压目录并编译Redis
-
[]
-
-
[]
-
-
[]
-
-
[]
5.启动redis服务,并指定配置文件
-
[root@master redis-3.0.4]# ./src/redis-server redis.conf
-
# 开启新的master窗口,运行客户端进行连接
-
[root@master redis-3.0.4]# ./src/redis-cli -p 6379
-
127.0.0.1:6379>
127.0.0.1是本机的IP,Redis服务器默认使用6379端口(使用-port参数可以自定义端口号)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaeefi
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24