一.集群环境搭建
环境准备
(1) 服务器配置
IP |
主机名 |
环境配置 |
安装 |
10.100.100.42 |
node01 |
关闭防火墙和selinux,host映射,时钟同步 |
JDK,NameNode,ResourceManager,Zookeeper |
10.100.100.43 |
node02 |
关闭防火墙和selinux,host映射,时钟同步 |
JDK,DataNode,NodeManager,Zookeeper |
10.100.100.44 |
node03 |
关闭防火墙和selinux,host映射,时钟同步 |
JDK,DataNode,NodeManager,Zookeeper |
(2) 修改主机名与主机名映射
- 编辑etc/hostname文件 编辑etc/hosts
(3) 关闭防火墙和SELinux
- Service iptables stop (关闭防火墙) Chkconfig iptables off (禁止开机启动)
- CentOS7
- systemctl stop firewalld.service #停止firewall
- systemctl disable firewalld.service #禁止firewall开机启动
- 关闭Selinux
- 查看状态命令 /usr/sbin/sestatus -v
- 修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled
- 设置后需要重启才能生效
(4) SSH免密登录
- 集群三台机器生成公钥私钥对 ssh-keygen -t rsa
- 将三台机器公钥拷贝到第一台 ssh-copy-id node01
- 拷贝第一台机器的公钥到另外两台
- scp /root/.ssh/authorized_keys node02:/root/.ssh
- scp /root/.ssh/authorized_keys node03:/root/.ssh
- 免密登录验证在node01 执行 ssh node02
(5) 时钟同步
- 安装ntp yum install -y ntp
- 开启定时服务
- crontab -e
- */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
(6) 集群机器安装JDK(1.8)
- 查看是否安装openJDK,如果安装需要卸载 rpm -qa | grep java
- 卸载自带jdk rpm -e jar包 --nodeps
- 创建目 mkdir -p /export/softPage mkdir -p /export/soft
- 上传jdk并解压 安装上传工具 yum -y install lrzsz
- 上传文件命令 rz -E
- 解压文件命令 tar -xvf 安装包(路径) -C /export/soft
- 配置环境变量 vi /etc/profile
- export JAVA_HOME=/export/soft/jdk1.8.0_144
- export PATH=:$JAVA_HOME/bin:$PATH
- 让配置文件生效 source /etc/profile
- 验证jdk安装成功 java -version
- 远程拷贝文件夹 scp -r 文件夹路径 node01:/export/soft
- 配置其他机器的环境变量,具体操作见上
- 取消日志提醒日志
- vi /etc/profile添加unset MAILCHECK 然后让文件生效 source /etc/profile
二.Zookeeper集群环境搭建
(1) 集群规划
IP |
主机名 |
MyId |
10.100.100.42 |
Node01 |
1 |
10.100.100.43 |
Node02 |
2 |
10.100.100.44 |
Node03 |
3 |
(2) 下载Zookeeper(3.4.9)安装包
(3) 解压文件
- tar -xvf 安装包 -C /export/soft
(4) 修改配置文件
- cd /export/soft/zookeeper-3.4.9/conf/
- 拷贝模板配置文件 cp zoo_sample.cfg zoo.cfg
- 创建zookeeper数据目录 mkdir -p /export/soft/zookeeper-3.4.9/zkdatas
- 配置数据目录
- 配置快照数
- 配置日志清理时间
- 配置zookeeper集群
- server.1=node01:2888:3888
- server.2=node02:2888:3888
- server.3=node03:2888:3888
(5) 创建myid配置文件
- vi myid
- Echo 1 > /export/soft/zookeeper-3.4.9/zkdatas/myid
(6) 安装包分发到node02 node03
- scp -r 文件夹路径 node02:/export/soft
- scp -r 文件夹路径 node03:/export/soft
(7) 启动集群中每台机器的zookeeper服务
- 启动服务 /export/soft/zookeeper-3.4.9/bin/zkServer.sh start
- 查看服务状态 /export/soft/zookeeper-3.4.9/bin/zkServer.sh status
三.Hadoop集群环境搭建
(1) 集群规划
服务器IP |
10.100.100.42 |
10.100.100.43 |
10.100.100.44 |
主机名 |
Node01 |
Node02 |
Node03 |
NameNode |
是 |
否 |
否 |
SecondaryNameNode |
是 |
否 |
否 |
dataNode |
是 |
是 |
是 |
ResourceManager |
是 |
否 |
否 |
NodeManager |
是 |
是 |
是 |
(2) 安装包下载(Hadoop2.7.5)
(3) 文件上传及解压 详细操作见上面类似的操作
(4) 修改配置文件
- 修改core-site.xml 文件路径 /export/soft/hadoop-2.7.5/etc/hadoop/core-site.xml
- 修改内容
<configuration>
<!--设置文件类型和主节点-->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.200:8020</value>
</property>
<!--设置Hadoop临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/soft/hadoop-2.7.5/hadoopDatas/tempDatas</value>
</property>
<!--设置缓冲区大小-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--设置hdfs垃圾桶回收机制、主要是清空回收站的时间,单位分钟-->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
修改hdfs-site.xml
文件路径
/export/soft/hadoop-2.7.5/etc/hadoop/hdfs-site.xml
修改内容
<configuration>
<!-- 配置secondaryNameNode的访问地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node01:50090</value>
</property>
<!-- 配置nameNode的访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>node01:50070</value>
</property>
<!-- 配置nameNode存储元数据的位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///export/soft/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/soft/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value>
</property>
<!-- 配置dataNode数据存储的节点位置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///export/soft/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/soft/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value>
</property>
<!-- 配置nameNode日志文件存放位置 -->
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///export/soft/hadoop-2.7.5/hadoopDatas/nn/edits</value>
</property>
<!-- 配置检查点文件存放位置 -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///export/soft/hadoop-2.9.2/hadoopDatas/snn/name</value>
</property>
<!-- -->
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///export/soft/hadoop-2.9.2/hadoopDatas/dfs/snn/edits</value>
</property>
<!-- 单个数据分片文件存放的副本个数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 是否启用权限 -->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 单个数据分片大小 128M-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
修改hadoop-env.sh 主要是修改jdk的路径
/export/soft/jdk1.8.0_144
修改mapred-site.xml 修改内容
<configuration>
<!-- 开启MapReduce小任务模式 -->
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<!-- 设置历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01:10020</value>
</property>
<!-- 设置网页访问历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01:19888</value>
</property>
</configuration>
修改yarn-site.xml,修改内容
<!-- 配置yarn主节点的位置 -->
<property>
<name>yarn.resourcemananger.hostname</name>
<value>node01</value>
</property>
<!-- -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 开启日志聚合功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置聚合日志文件在hdfs上保存的时间,单位为秒 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!-- 设置yarn集群的内存分配方案 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
- 修改mapred-env.sh 主要是修改jdk的路径
export JAVA_HOME=/export/soft/jdk1.8.0_144
修改slaves 改文件主要是配置丛级关系 修改内容如下:Node01 Node02 Node03
- 创建目录
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/tempDatas
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/namenodeDatas
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/namenodeDatas2
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/datanodeDatas
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/datanodeDatas2
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/nn/edits
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/snn/name
mkdir -p /export/soft/hadoop-2.9.2/hadoopDatas/dfs/snn/edits
- 安装包分发
scp -r 安装包路径 node02:$PWD
scp -r 安装包路径 node03:$PWD
- 配置hadoop环境变量
vi /etc/profile
export HADOOP_HOME=/ export/soft/hadoop-2.9.2
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
- 启动集群,在主节点上
cd /export/soft/hadoop-2.7.5/
bin/hdfs/ namenode -format(第一次启动才执行)
sbin/start-dfs.sh Sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
网页查看hdfs http://node01:50070/explorer.html#/
网页查看yarn集群 http://node01:8088/cluster
网页查看历史完成的任务 http://node01:19888/jobhistory
四.Hbase(hadoop数据库)安装
(1)安装包下载并上传(hbase 2.1.0)
下载路径 http://archive.apache.org/dist/hbase 软件版本 2.1.0
(2)修改hbase-env.sh文件
export JAVA_HOME=/export/soft/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
(3)修改hbase-site.xml文件
<!-- Hbase数据在HDFS中的存放位置 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://node01:8020/hbase</value>
</property>
<!-- Hbase运行模式 false 单击模式 true 分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper集群地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01,node02,node03</value>
</property>
<!-- ZooKeeper快照数据地址 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/soft/zookeeper-3.4.9/zkdatas</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<!-- 分布式模式设为false -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
(4)配置环境变量文件
export HBASE_HOME=/export/soft/hbase-2.4.0
export PATH=:$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH
(5)拷贝依赖库
cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core4-4.2.0-incubating.jar $HBASE_HOME/lib
(6)修改regionservers文件
(7)安装包分发
scp -r hbase-2.4.0/ node02:$PWD
scp -r hbase-2.4.0/ node03:$PWD
(8)修改node02 node03的环境变量并生效
(9)启动Hbase
首先要保证zookeeper集群和hadoop集群已经启动。然后在主节点上启动Hbase
进入到Hbase的bin目录,执行start-hbase.sh
(10)验证Hbase是否启动成功
(11)Hbase网页界面
Http://10.100.100.42:16010
五.Phoenix(5.0.0)插件安装
(1)文件下载
文件下载地址 Http://phoenix.apache.org/download.html
(2)文件上传并解压 tar -xvf phoenix-hbase-2.4.0-5.1.2-bin.tar.gz -C /export/soft
(3)拷贝Jar包到Hbase目录
cp /export/soft/phoenix-hbase-2.4.0-5.1.2-bin/phoenix-*.jar /export/soft/hbase-2.4.0/lib/
(4)分发Jar包到Hbase的其他节点上
scp phoenix-*.jar node02:$PWD
scp phoenix-*.jar node03:$PWD
(5)修改配置文件
修改hbase的配置文件
cd /export/soft/hbase-2.4.0/conf/
修改hbase-site.xml文件
<!-- 支持HBase命名空间映射 -->
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<!-- 支持索引日志预写编码 -->
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
(6)分发配置文件
scp hbase-site.xml node02:$PWD
scp hbase-site.xml node03:$PWD
(7)拷贝配置文件到phoenix目录中
cp hbase-site.xml /export/soft/phoenix-hbase-2.4.0-5.1.2-bin/bin/
(8)重启Hbase服务
新集群 zookeeper3.4.9 hadoop2.7.5 hbase 2.1.0 phoenix (5.0.0-Hbase2.0)
检查hadoop2.7.5对本地库的支持
Bin/hadoop/ checknative SpringBoot 整合Hadoop
客户端在windows环境下需要hadoop.dll
上述新集群