Linux版本:Centos6.5
虚拟机软件:VMware
连接工具: SecureCRTPortable
各个组件版本:
百度云链接:链接:https://pan.baidu.com/s/1A7TaiXbqevbFo9JBNp_fdw
提取码:z2k7
软件安装包均放在/software目录中,软件均安装在/app目录中。
1.准备三台虚拟机,将IP设置为静态IP,否则IP容易变动。
(1).vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改内容如下:
DEVICE="eth0" #设备名称
BOOTPROTO="static" #静态IP
HWADDR="00:0C:29:91:25:2F" #MAC地址
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet" #网络类型
UUID="e5771686-c20e-4dbd-bb37-5378a6c80095"
DNS1="192.168.1.1" #DNS
IPV6INIT="no"
USERCTL="NO"
IPADDR="192.168.198.135" #IP
NETMASK="255.255.255.0" #子网掩码
GATEWAY="192.168.1.1" #网关`
(3).修改完以后三台都要重启网卡
service network restart
(4).将三台虚拟机的防火墙全部关闭
防火墙的启动/停止/重启/查看
service iptables start
service iptables stop
service restart
service iptables status
chkconfig iptables off 关闭开机启动
2.修改三台虚拟机主机名
(1).vi /etc/sysconfig/network
Hostname后面即为主机名,可改为自己想要的,注意,三台虚拟机主机名要不相同。
三台依次修改
(2).更改/etc下的hosts文件
vi /etc/hosts
新增一行,内容为IP地址和主机名
三台依次修改
(3).重启
三台依次重启
reboot
(5).添加对应名
修改hosts文件,添加这个集群中所有虚拟机对应的域名,然后将hosts文件复制到这个集群中所有的虚拟机中。
vi /etc/hosts
复制到其余虚拟机中:
scp -r /etc/hosts root@pzg2:/etc/
scp -r /etc/hosts root@pzg3:/etc/
3.三台虚拟机配置ssh免密
ssh-keygen -t rsa
敲三次回车
ssh-copy-id 主机名
每台虚拟机ssh-copy-id 连另外两台和自己
4.安装JDK
(1).解压jdk
将安装包解压到app目录中
tar -vzxf /software/jdk-8u191-linux-x64.tar.gz -C /app
(2).将解压的jdk分发到其余两台虚拟机的app目录中
scp -r /app/jdk1.8.0_191/ root@pzg2:/app/
scp -r /app/jdk1.8.0_191/ root@pzg3:/app/
(3).配置环境变量
vi /etc/profile
在最后添加
export JAVA_HOME=/app/jdk1.8.0_191/
export PATH=$JAVA_HOME/bin::$PATH:
将文件分发至其余两个节点
scp -r /etc/profile root@pzg2:/etc/
scp -r /etc/profile root@pzg3:/etc/
(4).source /etc/profile
使配置文件生效
三台依次运行此命令
(5).验证
java -version
看到这个则表明配置成功,另外两台也按照此步骤安装JDK。
5.安装Hadoop
每个虚拟机安装那些节点
pzg1:NameNode,DataNode,NodeManager,ResourceManage,jobhistory
pzg2:DataNode,NodeManager,SecondaryNameNode
pzg3:DataNode,NodeManager
(1).解压Hadoop
tar -vzxf /software/hadoop-2.5.2.tar.gz -C /app
(2).配置JDK路径,修改hadoop安装目录下etc/hadoop中的hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径。
(3).修改配置文件
进入解压后的etc/hadoop目录中
配置core-site.xml
fs.defaultFS
hdfs://pzg1:9000
io.file.buffer.size
131072
fs.defaultFS为NameNode的地址
hadoop.tmp.dir为hadoop临时目录的地址,默认情况下,NameNode和DataNode的数据文件都会存在这个目录下的对应子目录下。应该保证此目录是存在的,如果不存在,先创建。
配置hdfs-site.xml
dfs.replication
3
dfs.block.size
268435456
dfs.namenode.name.dir
/app/bigdata/dfs/name
dfs.datanode.data.dir
/app/bigdata/dfs/data
fs.checkpoint.dir
/app/bigdata/dfs/secondaryname
fs.checkpoint.edits.dir
/app/bigdata/dfs/secondaryname
dfs.http.address
pzg1:50070
dfs.secondary.http.address
pzg2:50090
dfs.webhdfs.enabled
true
dfs.permissions
false
dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将pzg2规划为SecondaryNameNode服务器。
slaves
新增如下
pzg1
pzg2
pzg3
slaves文件是指定HDFS上有哪些DataNode节点。
配置yarn-site.xml
yarn.resourcemanager.hostname
pzg1
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.webapp.address
pzg1:8088
mapreduce.jobhistory.address
pzg1:10020
mapreduce.jobhistory.webapp.address
pzg1:19888
配置mapred-site.xml
从mapred-site.xml.template复制一个mapred-site.xml文件。
cp app/hadoop-2.5.2/etc/hadoop/mapred-site.xml.template app/hadoop-2.5.2/etc/hadoop/mapred-site.xml
修改mapred-site.xml
mapreduce.framework.name
yarn
true
mapreduce.jobhistory.webapp.address
master:19888
mapreduce.framework.name设置mapreduce任务运行在yarn上。
mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。
(4).分发Hadoop
scp -r app/hadoop-2.5.2/ root@pzg2:/app/
scp -r app/hadoop-2.5.2/ root@pzg3:/app/
(5).格式化
[root@pzg1 hadoop-2.5.2]# bin/hadoop namenode -format
如果需要重新格式化NameNode,需要先将原来NameNode和DataNode下的文件全部删除,不然会报错,NameNode和DataNode所在目录是在core-site.xml中hadoop.tmp.dir、dfs.namenode.name.dir、dfs.datanode.data.dir属性配置的。
(6).启动
启动hdfs
[root@pzg1 hadoop-2.5.2]# sbin/start-dfs.sh
启动YARN
[root@pzg1 hadoop-2.5.2]# sbin/start-yarn.sh
启动historyserver
mr-jobhistory-daemon.sh start historyserver
根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向pzg1。
查看HDFS Web页面
http://pzg1:50070/
查看YARN Web 页面
http://pzg1:8088/cluster
(7).配置Hadoop环境变量
vi /etc/profile
在文件后面增加
export HADOOP_HOME=//app/hadoop-2.5.2
export PATH=$JAVA_HOME/bin:$PATH:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
将文件分发至其余两个节点
scp -r /etc/profile root@pzg2:/etc/
scp -r /etc/profile root@pzg3:/etc/
(8).source /etc/profile
使配置文件生效
三台依次运行此命令
(9).开启Hadoop
start-all.sh
6.安装Zookeeper
(1).解压zookeeper安装包
tar -vzxf /software/zookeeper-3.4.10.tar.gz -C /app/
(2).修改配置
进入conf目录下,先将zoo_samp.cfg文件改名
mv zoo_sample.cfg zoo.cfg
修改zoo.cfg文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/app/zkmyid/
clientPort=2181
server.1=pzg1:2888:3888
server.2=pzg2:2888:3888
server.3=pzg3:2888:3888
(3).创建文件
创建在zoo.cfg文件中dataDir指定的文件夹,在该文件夹下创建一个名为myid的文件
修改myid,填写每台机器在zoo.cfg中对应的编号,比如pzg1对应server.1,那么myid中应该写1,依次类推,pzg2的myid应该写2,pzg3的myid应该写3。
(4).分发文件
将zookeeper-3.4.10和zkmyid分发到其余的两个节点,修改zkmyid下的myid文件。
(5).配置环境变量
vi /etc/profile
新增如下
export ZooKeeper_HOME=/app/zookeeper-3.4.10
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$FLUME_HOME/bin:$PATH:$ZooKeeper_HOME/bin:$PATH
将profile分发至其余两个节点
scp -r etc/profile root@pzg2:/etc/
scp -r etc/profile root@pzg3:/etc/
在三台节点上使配置文件生效
source etc/profile
(6).zookeeper命令
在三台节点上分别开启zookeeper
zkServer.sh start
pzg1:
pzg2:
pzg3:
以打印日志方式启动zookeeper
zkServer.sh start-foreground
查看三台zookeeper状态
zkServer.sh status
重启zookeeper
zkServer.sh restart
关闭zookeeper
zkServer.sh stop
进入zookeeper shell
zkCli.sh,进入zk shell模式
进入zk shell后输入任意字符,可以列出所有的zookeeper命令。
7.安装flume(单节点)
(1).解压flume安装包
tar -vzxf /software/apache-flume-1.8.0-bin.tar.gz -C /app/
(2).配置环境变量
export FLUME_HOME=/app/apache-flume-1.8.0-bin
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$FLUME_HOME/bin:$PATH
使环境变量生效
source /etc/profile
(3).查验
输入flume-ng version
出现这个信息则安装成功。
8.安装Kafka
(1).解压kafka
tar -vzxf /software/kafka_2.12-2.1.0.tgz -C /app/
(2).修改配置文件
进入kafka安装目录下config文件夹
vi server.properties
broker.id=1
port=9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
############################# Log Basics #############################
log.dirs=/app/kafka_2.12-2.1.0/logdir
num.partitions=2
num.recovery.threads.per.data.dir=1
############################# Internal Topic Settings #############################
log.retention.hours=168
log.roll.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=true
############################# Zookeeper #############################
zookeeper.connect=pzg1:2181,pzg2:2181,pzg3:2181
zookeeper.connection.timeout.ms=6000
log.flush.interval.messages=10000
log.flush.interval.ms=3000
delete.topic.enable=true
host.name=pzg2
broker.id=1 (kafka节点ID,必须是唯一)
/app/kafka_2.12-2.1.0/logdir (kafka日志存放目录,手动创建)
log.retention.hours=168 (消息保存最长的时间)
log.segment.bytes=1073741824 (每一个segment文件的大小,默认是1G,可以更改)
zookeeper.connect=pzg1:2181,pzg2:2181,pzg3:2181 (kafka 连接zk的信息,必须配置)
delete.topic.enable=true (kafka 的topic是否物理删除,true-物理删除,false-逻辑删除)
host.name=pzg2 (kafka节点的主机名)
(3).分发配置文件,并修改
scp -r app/kafka_2.12-2.1.0/ root@pzg2:/app/
scp -r app/kafka_2.12-2.1.0/ root@pzg3:/app/
修改broker.id=1 和host.name=pzg2
(4).配置环境变量
export KAFKA_HOME=/app/kafka_2.12-2.1.0
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$FLUME_HOME/bin:$PATH:$ZooKeeper_HOME/bin:$PATH:$
KAFKA_HOME/bin:$PATH
分发到另外两个节点
scp -r etc/profile root@pzg2:/etc/
scp -r etc/profile root@pzg3:/etc/
使配置文件生效
source /etc/profile
(5).命令
依次在各节点上启动kafka:
bin/kafka-server-start.sh config/server.properties &
或者后台启动:
nohup bin/kafka-server-start.sh config/server.properties &
依次在各节点上关闭kafka
kafka-server-stop.sh config/server.properties
9.安装MySQL(单节点)
(1).解压(安装在pzg2节点上)
tar -zxvf software/mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
将文件夹命名为mysql,完整路径为:
/usr/local/mysql
(2).添加系统mysql组和mysql用户
执行命令:groupadd mysql和useradd -r -g mysql mysql
(3).修改权限目录
cd /usr/local
sudo chown -R mysql:mysql /usr/local/mysql
(4).初始化MySQL配置表
cd /usr/local/mysql
sudo scripts/mysql_install_db --user=mysql
(5).启动、查看状态、重启、停止
先进入mysql安装目录
cd /usr/local/mysql
启动
sudo support-files/mysql.server start
查看状态
sudo support-files/mysql.server status
重启
sudo support-files/mysql.server restart
(6).进入mysql
sudo bin/mysql -u root -p
第一次进入提示输入密码时直接回车就可以进入
(7).修改root用户密码
use mysql;
UPDATE user SET password=password(“123456”) where user = ‘root’;
//123456是要将密码改为123456
flush privileges;
现在root用户密码即为123456
(8).使用Navicat连接linux中的mysql数据库
use mysql;
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
–root为用户名,123456为密码,%表示所有的电脑都可以链接
flush privileges; --设置立即生效
10.安装Hbase
(1).解压Hbase
tar -zxvf software/hbase-2.1.1-bin.tar.gz -C /app/
(2).修改配置文件
进入hbase解压的目录中的conf目录
修改 hbase-env.sh
在文件最后加入
export JAVA_HOME=/app/jdk1.8.0_191 #jdk安装目录
export HBASE_MANAGES_ZK=true #如果使用独立安装的zookeeper这个地方就是false
export HADOOP_HOME=/app/hadoop-2.5.2 #jhadoop安装目录
修改hbase-site.xml
hbase.rootdir
hdfs://pzg1:9000/hbase #hbase共享目录,持久化hbase数据
hbase.cluster.distributed #是否分布式运行,false即为单机
true
hbase.zookeeper.quorum #zookeeper地址
pzg1,pzg2,pzg3
hbase.zookeeper.property.dataDir #zookeeper配置信息快照的位置
/app/zookeeper-3.4.10/zookeeper
hbase.hstore.to.time.purge.deletes
18000
修改regionservers
从机器的域名
pzg1
pzg2
pzg3
分发文件
scp -r app/hbase-2.1.1/ root@pzg2:/app/
scp -r app/hbase-2.1.1/ root@pzg3:/app/
(3).配置环境变量
vi /etc/profile
export HBASE_HOME=/app/hbase-2.1.1
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$FLUME_HOME/bin:$PATH:$ZooKeeper_HOME/bin:$PATH:$KAFKA_HOME/bin:$PATH:$HBASE_HOME/bin:$PATH:
scp -r etc/profile root@pzg2:/etc/
scp -r etc/profile root@pzg3:/etc/
source /etc/profile 使配置生效
(4).命令
开启Hbase(开启hbase前需要先开zookeeper,hadoop)
start-hbase.sh
pzg1:
关闭Hbase
stop-hbase.sh(先关闭hadoop,再关闭zookeeper,后关闭hbase)
进入命令行
hbase shell
退出命令行
quit
(5).错误解决
请参考下面的网址
https://www.cnblogs.com/xubiao/p/7844466.html
11.安装Hive
(1).解压Hive安装包
tar -zxvf software/apache-hive-1.2.2-bin.tar.gz -C app/
(2).导入mysql驱动包
导入mysql驱动包到hive安装目录下的bin目录中
(3).修改配置文件
进入hive的conf目录中
vi hive-site.xml
添加以下内容
hive.metastore.local
true
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.198.136:3306/myhive?characterEncoding=UTF-8
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
123456
其中:
192.168.198.136 是mysql安装节点的ip
myhive 是要在mysql中创建一个名为myhive的数据库,如果没用的话则hive启动时报错
root 是mysql用户名
123456 是root用户的密码
修改完成,保存退出。
(4).配置环境变量
export HIVE_HOME=/app/apache-hive-1.2.2-bin
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$FLUME_HOME/bin:$PATH:$ZooKeeper_HOME/bin:$PATH:$KAFKA_HOME/bin:$PATH:$HBASE_HOME/bin:$PATH:$HIVE_HOME/bin:$PATH:
保存退出
source /etc/profile
使环境变量生效
(5).启动Hive
先开启Hadoop
在开启MySQL
最后启动Hive
因为已经配置了环境变量,所以直接输入Hive即可。
12.安装Storm
(1).解压文件
tar -zxvf software/apache-hive-1.2.2-bin.tar.gz -C app/
(2).修改配置文件
进入到storm安装目录下的conf目录
vi storm.yaml
storm.local.dir: "/app/apache-storm-1.2.2/local"
storm.zookeeper.port: 2181
storm.zookeeper.servers:
- "pzg1"
- "pzg2"
- "pzg3"
nimbus.seeds: ["pzg1"]
ui.host: 0.0.0.0
ui.port: 8080
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
storm.local.dir:storm日志所在的目录,需手动创建
storm.zookeeper.port:zookeeper端口号
storm.zookeeper.servers:指定storm使用的zk集群
nimbus.seeds:指定storm集群中的nimbus节点所在的服务器
supervisor.slots.ports:指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker
将storm分发到其余两个虚拟机中
scp -r app/apache-storm-1.2.2/ root@pzg2:/app/
scp -r app/apache-storm-1.2.2/ root@pzg3:/app/
(3).配置环境变量
vi /etc/profile
export STORM_HOME=/app/apache-storm-1.2.2
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$FLUME_HOME/bin:$PATH:$ZooKeeper_HOME/bin:$PATH:$KAFKA_HOME/bin:$PATH:$HBASE_HOME/bin:$PATH:$HIVE_HOME/bin:$PATH:$STORM_HOME/bin:$PATH:
分发到其余两个虚拟机
scp -r etc/profile root@pzg2:/etc/
scp -r etc/profile root@pzg3:/etc/
在三台虚拟机中使环境变量生效
source /etc/profile
(4).开启storm
开启storm前必须先开启zookeeper
在Desktop(Master)上启动nimbus进程
storm nimbus &
在Desktop(Master)上启动UI进程
storm ui &
在所有的Slave上启动supervisor进程