前言
之前已经写过大数据搭建的蛮多文章了,这次为了比赛,再写一篇
系统配置
节点信息
ip
系统
master
192.168.128.100
centos7
slave1
192.168.128.101
centos7
slave2
192.168.128.102
centos7
安装包环境如下
hadoop
2.6.0
zookeeper
3.4.5
sqoop
1.4.7
spark
2.0.0
scala
2.11.11
java
1.8.0_191
hbase
1.2.0
storm
1.0.4
hive
1.1.0
flume
1.6.0
kafka
2.11-1.0.0
本文不写前置配置
例如什么静态网络配置,ssh免密登录,安装java,修改映射之类的,有需求看之前的文章,之前写的很详细,如果有错误请联系我
环境变量配置在/root/.bash_profile
所以安装包放置/usr/local/src/software下
安装目录在/usr/local/src
环境变量信息如下
#java export JAVA_HOME=/usr/local/src/jdk1.8.0_191 export PATH=$PATH:$JAVA_HOME/bin #hadoop export HADOOP_HOME=/usr/local/src/hadoop-2.6.0 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin #zookeeper export ZOOKEEPER_HOME=/usr/local/src/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin #hive export HIVE_HOME=/usr/local/src/hive export PATH=$PATH:$HIVE_HOME/bin #scala export SCALA_HOME=/usr/local/src/scala-2.11.11 export PATH=$PATH:$SCALA_HOME/bin #spark export SPARK_HOME=/usr/local/src/spark-2.0.0 export PATH=$PATH:$SPARK_HOME/bin #hbase export HBASE_HOME=/usr/local/src/hbase-1.2.0 export PATH=$PATH:$HBASE_HOME/bin #sqoop export SQOOP_HOME=/usr/local/src/sqoop-1.4.7 export PATH=$PATH:$SQOOP_HOME/bin #storm export STORM_HOME=/usr/local/src/storm-1.0.4 export PATH=$PATH:$STORM_HOME/bin #kafka export KAFKA_HOME=/usr/local/src/kafka_2.11 export PATH=$PATH:$KAFKA_HOME/bin
记得保存
source /root/.bash_profile
配置时间同步
1.时间服务器配置(必须root用户):
1.检查ntp服务是否安装
[root@master ~]# rpm -qa|grep ntp ntp-4.2.6p5-29.el7.centos.2.x86_64 ntpdate-4.2.6p5-29.el7.centos.2.x86_64 没有安装就yum -y install ntp安装
2.修改ntp配置文件
server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst为 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst [root@master ~]# vi /etc/ntp.conf 修改文件如下 #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst为 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst 添加 server 127.127.1.0 fudge 127.127.1.0 stratum 10
3)修改/etc/sysconfig/ntpd 文件
[root@master ~] vim /etc/sysconfig/ntpd 添加 SYNC_HWCLOCK=yes
(4)重新启动ntpd服务
[root@master ~]# service ntpd status [root@master ~]# service ntpd start
(5)设置ntpd服务开机启动
[root@master ~]# chkconfig ntpd on
2.其他机器配置(必须root用户)
(1)在其他机器配置10分钟与时间服务器同步一次
[root@slave1 ~]# crontab -e 编写定时任务如下: */10 * * * * /usr/sbin/ntpdate master
(2)修改任意机器时间
[root@slave1 ~]# date -s "2017-9-11 11:11:11"
(3)十分钟后查看机器是否与时间服务器同步
提示:测试的时候可以将10分钟调整为1分钟,节省时间。
安装Hadoop
1、解压
[root@master software]# tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local/src/
2、测试安装环境变量(环境变量之前已经配置好)
[root@master software]# hadoop version Hadoop 2.6.0 Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r e3496499ecb8d220fba99dc5ed4c99c8f9e33bb1 Compiled by jenkins on 2014-11-13T21:10Z Compiled with protoc 2.5.0 From source with checksum 18e43357c8f927c0695f1e9522859d6a This command was run using /usr/local/src/hadoop-2.6.0/share/hadoop/common/hadoop-common-2.6.0.jar
3、 修改配置文件
1.core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp</value> </property> </configuration>
2.hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp/data</value> </property> <property> <name>dfs.name.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp/name</value> </property> </configuration>
export JAVA_HOME=/usr/local/src/jdk1.8.0_191
export JAVA_HOME=/usr/local/src/jdk1.8.0_191
5.mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
6.yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration>
7.slaves
8.直接把配置好的hadoop包传到剩下两个子节点同样的位置下
[root@master src]# scp -r hadoop-2.6.0/ slave1:/usr/local/src/ [root@master src]# scp -r hadoop-2.6.0/ slave2:/usr/local/src
9.测试
# 只要在主节点上启动,执行过程可能稍慢,耐心等待 # 先格式化 [root@master hadoop-2.6.0]# bin/hdfs namenode -format #启动 [root@master hadoop-2.6.0]# sbin/start-all.sh
master上的节点
slave1上的节点
slave2上的节点
在浏览器上访问可视化页面:http://192.168.128.100:50070/
能进入就问题不大.
到此为止,hadoop配置就结束了。
安装zookeeper
1、解压
[root@master software]# tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/src/ [root@master software]# cd .. [root@master src]# mv zookeeper-3.4.5/ zookeeper/
2、 修改配置文件
我们在zookpeeper的目录下能看到一个conf的文件夹,进入把zoo_sample.cfg重命名
mv zoo_sample.cfg zoo.cfg
然后进入zoo.cfg
在文件中修改datadir的路径和添加server的配置
例如可以改为
同时创建dataDir属性值所指定的目录
在zkData目录下创建myid文件,修改值为1,如:
[root@master ~]# cd /usr/local/src/zookeeper/data/ [root@master data]# touch myid [root@master data]# echo 1 > myid
然后在其他两台机器上进行相同的操作,只不过要把myid的值改为2和3就行
安装完成后
在zookpeeper目录下
在三个节点上分别执行命令,启动服务: zkServer.sh start
在三个节点上分别执行命令,查看状态: zkServer.sh status
正确结果应该是:三个节点中其中一个是
leader ,另外两个是 follower
在三个节点上分别执行命令:
jps
检查三个节点是否都有
QuromPeerMain 进程
master上
slave1上
slave2上
这里可以看出我们的zookeeper安装完成了
这里附上两个脚本,一键开关zookeeper
start-zk.sh
# !/bin/sh for host in master slave1 slave2 do ssh $host "source /root/.bash_profile ;/usr/local/src/zookeeper/bin/zkServer.sh start" echo "$host zk is running" done
stop-zk.sh
# !/bin/sh for host in master slave1 slave2 do echo "$host zk is stopping" ssh $host "source /root/.bash_profile ;/usr/local/src/zookeeper/bin/zkServer.sh stop" done
写完之后,记得给权限
chmod +x start-zk.sh和chmod +x stop-zk.sh
Hadoop的HA搭建
我们需要先把之前格式化生成的文件删除,并且修改hadoop的配置文件,基本等同于重新搭建了一个hadoop集群
#删除之前的缓存文件 [root@master hadoop-2.6.0]# rm -rf tmp/ logs/
修改配置文件
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.name.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp/name</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp/data</value> </property> <property> <name>dfs.nameservices</name> <value>myhadoop</value> </property> <property> <name>dfs.ha.namenodes.myhadoop</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.myhadoop.nn1</name> <value>master:9000</value> </property> <property> <name>dfs.namenode.rpc-address.myhadoop.nn2</name> <value>slave1:9000</value> </property> <property> <name>dfs.namenode.http-address.myhadoop.nn1</name> <value>master:50070</value> </property> <property> <name>dfs.namenode.http-address.myhadoop.nn2</name> <value>slave1:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://master:8485;slave1:8485;slave2:8485/myhadoop</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp/jn</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>shell(/bin/true)</value> </property> <property> <name>dfs.ha.fencing.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property> <property> <name>dfs.permissions.enable</name> <value>false</value> </property> <property> <name>dfs.client.failover.proxy.provider.myhadoop</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://myhadoop</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/src/hadoop-2.6.0/tmp</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>master:2181,slave1:2181,slave2:2181</value> </property> </configuration>
yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--启用resourcemanager ha--> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!--声明两台resourcemanager的地址--> <property> <name>yarn.resourcemanager.cluster-id</name> <value>cluster-yarn1</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>master</value> </property> <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> <!--启用自动恢复--> <property> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> <!--指定resourcemanager的状态信息存储在zookeeper集 群--> <property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property>
mapred-site.xml之前配置过不用修改
hadoop-env.sh之前配置过不用修改
yarn-site.sh之前配置过不用修改
slaves之前配置过不用修改
修改完成后
启动
在保证zookeeper启动的情况下
启动各节点的journalnode
[root@master hadoop-2.6.0]# sbin/hadoop-daemon.sh start journalnode [root@slave1 hadoop-2.6.0]# sbin/hadoop-daemon.sh start journalnode [root@slave2 hadoop-2.6.0]# sbin/hadoop-daemon.sh start journalnode
启动成功后,进行格式化
[root@master hadoop-2.6.0]# bin/hdfs namenode -format
格式化成功
显示格式化成功后,我们启动master上的NameNode
sbin/hadoop-daemon.sh start namenode
启动成功后,在slave1上进行元数据的同步
在slave1的hadoop文件夹下输入
bin/hdfs namenode -bootstrapStandby
如图显示同步成功后:
把master上的NameNode关闭
关闭master上的NameNode后,我们还需要初始化zookpeeper的状态
我们看到如图所示的时候代表初始化成功:
测试
当我们上面的步骤都完成后,我们可以开始启动集群进行测试HA环境的搭建是否成功
先在master上启动所有节点
之后我们还需要手动启动jobhistoryserver
sbin/mr-jobhistory-daemon.sh start historyserver
然后在slave1上我们还布置了一个resourcemanager,这个也是在start-all.sh时无法启动,我们需要在slave1下自行启动
在slave1的hadoop目录下,执行
sbin/yarn-daemon.sh start resourcemanager
这就是启动HadaoopHA上要启动的节点
master上的
slave1上的
slave2的
我们看下web端的显示信息
现在在活动的节点是master上的namenode,resourcemanager我们可以手动kill掉,看看故障是否会自动转移,实现ha的基本意义
kill掉master上的namenode,查看网页端
发现slave1上的namenode变为了active,也就是自动故障转移了,resourcemanager的就不在演示了
这里基本可以说明我们的hadoop的ha配置完成了
安装hive
1、解压
# 注意:Hive只需要在master节点上安装配置 [root@master ~]# cd /usr/local/src/software/ [root@master software]# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/src/ [root@master software]# cd .. [root@master src]# mv apache-hive-1.2.1-bin/ hive
2、 安装mysql
hive它有自己的内置数据库derby,但是hive 使用derby 数据库存在不支持多个连接的问题,所以我们一般会使用mysql来代替hive的元数据库
我们的mysql版本为5.7.18,安装文件如下: mysql-community-client-5.7.18-1.el7.x86_64.rpm mysql-community-common-5.7.18-1.el7.x86_64.rpm mysql-community-libs-5.7.18-1.el7.x86_64.rpm mysql-community-server-5.7.18-1.el7.x86_64.rpm 我们按照顺序安装即可 注之前的liunx带的MariaDB要卸载 [root@master ~]# rpm -qa | grep mariadb mariadb-libs-5.5.52-2.el7.x86_64 然后卸载 [root@master ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 [root@master 5.7.18]#rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm [root@master 5.7.18]# rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm [root@master 5.7.18]# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rp m [root@master 5.7.18]# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rp m 安装之后查看安装情况 [root@master 5.7.18]# rpm -qa | grep mysql mysql-community-common-5.7.18-1.el7.x86_64 mysql-community-client-5.7.18-1.el7.x86_64 mysql-community-libs-5.7.18-1.el7.x86_64 mysql-community-server-5.7.18-1.el7.x86_64 之后自己修改一下mysql的密码即可 修改过程可以看这个博客 https://blog.csdn.net/qq_35354260/article/details/83182900 [root@master ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.18 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 安装完成 同时我们还需要去网上下载mysql的驱动包(mysql-connector-java-5.1.26.jar)把这个驱动包放置在hive目录下的lib目录下。
4、 修改配置文件
[root@master software]# cd .. [root@master src]# cd hive/ [root@master hive]# cd conf/ [root@master conf]# vim hive-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456(填写mysql的用户密码,这里是root用户的密码)</value> </property> <property> <name>hive.exec.scratchdir</name> <value>/usr/local/src/set/hive/tmp</value> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/usr/local/src/set/hive/tmp/local</value> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/usr/local/src/set/hive/tmp/resources</value> </property> </configuration> [root@master conf]# vim hive-env.sh export HADOOP_HOME=/usr/local/src/hadoop-2.6.0 export JAVA_HOME=/usr/local/src/jdk1.8.0_121
配置mysql
初始化mysql
[root@master hive]# schematool -initSchema -dbType mysql
显示如下就是成功
这样
Hive 的元数据库就配置完成
注:
如果没成功的话.可能是hadoop目录下的**/share/hadoop/yarn/lib/** 中的jline-0.9.94.jar 文件太老了,我们需要将hive的lib中的jline-2.12.jar放到hadoop的/share/hadoop/yarn/lib/中,同时将老版本的jline删除
另外注:如果hive的初始化失败,可能是在mysql中没赋权的原因,需要在mysql中配置
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
才能顺利初始化
测试
进入Hive 命令行 执行命令 创建一个名为 test 的表 查询该表的记录数:
hive> create table test(id int); hive> select count(*) from test;
如果查询结果为0,则成功
到这里,hive的安装也就完成了
安装scala
1、解压
[root@master ~]# cd /usr/local/src/software/ [root@master software]# tar -zxvf scala-2.11.11.tgz -C /usr/local/src/
2、查看版本(环境变量已经配置好)
[root@master scala-2.11.6]# scala -version Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
然后在剩下两个子节点中重复上述步骤
[root@slave1 src]# scala -version Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL [root@slave2 ~]# scala -version Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
安装完成
安装spark
1、解压
[root@master ~]# cd /usr/local/src/software/ [root@master software]# tar -zxvf spark-2.0.0-bin-hadoop2.6.gz -C /usr/local/src/
2、 修改配置文件(spark的HA)
[root@master spark-2.0.0]# cd conf/ root@master conf]# mv spark-env.sh.template spark-env.sh [root@master conf]# vim spark-env.sh export JAVA_HOME=/usr/local/src/jdk1.8.0_191 export SPARK_MASTER_PORT=7077 export HADOOP_HOME=/usr/local/src/hadoop-2.6.0 export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.6.0/etc/hadoop export SCALA_HOME=/usr/local/src/scala-2.11.11 export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark" [root@master conf]# mv slaves.template slaves [root@master conf]# vim slaves master slave1 slave2
然后在剩下两个子节点中重复上述步骤!
开启与测试
当在三台机器上配置完成后,在master上的节点上启动
[root@master spark-2.0.0]# sbin/start-all.sh starting org.apache.spark.deploy.master.Master, logging to /usr/local/src/spark-2.0.0/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out slave1: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/src/spark-2.0.0/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out slave2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/src/spark-2.0.0/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out master: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/src/spark-2.0.0/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out [root@master spark-2.0.0]# jps 4001 JobHistoryServer 2930 DataNode 6531 Master 3125 JournalNode 3301 DFSZKFailoverController 6600 Worker 3401 ResourceManager 3497 NodeManager 2686 QuorumPeerMain 2830 NameNode 6702 Jps [root@slave1 hadoop-2.6.0]# jps 2434 DataNode 2307 QuorumPeerMain 2372 NameNode 6103 Worker 6184 Jps 2681 NodeManager 3082 ResourceManager 2587 DFSZKFailoverController 2511 JournalNode [root@slave2 spark-2.0.0]# jps 2274 QuorumPeerMain 2403 JournalNode 2518 NodeManager 4296 Worker 2332 DataNode 4463 Jps
查看进程发现spark集群只有master成功启动了Master进程,其他2个节点均没有启动成功,需要手动启动
root@slave1 spark-2.0.0]# sbin/start-master.sh starting org.apache.spark.deploy.master.Master, logging to /usr/local/src/spark-2.0.0/logs/spark-root-org.apache.spark.deploy.master.Master-1-slave1.out [root@slave1 spark-2.0.0]# jps 2434 DataNode 2307 QuorumPeerMain 2372 NameNode 6103 Worker 6296 Jps 2681 NodeManager 3082 ResourceManager 2587 DFSZKFailoverController 2511 JournalNode 6223 Master [root@slave2 spark-2.0.0]# sbin/start-master.sh starting org.apache.spark.deploy.master.Master, logging to /usr/local/src/spark-2.0.0/logs/spark-root-org.apache.spark.deploy.master.Master-1-slave2.out [root@slave2 spark-2.0.0]# jps 2274 QuorumPeerMain 2403 JournalNode 2518 NodeManager 4296 Worker 2332 DataNode 4399 Master 4463 Jps
这里我们可以进入web端查看spark的状态
master处于是ALIVE状态
slave1与slave2处于均是STANDBY状态
跑了pi试下
[root@master spark-2.0.0]# bin/spark-submit --class org.apache.spark.examples.SparkPi --master local examples/jars/spark-examples_2.11-2.0.0.jar
成功了
spark安装完成
安装Hbase
1、解压
[root@master ~]# cd /usr/local/src/software/ [root@master software]# tar -zxvf hbase-1.2.0-bin.tar.gz -C /usr/local/src/
2、 修改配置文件
我们需要修改hbase-env.sh和hbase-site.xml,还有regionservers文件
[root@master hbase-1.2.0]# cd conf/ [root@master conf]# vim hbase-env.sh export JAVA_HOME=/usr/local/src/jdk1.8.0_191 export HBASE_LOG_DIR=${HBASE_HOME}/logs export HBASE_MANAGES_ZK=false export HBASE_PID_DIR=/usr/local/src/hbase-1.2.0/pid [root@master conf]# vim hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/src/zookeeper/data</value> </property> <property> <name>hbase.tmp.dir</name> <value>/usr/local/src/hbase-1.2.0/data</value> </property> <property> <name>hbase.master</name> <value>hdfs://master:60000</value> </property> <property> <name>hbase.master.info.port</name> <value>16010</value> </property> <property> <name>hbase.regionserver.info.port</name> <value>16030</value> </property> </configuration> [root@master conf]# vim regionservers master slave1 slave2
修改完配置文件后,之后创建data文件夹,按上面写的目录创建
4、其他两个子节点的配置
把上面配置好的hbase整个文件夹传过去
[root@master src]# scp -r hbase-1.2.0/ slave1:/usr/local/src/ [root@master src]# scp -r hbase-1.2.0/ slave2:/usr/local/src/
5、测试
注意:测试Hbase之前,zookeeper和hadoop需要提前启动起来
[root@master hbase-1.2.0]# bin/start-hbase.sh [root@master hbase-1.2.0]# jps
正确结果:主节点上显示:HMaster / 子节点上显示:HRegionServer
进入192.168.128.100:16010
到此为止,Hbase配置就结束了
安装Sqoop
1、解压
# 注意:Sqoop只需要在master节点上安装配置 [root@master ~]# cd /usr/local/src/software/ [root@master software]# tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local/src/ [root@master src]# mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6
验证环境变量配置是否成功
出现类似上图即成功,如果出现警告信息可以参考这篇文章,需要注释一些配置文件
https://blog.csdn.net/wx1528159409/article/details/87948866
3、修改配置文件
[root@master sqoop-1.4.6]# cd conf/ [root@master conf]# mv sqoop-env-template.sh sqoop-env.sh [root@master conf]# vim sqoop-env.sh #Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/usr/local/src/hadoop-2.6.0 #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/usr/local/src/hadoop-2.6.0 #set the path to where bin/hbase is available export HBASE_HOME=/usr/local/src/hbase-1.2.0 #Set the path to where bin/hive is available export HIVE_HOME=/usr/local/src/hive #Set the path for where zookeper config dir is export ZOOCFGDIR=/usr/local/src/zookeeper/conf
4、上传mysql-connector-java.jar到到sqoop的lib目录
在修改完配置文件后,把mysql的jar包上传的sqoop的lib目录下
也就是在安装hive时使用的jar包
5、验证sqoop连接mysql数据库是否成功
将mysql数据库的密码设置为123456
我们输入
sqoop list-databases --connect jdbc:mysql://master:3306 --username root --password 123456
如果连接成功,会返回类似这样的结果
连接成功.
sqoop的安装与测试就到这里了
安装storm
1、解压
[root@master src]# cd software/ [root@master software]# tar -zxvf apache-storm-1.0.4.tar.gz -C /usr/local/src/ [root@master software]# cd .. [root@master src]# mv apache-storm-1.0.4/ storm-1.0.4/
2、 修改配置文件
[root@master storm-1.0.4]# cd conf/ [root@master conf]# vim storm.yaml storm.zookeeper.servers: - "master" - "slave1" - "slave2" storm.local.dir: "/usr/local/src/storm-1.0.4/localdir" storm.zookeeper.port: 2181 nimbus.seeds: ["master"] ui.host: 0.0.0.0 ui.port: 8080 supervisor.slots.ports: - 6700 - 6701 - 6702
storm.zookeeper.servers这个参数中写的master,slave1,slave2和zookpeeper配置文件中写的必须一致
storm.local.dir: 这个参数是storm使用的本地文件系统目录(必须存在并且storm进程可读写)
这个可以自己配置,自己选择的文件目录
提一下,细心的读者可能这里发现了ui.port端口是8080端口,而在上文中的spark的网页端端口也是8088,这里我们可以修改spark的网页端口,可以参考这篇文章https://www.iteye.com/blog/daizj-2227382
我在这里把之前的spark端口改为8081
同时创建
本地文件系统目录
[root@master storm-1.0.4]# mkdir localdir
4、其他两个子节点的配置
把上面配置好的storm整个文件夹传过去
[root@master src]# scp -r storm-1.0.4/ slave1:/usr/local/src/ [root@master src]# scp -r storm-1.0.4/ slave2:/usr/local/src/
5、启动
#master上启动nimbus和ui进程 [root@master storm-1.0.4]# storm nimbus & [1] 8089 [root@master storm-1.0.4]# storm ui & [2] 8126 [root@master storm-1.0.4]#
当出现这样的信息时
再按下回车
#在slave1和slave2下启动supervisor进程 [root@slave1 storm-1.0.4]# storm supervisor & [1] 4865 [root@slave2 storm-1.0.4]# storm supervisor & [1] 3555
出现类似的按下回车
查看jps进程
master上的
slave1上的
slave2上的
master上应该有nimbus节点和core节点,slave1和slave2上应该有supervisor节点
然后打开web端http://192.168.128.100:8080
到这里storm的安装也就完成了
这里附上两个一键开关strome的脚本
start-storm-cluster.sh
# !/bin/bash # nimbus节点 nimbusServers='master' # supervisor节点 supervisorServers='slave1 slave2' # 启动所有的nimbus for nim in $nimbusServers do ssh -T $nim <<EOF source /root/.bash_profile cd \$STORM_HOME bin/storm nimbus >/dev/null 2>&1 & EOF echo 从节点 $nim 启动nimbus...[ done ] sleep 1 done # 启动所有的ui for u in $nimbusServers do ssh -T $u <<EOF source /root/.bash_profile cd \$STORM_HOME bin/storm ui >/dev/null 2>&1 & EOF echo 从节点 $u 启动ui...[ done ] sleep 1 done # 启动所有的supervisor for visor in $supervisorServers do ssh -T $visor <<EOF source /root/.bash_profile cd \$STORM_HOME bin/storm supervisor >/dev/null 2>&1 & EOF echo 从节点 $visor 启动supervisor...[ done ] sleep 1 done
stop-storm-cluster.sh
# !/bin/bash # nimbus节点 nimbusServers='master' # supervisor节点 supervisorServers='slave1 slave2' # 停止所有的nimbus和ui for nim in $nimbusServers do echo 从节点 $nim 停止nimbus和ui...[ done ] ssh $nim "kill -9 `ssh $nim ps -ef | grep nimbus | awk '{print $2}'| head -n 1`" >/dev/null 2>&1 ssh $nim "kill -9 `ssh $nim ps -ef | grep core | awk '{print $2}'| head -n 1`" >/dev/null 2>&1 done # 停止所有的supervisor for visor in $supervisorServers do echo 从节点 $visor 停止supervisor...[ done ] ssh $visor "kill -9 `ssh $visor ps -ef | grep supervisor | awk '{print $2}'| head -n 1`" >/dev/null 2>&1 done
安装kafka
1、解压
[root@master ~]# cd /usr/local/src/software/ [root@master software]# tar -zxvf kafka_2.11-1.0.0.tgz -C /usr/local/src/
2、修改配置文件
[root@master kafka_2.11]# cd config/ [root@master config]# vim server.properties broker.id=0 listeners=PLAINTEXT://192.168.128.100:9092 advertised.listeners=PLAINTEXT://192.168.128.100:9092 zookeeper.connect=192.168.128.100:2181,192.168.128.101:2181,192.168.128.102:2181 # 而在另外两个节点上,对server.properties要有几处修改 # broker.id 分别修改成: 1 和 2 # listeners 在ip那里分别修改成子节点对应的,即 PLAINTEXT://192.168.128.101:9092 和 PLAINTEXT://192.168.128.102:9092 # advertised.listeners 也在ip那里分别修改成子节点对应的,即 PLAINTEXT://192.168.128.101:9092 和 PLAINTEXT://192.168.128.102:9092 # zookeeper.connect 不需要修改
然后在剩下两个子节点中重复上述步骤!
4、启动测试
kafka在启动之前一定要启动zookpeeper,否则启动kafka会报错.
[root@master kafka_2.11]# bin/kafka-server-start.sh config/server.properties & [root@slave1 kafka_2.11]# bin/kafka-server-start.sh config/server.properties & [root@slave2 kafka_2.11]# bin/kafka-server-start.sh config/server.properties &
kafka节点已经启动
启动后,我们开始测试,在master上输入
kafka-topics.sh --zookeeper 192.168.128.100:2181,192.168.128.101:2181,192.168.128.102:2181 --topic Test --replication-factor 1 --partitions 1 --create
创建test主题
创建主题Test成功
创建成功后在master上输入
[root@master kafka_2.11]# kafka-console-producer.sh --broker-list 192.168.128.100:9092,192.168.128.101:9092,192.168.128.102:9092 --topic Test
之后
启动生产者
[root@slave1 kafka_2.11]# kafka-console-consumer.sh --bootstrap-server 192.168.128.101:9092 --topic Test --from-beginning [root@slave2 kafka_2.11]# kafka-console-consumer.sh --bootstrap-server 192.168.128.102:9092 --topic Test --from-beginning
之后在主节点上的命令行上输入一句话,例如:hello,如果成功的话,应该是这样的,如图:
在主节点上输入的,会自动同步在其他两台节点上
这里我们的kafka也就搭建完成了。
关闭kafka方法,在命令行下,按ctrl加c,退出命令行,输入
[root@master kafka_2.11]# bin/kafka-server-stop.sh [root@slave1 kafka_2.11]# bin/kafka-server-stop.sh [root@slave2 kafka_2.11]# bin/kafka-server-stop.sh
应该会得到类似提示
按回车。
即可退出
我们可以使用jps查看一下当前进程
kafka进程已经停止了
就代表kafka已经关闭了
安装flume
1、解压
[root@master software]# tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /usr/local/src/ [root@master src]# mv apache-flume-1.6.0-bin flume-1.6.0
2、修改配置文件
[root@master flume-1.6.0]# cd conf/ [root@master conf]# mv flume-env.sh.template flume-env.sh [root@master conf]# vim flume-env.sh export JAVA_HOME=/usr/local/src/jdk1.8.0_191
这里flume就算已经配置完成了
flume不需要修改太多东西,更多的都是自己自定义需要监听的目录或者端口
3、测试
这里就写监听本地目录上传到hdfs作为测试
[root@master flume-1.6.0]# mkdir job/ [root@master flume-1.6.0]# cd job/ [root@master job]# touch test.conf [root@master job]# vim test.conf a1.sources = r1 a1.channels = c1 a1.sinks = k1 a1.sources.r1.type=spooldir a1.sources.r1.spoolDir=/usr/local/src/set/test a1.sinks.k1.type=hdfs a1.sinks.k1.hdfs.path=hdfs://master:9000/test a1.channels.c1.type=file a1.sources.r1.channels=c1 a1.sinks.k1.channel=c1
这里监听的test的目录.我们在这个目录创建的文件会被上传到hdfs的test目录中
启动
[root@master flume-1.6.0]#bin/flume-ng agent -f job/test.conf -n a1
这个时候我们新开一个master链接,在test目录新建test.txt,内容随便写
这样flume就会开始上传文件到hdfs中
这样就是上传成功了
(那个81结尾文件的是我上次测试形成的)
我们本次上传的是那个70结尾的
关闭flume使用ctrl+c
本文完