大数据平台搭建

一、安装前准备

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)进入

[root@master data]# cd /export/data/
[root@master data]# ls
hadoop  zookeeper
[root@master data]# cd hadoop/
[root@master hadoop]# ls
journaldata
[root@master hadoop]# rm -rf journaldata/

(5)启动journalnode

[root@master hadoop]# hadoop-daemon.sh start journalnode
[root@master hadoop]# hadoop-daemon.sh stop 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

[root@master tmp]# start-all.sh
[root@master tmp]# stop-all.sh

(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文件中

[root@master conf]# mv slaves.template slaves
[root@master conf]# vi 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中

[root@master spark-2.1.0-bin-hadoop2.4]# cd conf/
[root@master conf]# ls
docker.properties.template  metrics.properties.template   spark-env.sh
fairscheduler.xml.template  slaves
log4j.properties.template   spark-defaults.conf.template
[root@master conf]# mv spark-defaults.conf.template spark-defaults.conf
[root@master conf]# vi spark-defaults.conf

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

[root@master ~]# systemctl restart mysqld
[root@master ~]# netstat -anplt

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

[root@master conf]# mkdir tmp
[root@master conf]# mkdir tmp/hduser
[root@master conf]# cd tmp/
[root@master tmp]# ls
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.配置文件

[root@master conf]# vi flink-conf.yaml

jobmanager.rpc.address: master
[root@master conf]# vi slaves

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

[root@master ~]# cd /export/software/redis-3.0.4/
#  安装gcc插件
[root@master redis-3.0.4]# yum -y install gcc*
#  清空,不然会有问题的
[root@master redis-3.0.4]# make distclean
#  安装,编译:
[root@master redis-3.0.4]# make

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参数可以自定义端口号)

  • 13
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值