阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HA分布式集群搭建

403次阅读
没有评论

共计 22582 个字符,预计需要花费 57 分钟才能阅读完成。

一:HA 分布式配置的优势:

1,防止由于一台 namenode 挂掉,集群失败的情形

2,适合工业生产的需求

二:HA 安装步骤:

1,安装虚拟机

1,型号:VMware_workstation_full_12.5.0.11529.exe linux 镜像:CentOS-7-x86_64-DVD-1611.iso

注意点:

1,网络选择了桥接模式(可以防止 route 总变),(台式机或服务器最好设置自己的本机的 ip 地址为静态的 ip)

2,安装过程中选择了基础建设模式(infras…),(减少内存的消耗,但又保证基本的环境的模式)

3,用户名 root  密码 root
4,网络配置使用了手动网络固定网络 ip4 地址(固定 ip)

2,linux 基本环境配置:(操作都在 root 权限下进行的)

1,验证网络服务:ping < 主机 ip> 主机 ping < 虚拟机 ip>  ping www.baidu.ok 验证 ok

备份 ip 地址:cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

2,防火墙设置:关闭并禁用防火墙

关闭防火墙 systemctl stop firewalld.service(cetos7 与前面系列的 iptables 不同)

   禁用防火墙:systemctl disable firewalld.service

   查看防火墙状态:firewall-cmd –state

3,设置 hosts,hostname,network

vim /etc/hostname
ha1

vim /etc/hosts
192.168.1.116    ha1
192.168.1.117    ha2
192.168.1.118    ha3
192.168.1.119    ha4

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ha1

4,安装一些必要的包:(不一定全)

yum install -y chkconfig
yum install -y Python
yum install -y bind-utils
yum install -y psmisc
yum install -y libxslt
yum install -y zlib
yum install -y sqlite
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y fuse
yum install -y portmap
yum install -y fuse-libs
yum install -y RedHat-lsb

5,安装 Java 和 Scala

java 版本:jdk-7u80-linux-x64.rpm
scala 版本:scala-2.11.6.tgz

验证是否有 java:
rpm -qa|grep java 无

tar -zxf jdk-8u111-linux-x64.tar.gz
tar -zxf scala-2.11.6.tgz
mv jdk1.8.0_111 /usr/java
mv scala-2.11.6 /usr/scala

配置环境变量:
vim /etc/profile
export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6,重启,验证上述是否设置 ok : 重启 使用 vm 快照,命名为:初始化 ok java,scala, 主机名,防火墙,ip

3,Hadoop+zookeeper 集群配置

1,集群机准备

连接克隆:对 ha1 克隆出 ha2,ha3,ha4

对 ha2,ha3,ha4 修改网络地址,network, 防火墙
vim /etc/sysconfig/network-scripts/ifcfg-ens33
116 117/118/119
service network restart
vim /etc/hostname
vim /etc/sysconfig/network
systemctl disable firewalld.service

对 ha2,ha3,ha4 重启验证 ip, 网络,防火墙,分别对三台机快照,命名为:初始化 ok java,scala, 主机名,防火墙,ip

2,集群框架图

机子

Namenode

DataNode

Zookeeper

ZkFC

JournalNode

RM

DM

Ha1

1

 

1

1

1

1

 

Ha2

1

1

1

1

1

 

1

Ha3

 

1

1

 

1

 

1

Ha4

 

1

 

 

 

 

1

  3,ssh 通信:ok 后 快照 ssh ok

四台机:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

