集群搭建
一:搭建虚拟机
这是一个链接:详见Vmware专栏:虚拟机ssh免密访
1.1 设置免密
这是一个链接:详见VMware专栏:VMware虚拟机的安装
二:配置 jdk180
2.1 解压完直接配置环境变量即可
在profile.d下创建env.sh
[root@vmware jdk18]# vi /etc/profile.d/env.sh
2.2 写入配置如下
export JAVA_HOME=/opt/bigdata/jdk18
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
2.3 刷新profile.d/env.sh文件
[root@c1 profile.d]# source /etc/profile.d/env.sh
2.4 输出jdk地址
[root@vmware jdk18]# echo $JAVA_HOME
/opt/bigdate/jdk180
2.5 删除不必要的大文件
[root@vmware jdk18]# rm -rf src.zip
三:设置Hadoop集群配置
3.1 配置主节点的 Hadoop 环境
3.1.1 进入/opt/bigdata/hadoop260/etc/hadoop
3.1.2配置 hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/opt/greeinstall/jdk18111
3.1.3 配置 mapred-env.sh
export JAVA_HOME=/opt/bigdata/jdk180
3.1.4 配置 yarn-env.sh
export JAVA_HOME=/opt/bigdata/jdk180
3.1.5 配置 core-site.xml (配置完此步,需要在hadoop260目录下建hadoop2目录)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.56.137:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/greeinstall/hadoop260/hadoop2</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
3.1.6 配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>lijia1:50090</value>
</property>
</configuration>
3.1.7 配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>HostName:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>HostName:19888</value>
</property>
</configuration>
3.1.8 配置yarn-site.xml
<configuration>
<!-- reducer获取数据方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>HostName</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
3.1.9 配置vi ./slaves
c1
c2
c3
c4
3.1.10 Hadoop环境变量配置
vi /etc/profile.d/env.sh
export HADOOP_HOME=/opt/greeinstall/hadoop260
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
3.1.11 刷新profile.d/env.sh文件
[root@c1 profile.d]# source /etc/profile.d/env.sh
3.2 用 rsync 写脚本分发配置hadoop和/etc/profile.d/env.sh到分节点
这是一个链接:点击此处:关于如何编写脚本和运行请参考 脚本专栏的xrsync 增量脚本
3.3 启动 Hadoop
四:安装 Zookeeper (集群用)
注意:此处的Zookeeper安装与Hbase和Kafka中的安装都不同,有兴趣可以去我的 Hbase 和 Kafka 专栏看看
4.1 创建 zkData
[root@lijia2 zk345]# mkdir zkData
4.2 在zkData中创建 myid文件 给定数字
[root@c1 zkData]# touch myid
[root@c1 zkData]# vi myid
1
4.3 配置 zoo.cfg
[root@lijia2 conf]# vi ./zoo.cfg
dataDir=/opt/bigdata/zk345/zkData
server.2=lijia2:2287:3387
server.3=lijia3:2287:3387
server.4=lijia4:2287:3387
4.4 利用 xrsync 发送 /opt/bigdata/zk345/
向各个机器发送 /opt/bigdata/zk345/
[root@c1 zkData]# xrsync /opt/bigdata/zk345/
4.5 修改 /opt/bigdata/zk345/zkData/myid
注意:要将myid中的id数字改变,每台机器中的id不能一样
4.6 配置环境变量
export ZOOKEEPER_HOME=/opt/bigdata/zk345
export PATH=$PATH:$ZOOKEEPER_HOME/bin
4.4 利用 xrsync 发送 /etc/profile.d/env.sh
向各个机器发送 /etc/profile.d/env.sh
[root@c1 zkData]# xrsync /etc/profile.d/env.sh
注意:复制过去以后要刷新
4.5 通过脚本在 madter 开启集群zookeeper
这是一个链接:点我去看脚本的编写
五:安装 Kafka
5.1 创建/opt/bigdata/kafka211/logs
[root@c1 kafka211]# mkdir logs
[root@c1 logs]# pwd
/opt/bigdata/kafka211/logs
5.2 配置 server.properties
[root@lijia2 config]# vi ./server.properties
# 每台机器的的id不能相同
broker.id=0
log.dirs=/opt/bigdata/kafka211/logs
delete.topic.enable=true
5.3 通过 xrsync 发送至其它的节点机器
[root@c1 logs]# xrsync /opt/bigdata/kafka211/
5.4 修改 server.properties
每台机器都要修改 server.properties 的 broker.id=0
5.5 配置环境变量
export KAFKA_HOME=/opt/bigdata/kafka211
export PATH=$PATH:$KAFKA_HOME/bin
5.6 利用 xrsync 发送 /etc/profile.d/env.sh
向各个机器发送 /etc/profile.d/env.sh
[root@c1 zkData]# xrsync /etc/profile.d/env.sh
注意:复制过去以后要刷新
5.7 启动 kafka
这是一个链接:启动方法及常用的命令点击可看
4.8 通过脚本在 master 开启集群 kafka
这是一个链接:点我去看脚本的编写
提醒:如果想要看 kafka 集群的 topic 效果
则创建 topic 时就要分区(与 hadoop 无关)
注意:如果启动 kafka 报错如下
[2020-06-04 07:11:28,425] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.common.InconsistentBrokerIdException: Configured broker.id 2 doesn’t match stored broker.id 1 in meta.properties. If you moved your data, make sure your configured broker.id matches. If you intend to create a new broker, you should remove all data in your data directories (log.dirs).
以上报错说明之前启动集群不成功,重新启动 kafka 集群前需要先清除 logs 目录的内容,如下
六:查看集群所有节点的 jps 进程
这是一个链接:查看集群所有节点的 jps 进程