hadoop、zookeeper完全分布式、高可用环境搭建

完全分布式

集群准备

准备3台客户机

客户机要关闭防火墙

stop firewalled

配置静态ip

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 
-----------------------------------------------------
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=f19fae49-46da-4b52-b704-6e1ec4c0470e
ONBOOT=yes
HWADDR=00:0C:29:EC:14:1F
IPADDR0=192.168.191.101   // ip地址
PREFIX0=24
GATEWAY0=192.168.191.2
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
DNS1=114.114.114.114
DNS2=8.8.8.8

主机映射

vi /etc/hosts
-----------------------------------------------------
192.168.191.101 hadoop1
192.168.191.102 hadoop2
192.168.191.103 hadoop3

主机名称

hostnamectl set-hostname hadoop1
hostnamectl set-hostname hadoop2
hostnamectl set-hostname hadoop3

主机名称分别为hadoop2,hadoop3,hadoop4

安装jdk,配置环境变量

# 解压  -C表示解压到指定目录
tar zxvf jdk-8u171-linux-x64.tar.gz -C /opt/soft/

#配置环境变量
vi /etc/profile

# JAVA_HOME
export JAVA_HOME=/opt/soft/jdk1.8.0_251
export PATH=$JAVA_HOME/bin:$PATH
#刷新环境变量
source /etc/profile

#验证
java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

配置ssh,免密登录

拷贝密钥的时候需要拷贝9次

ssh-keygen -t rsa -P '' 
#3次回车
#拷贝密钥
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

配置时间同步

安装ntp【hadoop2】

rpm -qa|grep ntp
yum -y install ntp

vi /etc/ntp.conf
-----------------------
# 修改1(设置本地网络上的主机不受限制。)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# 修改2(设置为不采用公共的服务器)
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
# 添加3(添加默认的一个内部时钟数据,使用它为局域网用户提供服务。)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

修改/etc/sysconfig/ntpd

vim /etc/sysconfig/ntpd
-----------------------
# 增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes

重新启动ntpd

service ntpd status
service ntpd start
chkconfig ntpd on

其他机器配置

crontab -e
----------------
*/10 * * * * /usr/sbin/ntpdate hadoop2

集群规划

hadoop2 hadoop3 hadoop4
HDFS NameNode DataNode DataNode SecondaryNameNode DataNode
YARN NodeManager ResourceManager NodeManager NodeManager

安装hadoop

Hadoop 的安装模式分为3种:单机(本地)模式,伪分布式,完全分布式(集群模式)

本地模式安装

# 解压
tar zxf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/soft/
# 环境变量
vi /etc/profile
---------------------------
# hadoop
export HADOOP_HOME=/opt/soft/hadoop-2.6.0-cdh5.14.2
export PATH=$HADOOP_HOME/bin:$PATH
---------------------------------
source /etc/profile
# 测试
hadoop

伪分布式搭建

修改HDFS配置文件

##### etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/soft/jdk1.8.0_251

#### etc/hadoop/core-site.xml
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop1:9000</value>
</property>

##### etc/hadoop/hdfs-site.xml
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

##### etc/hadoop/slaves
hadoop1

#### 格式化文件系统
bin/hdfs namenode -format

#### 启动HDFS
sbin/start-dfs.sh

#### 验证是否成功
jps
20896 Jps
20787 SecondaryNameNode
20521 NameNode
20638 DataNode

#### 修改Yarn配置
####### mapred-site.xml
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
--------------------------
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

####### yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

#### 启动Yarn
sbin/start-yarn.sh

#### 查看jps进程
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值