Centos7下搭建大数据处理集群(Hadoop+Spark+Hbase+Hive+Zookeeper+Kafka+Flume)详细步骤

一.目录

左侧按钮显示

二.集群规划

准备3台虚拟机,设置IP地址和hostname,一般的三台机器的集群为了明确表示主从关系,命名master,slave1,slave2,我这边直接命名为hp1,hp2,hp3,hp1当主节点使用,集群搭建时要考虑各个组件之间的版本兼容,下列这些版本的选择也是参考了其他人资料选择的。
在这里插入图片描述为了快速方便安装,我选择了下载安装压缩包,上传解压安装,现将下载地址给出:https://mirrors.cnnic.cn/apache/
这个地址下基本上有apache的所有开源软件的各个版本的安装包,随意下载吧!

三.虚拟机准备及基础配置设置

3.1更改主机名映射IP地址和主机名

3.1.1更改主机名

编辑/etc/hostname文件

vi /etc/hostname

将localhost更改为需要命名的主机名

3.1.2映射IP地址和主机名

编辑/etc/hosts文件

vi /etc/hosts

添加IP地址和主机名对应关系

192.168.5.142 hp1
192.168.5.143 hp2
192.168.5.144 hp3

3.2关闭防火墙

执行防火墙关闭命令,并禁止开机启动
防火墙的相关命令
停止防火墙:
service iptables stop
启动防火墙:
service iptables start
重启防火墙:
service iptables restart
永久关闭防火墙:
chkconfig iptables off

3.3设置时间同步

3.3.1设置hp1的ntp

1.安装ntp服务

yum -y install ntp    #更改hp1的节点

2.设置ntp服务器

vi /etc/ntp.conf      #注释掉server 0.centos.pool.ntp.org iburst,在hp1节点新添加自己的ntp服务器,在其他2个节点将ntp服务器指向master节点

*# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#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 ntp4.aliyun.com iburst
*

3.将其他2台主机的ntp服务器设置指向hp1

3.4设置主机之间的免密登录SSH

在所有节点按下列命令执行:

1.产生公钥和私钥:ssh-keygen -t rsa (一直回车直即可)
2.将公钥分发给所有节点(包括本机):  ssh-copy-id -i 主机名
3.测试ssh访问:    ssh root@主机名

3.5安装JDK

3.5.1卸载自带的openjdk

1.查看已安装的jdk

rpm -qa | grep java
*tzdata-java-2018e-3.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
*

2.卸载已安装的openjdk

rpm -e --nodeps 包名

3.5.2上传解压安装包

1.创建软件安装包上传目录/opt/package,Jdk安装目录/opt/java

[root@hp1 opt]# mkdir package
[root@hp1 opt]# mkdir java

2.将下载好的java安装包上传到/opt/package目录下,并解压移动到/opt/java

[root@hp1 package]# rpm -ivh jdk-8u221-linux-x64.rpm
[root@hp1 package]# mv jdk-8u221 /opt/java/jdk-1.8

3.5.3配置环境变量

1.配置环境变量

vi /etc/profile

添加以下内容

export HADOOP_HOME=/opt/hadoop/jdk-1.8
export PATH=.:${
   JAVA_HOME}/bin:$PATH

使配置文件生效

source /etc/profile

3.5.4查看java信息

[root@hp1 /]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

四.Hadoop

4.1安装Hadoop

4.1.1上传解压安装包

1.创建Hadoop安装目录/opt/hadoop

[root@hp1 opt]# mkdir hadoop

2.将下载好的Hadoop安装包上传到/opt/package目录下,并解压移动到/opt/hadoop

[root@hp1 package]# tar -zxvf hadoop-2.7.7.tar.gz
[root@hp1 package]# mv hadoop-2.7.7 /opt/hadoop/

4.1.2配置环境变量

1.配置环境变量

vi /etc/profile

添加以下内容

export HADOOP_HOME=/opt/hadoop/hadoop-2.7.7
export PATH=.:${
   JAVA_HOME}/bin:${
   HADOOP_HOME}/bin:$PATH

注意:export PATH= 后面只是在后面添加Hadoop的{HADOOP_HOME}/bin,后面安装其他的集群组件也是一样

使配置文件生效

source /etc/profile

4.1.3更改配置文件

更改配置文件
进入/opt/hadoop/hadoop-2.7.7/etc/hadoop 这个目录修改
core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xm、slaves

cd /opt/hadoop/hadoop-2.7.7/etc/hadoop

1.修改core-site.xml

vi core-site.xml

在< configuration >后加入