ha1 下:
scp ~/.ssh/* root@ha2:~/.ssh/
scp ~/.ssh/* root@ha3:~/.ssh/
scp ~/.ssh/* root@ha4:~/.ssh/

验证:
ssh ha2/ha3/ha4

4,zookeeper 集群配置:

1,配置环境变量

zook 安装:
tar -zxf zookeeper-3.4.8.tar.gz
mv zookeeper-3.4.8 /usr/zookeeper-3.4.8
修改配置文件:
export ZK_HOME=/usr/zookeeper-3.4.8
scp /etc/profile root@ha2:/etc/
scp /etc/profile root@ha3:/etc/
source /etc/profile

2,zoo.cfg 配置(加粗修改出)

cd /usr/zookeeper-3.4.8/conf
cp zoo_sample.cfg zoo.cfg
内容:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper/datas
dataLogDir=/opt/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to “0” to disable auto purge feature
#autopurge.purgeInterval=1
server.1=ha1:2888:3888
server.2=ha2:2888:3888
server.3=ha3:2888:3888

3,启动 zookeeper 集群:

# 三台机(ha1,ha2,ha3)
新建文件夹:
mkdir -p /opt/zookeeper/datas
mkdir -p /opt/zookeeper/logs
cd /opt/zookeeper/datas
vim myid    写 1 /2/3

# 分发给 ha2,ha3(注意 ha4 不需要)
cd /usr
scp -r zookeeper-3.4.8 root@ha2:/usr
scp -r zookeeper-3.4.8 root@ha3:/usr
# 启动(三台机)
cd $ZK_HOME/bin
zkServer.sh start
zkServer.sh status 一个 leader 和连个 follower

5,hadoop 集群配置

1,配置环境变量:

版本:hadoop-2.7.3.tar.gz

tar -zxf hadoop-2.7.3.tar.gz
mv hadoop2.7.3 /usr/hadoop2.7.3

export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/usr/hadoop-2.7.3
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile

2,hadoop.env.sh 配置:

export JAVA_HOME=/usr/java
source hadoop.env.sh
hadoop version    验证 ok

3,hdfs-site.xml 配置:后续修改后发送(scp hdfs-site.xml root@ha4:/usr/hadoop-2.7.3/etc/hadoop/)

vim hdfs-site.xml
<configuration>
    <property>
            <name>dfs.nameservices</name>
            <value>mycluster</value>
    </property>
    <property>
            <name>dfs.ha.namenodes.mycluster</name>
            <value>nn1,nn2</value>
    </property>
    <property>
            <name>dfs.namenode.rpc-address.mycluster.nn1</name>
            <value>ha1:9000</value>
    </property>
    <property>
            <name>dfs.namenode.rpc-address.mycluster.nn2</name>
            <value>ha2:9000</value>
    </property>
    <property>
            <name>dfs.namenode.http-address.mycluster.nn1</name>
            <value>ha1:50070</value>
    </property>
    <property>
            <name>dfs.namenode.http-address.mycluster.nn2</name>
            <value>ha2:50070</value>
    </property>
    <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://ha2:8485;ha3:8485;ha4:8485/mycluster</value>
    </property>
    <property>
            <name>dfs.client.failover.proxy.provider.mycluster</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
            <name>dfs.ha.fencing.methods</name>
            <value>sshfence</value>
    </property>
    <property>
            <name>dfs.ha.fencing.ssh.private-key-files</name>
            <value>/root/.ssh/id_rsa</value>
    </property>
    <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/opt/jn/data</value>
    </property>
    <property>
            <name>dfs.ha.automatic-failover.enabled</name>
            <value>true</value>
    </property>
</configuration>

4,core-site.xml 配置

<configuration>
      <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mycluster</value>
      </property>
      <property>
                <name>ha.zookeeper.quorum</name>
                <value>ha1:2181,ha2:2181,ha3:2181</value>
        </property>
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop2</value>
              <description>A base for other temporary  directories.</description>
      </property>
</configuration>

5,yarn-site.xml 配置

vim yarn-site.xml
<configuration>

<!– Site specific YARN configuration properties –>
        <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>
        <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>ha1</value>
      </property>
</configuration>

6,mapred-site.xml 配置

<configuration>         
<property> 
      <name>mapreduce.framework.name</name>
          <value>yarn</value>
</property>
</configuration>

7,slaves 配置:

vim slaves 
ha2
ha3
ha4

8,分发并启动:

# 分发
scp -r hadoop-2.7.3 root@ha2:/usr/
scp -r hadoop-2.7.3 root@ha3:/usr/
scp -r hadoop-2.7.3 root@ha4:/usr/
# 启动 JN(在 ha2,ha3,ha4)
cd sbin
./hadoop-daemon.sh start journalnode

[root@ha2 sbin]# jps
JournalNode
Jps
QuorumPeerMain(#zk 启动的线程)

#ha1:namenode 格式化
cd bin
./hdfs namenode -format
#zk 格式化
./hdfs zkfc -formatZK
# 可以查看 cd /opt/hadoop2 文件来查看元数据是否格式化正常

#ha2:namenode 格式化
1,ha1 要先启动 namenode:
./hadoop-daemon.sh start namenode
2,ha2 下
./hdfs namenode -bootstrapStandby

9,验证:http://192.168.1.116:50070/ 验证 ok   快照 ha 模式下的 hadoop+zookeeper 安装 ok

#hdfs 集群验证
[root@ha1 sbin]# ./stop-dfs.sh
Stopping namenodes on [ha1 ha2]
ha2: no namenode to stop
ha1: stopping namenode
ha2: no datanode to stop
ha3: no datanode to stop
ha4: no datanode to stop
Stopping journal nodes [ha2 ha3 ha4]
ha3: stopping journalnode
ha4: stopping journalnode
ha2: stopping journalnode
Stopping ZK Failover Controllers on NN hosts [ha1 ha2]
ha2: no zkfc to stop
ha1: no zkfc to stop
[root@ha1 sbin]# ./start-dfs.sh
ha1 下:
[root@ha1 sbin]# jps
Jps
NameNode
QuorumPeerMain
DFSZKFailoverController
[root@ha2 dfs]# jps
NameNode
DFSZKFailoverController
Jps
DataNode
JournalNode
QuorumPeerMain
[root@ha3 sbin]# jps
QuorumPeerMain
DataNode
JournalNode
Jps
[root@ha4 sbin]# jps
Jps
DataNode
JournalNode

 

配置 yarn 和 mapred
[root@ha1 sbin]# jps
NameNode
DFSZKFailoverController
Jps
QuorumPeerMain
ResourceManager
[root@ha2 hadoop]# jps
DataNode
NameNode
DFSZKFailoverController
JournalNode
NodeManager
Jps
QuorumPeerMain
[root@ha3 ~]# jps
QuorumPeerMain
DataNode
NodeManager
Jps
JournalNode
[root@ha4 ~]# jps
JournalNode
NodeManager
DataNode
Jps

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-12/149908p2.htm

一,概念

hive: 是一种数据仓库,数据储存在:hdfs 上,hsql 是由替换简单的 map-reduce,hive 通过 mysql 来记录映射数据 

二,安装

1,mysql 安装:

1,检测是否有 mariadb

rpm -qa|grep mariadb
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
存在:rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps

2,安装前准备:

# ha1 环境下:mysql 版本 mysql-5.7.18-linux-glibc2.5-x86_64
cp mysql-5.7.18-linux-glibc2.5-x86_64 /usr/mysql -r
# 创建用户组及用户 
groupadd mysql
useradd -r -g mysql mysql

cd /usr/local/mysql
mkdir data
chown -R mysql:mysql /usr/mysql 
# 验证权限:
ls -trhla
# 创建配置文件:
vim /etc/my.conf    # 一开始并不存在 
basedir=/usr/local/mysql/
datadir/usr/local/mysql/data
scoket=/tmp/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-fils=/var/run/mysqld/mysqld.pid
# 创建文件夹 
cd /var/run
mkdir mysqld
cd mysqld
vim mysqld.pid    # 什么都不用写,退出 
chown -R mysql:mysql /var/run/mysqld

3,配置 mysql:

# 初始化:
cd /usr/local/mysql/bin
./mysqld --initialize
生成初始密码:gctlsOja8<%0

# 添加自启动脚本服务 
chown -R mysql:mysql /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysql
service mysql start
进程查看:ps -ef | grep mysql

# 登录 
mysql    ./mysql -u root -p    输入密码

# 修改密码    
set password=password("123456");# 客户端远程连接 mysql 服务器问题:
grant all privileges on *.* to root@'%' identified by '1234567';
flush privileges;(sql 语句记得加分号啊)# 解决 root 权限访问所有数据库的问题 
grant all privileges on *.* to 'root'@'Master' identified by '123456' with grant option;( 连接权限的问题)flush privileges;

# 创建 hive 数据库 
create database hive default charset utf8 collate utf8_general_ci;

# 设置 mysql 自启动 
cd /etc/init.d
chmod +x mysql
chkconfig --add mysql
chkconfig --list(3 到 5 都为开,则添加成功)# 配置环境变量:
vim /etc/profile 
export MYSQL_HOME=/usr/local/mysql
export PATH=$JAVA_HOME/bin:$MYSQL_HOME/bin:$PATH
source /etc/profile

# 验证:ok
reboot
netstat -na |grep 3306
mysql -u root -p123456

2,hive 安装 (hive-2.1.1)

1,安装前配置

1,启动 Hadoop    前提先启动 zk
cd $ZK_HOME/bin
zkServer.sh start
    在 namenode 启动 start-all.sh
2,可以放在任一台 hadoop 集群中
3,解压 tar -zxf apache-hive-2.1.1-bin.tar.gz
4,mv apache-hive-2.1.1-bin /usr/hive-2.1.1
mv mysql-connector-java-5.1.42-bin.jar /usr/hive-2.1.1/lib
5,环境变量设置
vim /etc/profie
export HIVE_HOME=/usr/hive-2.1.1
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/bin
$source /etc/profile

2,hive-env.sh 配置

cd /app/soft/hive-2.1.1/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh 
export HADOOP_HOME=/usr/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive-2.1.1/conf

3,hive-site.xml 配置

touch hive-site.xml
vim hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://ha1:3306/hive?createDatabaseIfNotExsit=true;characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>datanucleus.readOnlyDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
  <value>false</value>
</property>
</configuration>

4,启动服务 (快照 hive+mysql ok)

cd $HIVE_HOME/bin
hive --service metastore &
hive --service hiveserver2&
./hive

一:HA 分布式配置的优势:

1,防止由于一台 namenode 挂掉,集群失败的情形

2,适合工业生产的需求

二:HA 安装步骤:

1,安装虚拟机

1,型号:VMware_workstation_full_12.5.0.11529.exe linux 镜像:CentOS-7-x86_64-DVD-1611.iso

注意点:

1,网络选择了桥接模式(可以防止 route 总变),(台式机或服务器最好设置自己的本机的 ip 地址为静态的 ip)

2,安装过程中选择了基础建设模式(infras…),(减少内存的消耗,但又保证基本的环境的模式)

3,用户名 root  密码 root
4,网络配置使用了手动网络固定网络 ip4 地址(固定 ip)

2,linux 基本环境配置:(操作都在 root 权限下进行的)

1,验证网络服务:ping < 主机 ip> 主机 ping < 虚拟机 ip>  ping www.baidu.ok 验证 ok

备份 ip 地址:cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

2,防火墙设置:关闭并禁用防火墙

关闭防火墙 systemctl stop firewalld.service(cetos7 与前面系列的 iptables 不同)

   禁用防火墙:systemctl disable firewalld.service

   查看防火墙状态:firewall-cmd –state

3,设置 hosts,hostname,network

vim /etc/hostname
ha1

vim /etc/hosts
192.168.1.116    ha1
192.168.1.117    ha2
192.168.1.118    ha3
192.168.1.119    ha4

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ha1

4,安装一些必要的包:(不一定全)

yum install -y chkconfig
yum install -y Python
yum install -y bind-utils
yum install -y psmisc
yum install -y libxslt
yum install -y zlib
yum install -y sqlite
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y fuse
yum install -y portmap
yum install -y fuse-libs
yum install -y RedHat-lsb

5,安装 Java 和 Scala

java 版本:jdk-7u80-linux-x64.rpm
scala 版本:scala-2.11.6.tgz

验证是否有 java:
rpm -qa|grep java 无

tar -zxf jdk-8u111-linux-x64.tar.gz
tar -zxf scala-2.11.6.tgz
mv jdk1.8.0_111 /usr/java
mv scala-2.11.6 /usr/scala

配置环境变量:
vim /etc/profile
export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6,重启,验证上述是否设置 ok : 重启 使用 vm 快照,命名为:初始化 ok java,scala, 主机名,防火墙,ip

3,Hadoop+zookeeper 集群配置

1,集群机准备

连接克隆:对 ha1 克隆出 ha2,ha3,ha4

对 ha2,ha3,ha4 修改网络地址,network, 防火墙
vim /etc/sysconfig/network-scripts/ifcfg-ens33
116 117/118/119
service network restart
vim /etc/hostname
vim /etc/sysconfig/network
systemctl disable firewalld.service

对 ha2,ha3,ha4 重启验证 ip, 网络,防火墙,分别对三台机快照,命名为:初始化 ok java,scala, 主机名,防火墙,ip

2,集群框架图

机子

Namenode

DataNode

Zookeeper

ZkFC

JournalNode

RM

DM

Ha1

1

 

1

1

1

1

 

Ha2

1

1

1

1

1

 

1

Ha3

 

1

1

 

1

 

1

Ha4

 

1

 

 

 

 

1

  3,ssh 通信:ok 后 快照 ssh ok

四台机:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

ha1 下:
scp ~/.ssh/* root@ha2:~/.ssh/
scp ~/.ssh/* root@ha3:~/.ssh/
scp ~/.ssh/* root@ha4:~/.ssh/

验证:
ssh ha2/ha3/ha4

4,zookeeper 集群配置:

1,配置环境变量

zook 安装:
tar -zxf zookeeper-3.4.8.tar.gz
mv zookeeper-3.4.8 /usr/zookeeper-3.4.8
修改配置文件:
export ZK_HOME=/usr/zookeeper-3.4.8
scp /etc/profile root@ha2:/etc/
scp /etc/profile root@ha3:/etc/
source /etc/profile

2,zoo.cfg 配置(加粗修改出)

cd /usr/zookeeper-3.4.8/conf
cp zoo_sample.cfg zoo.cfg
内容:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper/datas
dataLogDir=/opt/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to “0” to disable auto purge feature
#autopurge.purgeInterval=1
server.1=ha1:2888:3888
server.2=ha2:2888:3888
server.3=ha3:2888:3888

3,启动 zookeeper 集群:

# 三台机(ha1,ha2,ha3)
新建文件夹:
mkdir -p /opt/zookeeper/datas
mkdir -p /opt/zookeeper/logs
cd /opt/zookeeper/datas
vim myid    写 1 /2/3

# 分发给 ha2,ha3(注意 ha4 不需要)
cd /usr
scp -r zookeeper-3.4.8 root@ha2:/usr
scp -r zookeeper-3.4.8 root@ha3:/usr
# 启动(三台机)
cd $ZK_HOME/bin
zkServer.sh start
zkServer.sh status 一个 leader 和连个 follower

5,hadoop 集群配置

1,配置环境变量:

版本:hadoop-2.7.3.tar.gz

tar -zxf hadoop-2.7.3.tar.gz
mv hadoop2.7.3 /usr/hadoop2.7.3

export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/usr/hadoop-2.7.3
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile

2,hadoop.env.sh 配置:

export JAVA_HOME=/usr/java
source hadoop.env.sh
hadoop version    验证 ok

3,hdfs-site.xml 配置:后续修改后发送(scp hdfs-site.xml root@ha4:/usr/hadoop-2.7.3/etc/hadoop/)

vim hdfs-site.xml
<configuration>
    <property>
            <name>dfs.nameservices</name>
            <value>mycluster</value>
    </property>
    <property>
            <name>dfs.ha.namenodes.mycluster</name>
            <value>nn1,nn2</value>
    </property>
    <property>
            <name>dfs.namenode.rpc-address.mycluster.nn1</name>
            <value>ha1:9000</value>
    </property>
    <property>
            <name>dfs.namenode.rpc-address.mycluster.nn2</name>
            <value>ha2:9000</value>
    </property>
    <property>
            <name>dfs.namenode.http-address.mycluster.nn1</name>
            <value>ha1:50070</value>
    </property>
    <property>
            <name>dfs.namenode.http-address.mycluster.nn2</name>
            <value>ha2:50070</value>
    </property>
    <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://ha2:8485;ha3:8485;ha4:8485/mycluster</value>
    </property>
    <property>
            <name>dfs.client.failover.proxy.provider.mycluster</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
            <name>dfs.ha.fencing.methods</name>
            <value>sshfence</value>
    </property>
    <property>
            <name>dfs.ha.fencing.ssh.private-key-files</name>
            <value>/root/.ssh/id_rsa</value>
    </property>
    <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/opt/jn/data</value>
    </property>
    <property>
            <name>dfs.ha.automatic-failover.enabled</name>
            <value>true</value>
    </property>
</configuration>

4,core-site.xml 配置

<configuration>
      <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mycluster</value>
      </property>
      <property>
                <name>ha.zookeeper.quorum</name>
                <value>ha1:2181,ha2:2181,ha3:2181</value>
        </property>
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop2</value>
              <description>A base for other temporary  directories.</description>
      </property>
</configuration>

5,yarn-site.xml 配置

vim yarn-site.xml
<configuration>

<!– Site specific YARN configuration properties –>
        <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>
        <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>ha1</value>
      </property>
</configuration>

6,mapred-site.xml 配置

<configuration>         
<property> 
      <name>mapreduce.framework.name</name>
          <value>yarn</value>
</property>
</configuration>

7,slaves 配置:

vim slaves 
ha2
ha3
ha4

8,分发并启动:

# 分发
scp -r hadoop-2.7.3 root@ha2:/usr/
scp -r hadoop-2.7.3 root@ha3:/usr/
scp -r hadoop-2.7.3 root@ha4:/usr/
# 启动 JN(在 ha2,ha3,ha4)
cd sbin
./hadoop-daemon.sh start journalnode

[root@ha2 sbin]# jps
JournalNode
Jps
QuorumPeerMain(#zk 启动的线程)

#ha1:namenode 格式化
cd bin
./hdfs namenode -format
#zk 格式化
./hdfs zkfc -formatZK
# 可以查看 cd /opt/hadoop2 文件来查看元数据是否格式化正常

#ha2:namenode 格式化
1,ha1 要先启动 namenode:
./hadoop-daemon.sh start namenode
2,ha2 下
./hdfs namenode -bootstrapStandby

9,验证:http://192.168.1.116:50070/ 验证 ok   快照 ha 模式下的 hadoop+zookeeper 安装 ok

#hdfs 集群验证
[root@ha1 sbin]# ./stop-dfs.sh
Stopping namenodes on [ha1 ha2]
ha2: no namenode to stop
ha1: stopping namenode
ha2: no datanode to stop
ha3: no datanode to stop
ha4: no datanode to stop
Stopping journal nodes [ha2 ha3 ha4]
ha3: stopping journalnode
ha4: stopping journalnode
ha2: stopping journalnode
Stopping ZK Failover Controllers on NN hosts [ha1 ha2]
ha2: no zkfc to stop
ha1: no zkfc to stop
[root@ha1 sbin]# ./start-dfs.sh
ha1 下:
[root@ha1 sbin]# jps
Jps
NameNode
QuorumPeerMain
DFSZKFailoverController
[root@ha2 dfs]# jps
NameNode
DFSZKFailoverController
Jps
DataNode
JournalNode
QuorumPeerMain
[root@ha3 sbin]# jps
QuorumPeerMain
DataNode
JournalNode
Jps
[root@ha4 sbin]# jps
Jps
DataNode
JournalNode

 

配置 yarn 和 mapred
[root@ha1 sbin]# jps
NameNode
DFSZKFailoverController
Jps
QuorumPeerMain
ResourceManager
[root@ha2 hadoop]# jps
DataNode
NameNode
DFSZKFailoverController
JournalNode
NodeManager
Jps
QuorumPeerMain
[root@ha3 ~]# jps
QuorumPeerMain
DataNode
NodeManager
Jps
JournalNode
[root@ha4 ~]# jps
JournalNode
NodeManager
DataNode
Jps

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-12/149908p2.htm

(一)HA 下配置 spark

1,spark 版本型号:spark-2.1.0-bin-Hadoop2.7

2,解压,修改配置环境变量

tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz
mv spark-2.1.0-bin-hadoop2.7 /usr/spark-2.1.0

vim /etc/profile
export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/usr/hadoop-2.7.3
export ZK_HOME=/usr/zookeeper-3.4.8
export MYSQL_HOME=/usr/local/mysql
export HIVE_HOME=/usr/hive-2.1.1
export SPARK_HOME=/usr/spark-2.1.0
export PATH=$SPARK_HOME/bin:$HIVE_HOME/bin:$MYSQL_HOME/bin:$ZK_HOME/bin:$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3,修改 spark-env.sh 文件

cd $SPARK_HOME/conf 
vim spark-env.sh
# 添加 
export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ha1:2181,ha2:2181,ha3:2181 -Dspark.deploy.zookeeper.dir=/spark"  
export HADOOP_CONF_DIR=/usr/hadoop-2.7.3/conf/etc/hadoop
export SPARK_MASTER_PORT=7077
export SPARK_EXECUTOR_INSTANCES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1024M
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_CONF_DIR=/usr/spark-2.1.0/conf

4,修改 slaves 文件

vim slaves
# 添加 
ha2
ha3
ha4

5,分发及启动

cd /usr
scp -r spark-2.1.0 root@ha4:/usr
scp -r spark-2.1.0 root@ha3:/usr
scp -r spark-2.1.0 root@ha2:/usr
scp -r spark-2.1.0 root@ha1:/usr
# 在 ha1 上 
./$SPARK_HOME/sbin/start-all.sh
#ha2,ha3 上 
./$SPARK_HOME/sbin/start-master.sh

各个节点 jps 情况:

[root@ha1 spark-2.1.0]# jps
2464 NameNode
2880 ResourceManager
2771 DFSZKFailoverController
3699 Jps
2309 QuorumPeerMain
3622 Master
[root@ha2 zookeeper-3.4.8]# jps
2706 NodeManager
3236 Jps
2485 JournalNode
3189 Worker
2375 DataNode
2586 DFSZKFailoverController
2236 QuorumPeerMain
2303 NameNode
3622 Master
[root@ha3 zookeeper-3.4.8]# jps
2258 DataNode
2466 NodeManager
2197 QuorumPeerMain
2920 Jps
2873 Worker
2331 JournalNode
3622 Master
[root@ha4 ~]# jps
2896 Jps
2849 Worker
2307 JournalNode
2443 NodeManager
2237 DataNode

6,关机,快照 sparkok

# 启动集群顺序 
#ha1,ha2,ha3
cd $ZK_HOME
./bin/zkServer.sh start
#ha1
cd $HADOOP_HOME
./sbin/start-all.sh
cd $SPARK_HOME
./sbin/start-all.sh
#ha2,ha3
./sbin/start-master.sh

Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署  http://www.linuxidc.com/Linux/2017-04/143095.htm

Hadoop2.7.2 集群搭建详解(高可用)http://www.linuxidc.com/Linux/2017-03/142052.htm

使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)http://www.linuxidc.com/Linux/2017-03/142136.htm

Ubuntu 14.04 下 Hadoop 集群安装  http://www.linuxidc.com/Linux/2017-02/140783.htm

CentOS 6.7 安装 Hadoop 2.7.2  http://www.linuxidc.com/Linux/2017-08/146232.htm

Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群  http://www.linuxidc.com/Linux/2017-07/145503.htm

CentOS 7.3 下 Hadoop2.8 分布式集群安装与测试  http://www.linuxidc.com/Linux/2017-09/146864.htm

CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建  http://www.linuxidc.com/Linux/2017-06/144932.htm

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程  http://www.linuxidc.com/Linux/2017-06/144926.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-12/149908.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计22582字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985407
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...