# 在< configuration >  </configuration>内添加以下内容
 <property>
        <name>fs.default.name</name>
        <value>hdfs://hp1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>

  • fs.default.name(指定hdfs的主端口 namenode要放在哪台机器上) =》 主机名:端口号
  • hadoop.tmp.dir(临时变量目录 data name secondary 如果指定了namenode datanode 可以不配)=》tmp目录
  • io.file.buffer.size (流缓冲区大小 )=》131702(128M)

2.修改hadoop-env.sh

vi hadoop-env.sh
#修改 export JAVA_HOME=${JAVA_HOME}(jdk的目录)
export JAVA_HOME=/opt/java/jdk1.8

3.修改hdfs-site.xml

vi hdfs-site.xml
#在<configuration>  </configuration>内添加以下内容
        <!-- namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据-->
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/opt/hadoop/hadoop-2.7.7/dfs/name</value>
        </property>
 
        <!-- datanode数据的存放地点。也就是block块存放的目录了-->
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/hadoop/hadoop-2.7.7/dfs/data</value>
        </property>
    
        <!-- hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数-->
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        
        <!-- secondary namenode的http通讯地址-->
        <property>
                <name>dfs.secondary.http.address</name>
                <value>hp1:50090</value>
        </property>
	<property>
		<!-- 开启hdfs的web访问接口。默认端口是50070 , 一般不配 , 使用默认值-->
		<name>dfs.webhdfs.enabled</name>
		<value>true</value>
	</property>

4.修改mapred-site.xml
若无mapred-site.xml文件,复制mapred-site.xml.template重命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

修改mapred-site.xml

vi mapred-site.xml
#在<configuration>  </configuration>内添加以下内容

	<property>
	<!-- 指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 -->
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<!-- JobHistory Server ============================================================== -->
    <!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hp1:10020</value>
    </property>
    <!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hp2:19888</value>
    </property>

5.修改yarn-site.xml

vi yarn-site.xml
#在<configuration>  </configuration>内添加以下内容
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hp1</value>
   </property> 
   <property>
        <!--yarn总管理器的IPC通讯地址-->    
        <name>yarn.resourcemanager.address</name>
        <value>${
   yarn.resourcemanager.hostname}:8032</value>
   </property>
   <property>
        <!--yarn总管理器调度程序的IPC通讯地址-->
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${
   yarn.resourcemanager.hostname}:8030</value>
   </property>
   <property>
        <!--yarn总管理器的web http通讯地址-->
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${
   yarn.resourcemanager.hostname}:8088</value>
   </property>
   <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${
   yarn.resourcemanager.hostname}:8090</value>
   </property>
   <property>
        <!--yarn总管理器的IPC通讯地址-->
        <value>${
   yarn.resourcemanager.hostname}:8031</value>
   </property>
   <property>
        <!--yarn总管理器的IPC管理地址-->
        <name>yarn.resourcemanager.admin.address</name>
        <value>${
   yarn.resourcemanager.hostname}:8033</value>
   </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
        <discription>单个任务可申请最大内存,默认8192MB</discription>
   </property>
   <property>
        <!--容器所占的虚拟内存和物理内存之比。该值指示了虚拟内存的使用可以超过所分配内存的量。默认值是2.1-->
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>
   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
</property>
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

6.修改slaves

vi slaves

默认localhost,若是单机模式则不需要改变
我们有2个从节点,所以将localhost改为从节点的地址

hp2
hp3

4.1.4将主节点(hp1)配置同步到从节点(hp2,hp3)

1.复制环境变量

scp /etc/profile  root@hp2:/etc/
scp /etc/profile  root@hp3:/etc/  

2.复制Hadoop安装配置文件

scp  -r /opt/hadoop  root@hp2:/opt/
scp  -r /opt/hadoop  root@hp3:/opt/

4.2启动Hadoop

1.初始化Hadoop(== 注意如果在使用中修改了Hadoop的配置文件,就必须重新初始化==)

cd /opt/hadoop/hadoop-2.7.7/bin

到/opt/hadoop/hadoop-2.7.7/bin目录下执行

./hdfs  namenode  -format

初始化完成后
2.启动Hadoop(== 只需在主节点hp1启动从节点会自动启动的==)
切换到/opt/hadoop/hadoop-2.7.7/sbin目录

cd /opt/hadoop/hadoop-2.7.7/sbin

执行启动命令

./start-all.sh
[root@hp1 sbin]# ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [hp1]
hp1: starting namenode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-root-namenode-hp1.out
hp2: starting datanode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-root-datanode-hp2.out
hp3: starting datanode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-root-datanode-hp3.out
Starting secondary namenodes [hp1]
hp1: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-root-secondarynamenode-hp1.out
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/hadoop-2.7.7/logs/yarn-root-resourcemanager-hp1.out
hp2: starting nodemanager, logging to /opt/hadoop/hadoop-2.7.7/logs/yarn-
  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值