【linux】之大数据基础平台实施及运维下

news2024/11/29 6:39:17

一、完全分布式部署介绍

学习目标

  • 能够了解完全分布式部署场景
    完全分部式是真正利用多台Linux主机来进行部署Hadoop,对Linux机器集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上。

二、NameNode HA+完全分布式部署

学习目标

  • 能够了解HA+完成分布式部署场景
  • 能够对HA+完全分布式部署架构规划
  • 能够对HA+完全分布式部署进行配置

预备知识

1)什么是HA?

HA的意思是High Availability高可用,指当当前工作中的机器宕机后,会自动处理这个异常,并将工作无缝地转移到其他备用机器上去,以来保证服务的高可用。

HA方式安装部署才是最常见的生产环境上的安装部署方式。Hadoop HA是Hadoop 2.x中新添加的特性,包括NameNode HA 和 ResourceManager HA。因为DataNode和NodeManager本身就是被设计为高可用的,所以不用对他们进行特殊的高可用处理。

2)NameNode HA切换实现方法

Hadoop2.X对NameNode进行一个抽象:NameService 一个NameService下面有两个NameNode,分别处于Active和Standby状态。

通过Zookeeper进行协调选举,确保只有一个活跃的NameNode。

一旦主(Active)宕掉,standby会切换成Active。

在这里插入图片描述
作为一个ZK集群的客户端,用来监控NN的状态信息。每个运行NN的节点必须要运行一个zkfc。
zkfc提供以下功能:

Health monitoring

zkfc定期对本地的NN发起health-check的命令,如果NN正确返回,那么这个NN被认为是OK的。否则被认为是失效节点。

ZooKeeper session management

当本地NN是健康的时候,zkfc将会在zk中持有一个session。如果本地NN又正好是active的,那么zkfc还有持有一个"ephemeral"的节点作为锁,一旦本地NN失效了,那么这个节点将会被自动删除。

ZooKeeper-based election

如果本地NN是健康的,并且zkfc发现没有其他的NN持有那个独占锁。那么他将试图去获取该锁,一旦成功,那么它就需要执行Failover,然后成为active的NN节点。Failover的过程是:第一步,对之前的NN执行fence,如果需要的话。第二步,将本地NN转换到active状态。

在这里插入图片描述

3)NameNode HA数据共享方法

Namenode主要维护两个文件,一个是fsimage,一个是editlog。

fsimage保存了最新的元数据检查点,包含了整个HDFS文件系统的所有目录和文件的信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。

editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。
在这里插入图片描述
上面在Active Namenode与StandBy Namenode之间的绿色区域就是JournalNode,当然数量不一定只有1个,作用相当于NFS共享文件系统,Active Namenode往里写editlog数据,StandBy再从里面读取数据进行同步。

两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。

集群启动时,可以同时启动2个NameNode。这些NameNode只有一个是active的,另一个属于standby状态。active状态意味着提供服务,standby状态意味着处于休眠状态,只进行数据同步,时刻准备着提供服务

在这里插入图片描述
在这里插入图片描述

部署规划

在这里插入图片描述

实施

1)系统时间同步

[root@localhost ~]#ntpdate time1.aliyun.com

2)设置主机IP及名称解析

[root@localhost ~]#vim /etc/hosts
192.168.208.5 hd1
192.168.208.10 hd2
192.168.208.20 hd3
192.168.208.30 hd4
192.168.208.40 hd5
192.168.208.50 hd6

把/etc/hosts文件复制到所有集群主机

3)关闭防火墙及Selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4)部署JDK

[root@localhost ~]#firefox http://download.oracle.com
[root@localhost ~]#tar xf jdk-8u191-linux-x64.tar.gz -C /usr/local
[root@localhost ~]#mv /usr/local/jdk1.8 /usr/local/jdk

5)SSH免密登录

[root@localhost ~]#ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ''
[root@localhost ~]#cd /root/.ssh
[root@localhost ~]#cp id_rsa.pub authorized_keys
[root@localhost ~]#for i in hd2 hd3 hd4 hd5 hd6;do scp -r /root/.ssh $i:/root;done

把密钥复制到所有主机

6)zookeeper部署

6.0)zookeeper作用

ZooKeeper 是为分布式应用程序提供高性能协调服务的工具集合,译名为“动物园管理员”。

分布式应用程序可以基于它实现配置维护、命名服务、分布式同步、组服务等。

是 Hadoop集群管理的一个必不可少的模块,它主要用来解决分布式应用中经常遇到的数据管理问题,如集群管理、统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等。

在ZooKeeper集群当中,集群中的服务器角色有两种Leader和Learner,Learner角色又分为Observer和Follower
在这里插入图片描述
Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。

当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Follower完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Follower具有相同的系统状态。

如下图所示:
在这里插入图片描述
该ZooKeeper集群当中一共有5台服务器,有两种角色Leader和Follwer,5台服务器连通在一起,客户端又分别连在不同的ZK服务器上。

如果当数据通过客户端1,在左边第一台Follower服务器上做了一次数据变更,它会把这个数据的变化同步到其他所有的服务器,同步结束之后,那么其他的客户端都会获得这个数据的变化。

Zookeeper是一个由多个server组成的集群,一个leader,多个follower,每个server保存一份数据副本,全局数据一致、分布式读写,更新请求转发,由leader实施。

  • Leader主要有三个功能
      1. 恢复数据;
      1. 维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;
      1. Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。
  • Follower主要有四个功能
      1. 向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息);
      1. 接收Leader消息并进行处理;
      1. 接收Client的请求,如果为写请求,发送给Leader进行投票;
      1. 返回Client结果。

zookeeper部署至hdfs集群的datanode节点,此案例共3台。

6.1)获取软件包
[root@localhost ~]#wget https://www-eu.apache.org/dist/zookeeper/zookeeper3.4.13/zookeeper-3.4.13.tar.gz
6.2)部署软件包
[root@localhost ~]#tar xf zookeeper-3.4.13.tar.gz -C /usr/local
[root@localhost ~]#mv /usr/local/zookeeper-3.4.13 /usr/local/zookeeper
[root@localhost ~]#mv /usr/local/zookeeper/conf/zoo.sample.cfg
/usr/local/zookeeper/conf/zoo.cfg
[root@localhost ~]#vim /usr/local/zookeeper/conf/zoo.cfg
data=/opt/data
server.1=hd4:2888:3888
server.2=hd5:2888:3888
server.3=hd6:2888:3888
[root@localhost ~]#mkdir /opt/data
[root@localhost ~]#echo 1 > /opt/data/myid

每台服务器myid不同,需要分别修改,例如server.1对应的myid内容为1,server.2对应的myid内容为2,
server.3对应的myid为3。
2888端口:follower连接到leader机器的端口
3888端口:leader选举端口

6.3)添加环境变量
[root@localhost ~]#vim /etc/profile.d/hadoop.sh
export JAVA_HOME=/usr/local/jdk
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=${JAVA_HOME}/bin:${ZOOKEEPER_HOME}/bin:$PATH
[root@localhost ~]# source /etc/profile

在3台datanode节点上全部添加

6.4)验证zookeeper
[root@localhost ~]#zkServer.sh start
[root@localhost ~]#zkServer.sh status

需要把以上文件拷贝至3台datanode,然后全部执行开启命令

[root@localhost ~]#zkServer.sh stop

7)hadoop软件包获取

[root@localhost ~]#wget
http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop2.8.5.tar.gz
[root@localhost ~]#tar xf hadoop-2.8.5.tar.gz -C /opt

8)完全分布式(HA)配置文件修改

8.1)hadoop-env.sh
[root@localhost ~]#vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk

修改hadoop-env.sh 25行,mapred-env.sh 16行,yarn-env.sh 23行,针对hadoop-2.8.5版本

8.2)core-site.xml
[root@localhost ~]#vim core-site.xml
<!-- 指定hdfs的nameservice为ns1 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://ns1</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/data/tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
    <name>ha.zookeeper.quorum</name>
    <value>hd4:2181,hd5:2181,hd6:2181</value>
</property>
8.3)hdfs-site.xml
[root@localhost ~]#vim hdfs-site.xml
[root@localhost ~]#vim hdfs-site.xml

<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
    <name>dfs.nameservices</name>
    <value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
    <name>dfs.ha.namenodes.ns1</name>
    <value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
    <name>dfs.namenode.rpc-address.ns1.nn1</name>
    <value>hd1:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
    <name>dfs.namenode.http-address.ns1.nn1</name>
    <value>hd1:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
    <name>dfs.namenode.rpc-address.ns1.nn2</name>
    <value>hd2:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
    <name>dfs.namenode.http-address.ns1.nn2</name>
    <value>hd2:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://hd4:8485;hd5:8485;hd6:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/data/journal</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
    <name>dfs.client.failover.proxy.provider.ns1</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    </valu
e>
</property>
<!-- 配置隔离机制 -->
<property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
</property>
<!-- 使用隔离机制时需要ssh免登陆 -->
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
</property>
8.4)配置datanode节点记录文件 slaves
[root@localhost ~]#vim slaves
hd4
hd5
hd6
8.5)mapred-site.xml
[root@localhost ~]#cp /opt/hadoop285/etc/hadoop/mapred-site.xml.template
/opt/hadoop285/etc/hadoop/mapred-site.xml
[root@localhost ~]#vim mapred-site.xml
<!-- 指定mr框架为yarn方式 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
8.6)yarn-site.xml
[root@localhost ~]#vim yarn-site.xml

<!-- 指定resourcemanager地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hd3</value>
</property>
<!-- 指定nodemanager启动时加载server的方式为shuffle server -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

9)复制修改后的hadoop目录到所有集群节点

[root@localhost ~]#scp -r hadoop hdX:/opt
[root@localhost ~]#scp /etc/profile.d/hadoop.sh hdX:/etc/profile.d/
[root@localhost ~]#source /etc/profile

10)在datanode节点(3台)启动zookeeper

[root@localhost ~]#zkServer.sh start

11)启动journalnode(在namenode上操作,例如hd1)

[root@localhost ~]#hadoop-daemons.sh start journalnode

分别到hd4、hd5、hd6节点上进行验证

 [root@localhost ~]#jps

12)格式化hdfs文件系统(在namenode上操作,例如hd1)

[root@localhost ~]#hdfs namenode -format

格式化完成后,请把/opt/data/tmp目录拷贝至hd2相应的位置,hd2将不再需要格式化,可以直接使用。

13)格式化zk(namenode上操作,例如hd1)

[root@localhost ~]#hdfs zkfc -formatZK

14)启动hdfs(namenode上操作,例如hd1)

[root@localhost ~]#start-dfs.sh

15)启动yarn(namenode上操作,例如想让hd2成为resourcemanager,需要在hd2上

启动。)

[root@localhost ~]#start-yarn.sh

16)访问

NameNode1:http://hd1:50070 查看NameNode状态

NameNode2:http://hd2:50070 查看NameNode状态

NameNode3:http://hd3:8088 查看yarn状态

三、Ambari自动部署Hadoop

学习目标

  • 能够了解Ambari应用场景
  • 能够了解Ambari功能
  • 能够安装并配置Ambari Server
  • 能够安装并配置Ambari Agent
  • 能够通过Ambari实现Hadoop集群自动部署
  • 能够掌握Ambari自动部署的Hadoop集群使用测试

1)Ambari介绍

Apache Ambari项目旨在通过开发用于配置,管理和监控Apache Hadoop集群的软件来简化Hadoop管理。Ambari提供了一个由RESTful API支持的直观,易用的Hadoop管理Web UI。

Ambari使系统管理员能够:

  • 提供Hadoop集群
    • Ambari提供了跨任意数量的主机安装Hadoop服务的分步向导。
    • Ambari处理群集的Hadoop服务配置。
  • 管理Hadoop集群
    • Ambari提供集中管理,用于在整个集群中启动,停止和重新配置Hadoop服务。
  • 监控Hadoop集群
    • Ambari提供了一个仪表板,用于监控Hadoop集群的运行状况和状态。
    • Ambari利用Ambari指标系统进行指标收集。
    • Ambari利用Ambari Alert Framework进行系统警报,并在需要您注意时通知您(例如,节点出现故障,剩余磁盘空间不足等)。

Ambari使应用程序开发人员和系统集成商能够:

  • 使用Ambari REST API轻松将Hadoop配置,管理和监控功能集成到自己的应用程序中

2)Ambari部署

Ambari本身也是一个分布式架构软件,主要由两部分组成:Ambari Server和Ambari Agent。用户通过AmbariServer通知Ambari Agent安装对应的软件,Agent会定时发送各个机器每个软件模块的状态给Server,最终这些状态信息会呈现给Ambari的GUI,方便用户了解到集群中各组件状态,做出相应的维护策略。

Ambari部署介绍:https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.5/bk_ambari-installation/content/hdp_26_repositories.html

2.1)环境准备

1.Centos7.5 6台
1台做Ambari Server
5台做Ambari Agent[即可部署hadoop集群]
在这里插入图片描述

2.静态IP地址配置及集群主机之间多机互信

[root@ambariserver ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.122.X" #各主机IP地址自行规划
PREFIX="24"
GATEWAY="192.168.122.1"
DNS1="119.29.29.29"

[root@localhost ~]#ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ''
[root@localhost ~]#cd /root/.ssh
[root@localhost ~]#cp id_rsa.pub authorized_keys
[root@localhost ~]#scp -r /root/.ssh 192.168.208.x:/root

3.集群主机名定义

[root@localhost ~]#vim /etc/hosts
192.168.122.10 ambariserver.a.com ambariserver
192.168.122.20 hd1.a.com hd1
192.168.122.30 hd2.a.com hd2
192.168.122.40 hd3.a.com hd3
192.168.122.50 hd4.a.com hd4
192.168.122.60 hd5.a.com hd5

完全合格域名格式

4.添加JDK

[root@localhost ~]#tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local
[root@localhost ~]#mv /usr/local/jdk1.8_91 /usr/local/jdk

5.安装mariadb

[root@localhost ~]#yum -y install mariadb mariadb-server
[root@localhost ~]#systemctl start mariadb
[root@localhost ~]#systemctl enable mariadb
[root@localhost ~]#mysqladmin -uroot password "abc123"
[root@localhost ~]#mysql -uroot -pabc123

>create database ambari character set utf8;
> grant all on ambari.* to 'ambari'@'%' identified by 'abc123';
> grant all on ambari.* to 'ambari'@'ambariserver.a.com' identified by 'abc123';
> grant all on ambari.* to 'ambari'@'ambariserver' identified by 'abc123';

数据库访问授权要指定访问主机,例如ambariserver,不然可能会导致ambari-server start 失败。

grant all on . to ‘root’@‘ambari.a.com’ identified by “abc123”; create database ambari character set
utf8; create user ‘ambari’@‘%’ identified by “abc123456”; grant all on . to ‘ambari’@‘%’; update
mysql.user set password=password(‘abc123456’) where user=‘ambari’;

验证

 [root@localhost ~]# mysql -h ambariserver.a.com -uambari -pabc123

6.安装数据库连接工具

[root@localhost ~]#yum -y install mysql-connector-java

7.安装httpd

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl enable httpd

8.解决已获取软件资源至/var/www/html及/var/www/html

[root@localhost ~]#tar xf ambari-2.6.1.0-centos7.tar.gz -C /var/www/html/
[root@localhost ~]#tar xf HDP-2.6.4.0-centos7-rpm.tar.gz -C /var/www/html
[root@localhost ~]#tar xf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html
[root@localhost ~]#tar xf HDP-GPL-2.6.4.0-centos7-rpm.tar.gz -C /var/www/html

9.配置本地YUM源

  • ambari源
[root@localhost ~]# vim /etc/yum.repos.d/ambari.repo
[ambari-2.6.1.5]
name=ambari Version - ambari-2.6.1.5
baseurl=http://<web-server-ip> or FQDN /ambari/centos7/2.6.1.5-3
gpgcheck=1
gpgkey=http://<web-server-ip> or FQDN /ambari/centos7/2.6.1.5-3/RPM-GPG-KEY/RPM-GPGKEY-Jenkins
enabled=1
priority=1
  • hdp源
[root@localhost ~]# vim /etc/yum.repos.d/ambari.repo
#VERSION_NUMBER=2.6.4.0-91
[HDP-2.6.4.0]
name=HDP Version - HDP-2.6.4.0
baseurl=http://<web-server-ip> or FQDN /HDP/centos7/2.6.4.0-91
gpgcheck=1
gpgkey=http://<web-server-ip> or FQDN /HDP/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEYJenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://<web-server-ip> or FQDN /HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://<web-server-ip> or FQDN /HDP/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEYJenkins
enabled=1
priority=1
[HDP-GPL-2.6.4.0]
name=HDP-GPL Version - HDP-GPL-2.6.4.0
baseurl=http://<web-server-ip> or FQDN /HDP-GPL/centos7/2.6.4.0-91
gpgcheck=1
gpgkey=http://<web-server-ip> or FQDN /HDP-GPL/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPGKEY-Jenkins
enabled=1
priority=1

10.Linux内核参数修改

[root@localhost ~]#ulimit -Sn 软限制
[root@localhost ~]#ulimit -Hn 硬限制
[root@localhost ~]#vim /etc/security/limits.conf
* soft nofile 10240
* hard nofile 20480

2.2)部署Ambari Server

[root@localhost ~]#yum -y intsall ambari-server

2.3)初始化Ambari Server

2.3.1)初始化前导入数据库

[root@localhost ~]#mysql -h ambariserver.a.com -uambari -pabc123
>use ambari;
>source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
>show tables;

2.3.2)Ambari Server初始化

[root@localhost ~]#ambari-server setup
Customize user account for ambari-server daemon [y/n] (n)?y
Enter user account for ambari-server daemon (root):root
Do you want to change Oracle JDK [y/n] (n)? y
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
Path to JAVA_HOME: /usr/local/jdk
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n
Enter advanced database configuration [y/n] (n)? y
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (3): 3
Hostname (localhost): ambari.a.com
Port (3306):3306
Database name (ambari):ambari
Username (ambari): ambari
Enter Database Password :abc123456
WARNING: Before starting Ambari Server, you must run the following DDL against the
database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQLCREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?y

2.4)启动Ambari Server

[root@localhost ~]#ambari-server start
[root@localhost ~]#/sbin/chkconfig ambari-server on

出现ERROR时,如果退出码状态为非0或0,并报告没有8080端口启动,请稍等待片刻。

2.5)访问Ambari Server服务器

http://ambari.a.com:8080 登录用户名和密码均为:admin

2.6)Ambari Agent部署

Agent主动汇报所在节点状态情况

2.6.1)部署JDK

[root@localhost ~]#for i in hd{1..5};do scp -r /usr/local/jdk $i:/usr/local;done

在Ambari Server上拷贝到各Agent主机

2.6.2)部署YUM源

[root@localhost ~]#for i in hd{1..5};do scp -r /etc/yum.repos.d/ambari.repo
/etc/yum.repos.d/hdp.repo $i:/etc/yum.repos.d;done

在Ambari Server上拷贝到各Agent主机

2.6.3)部署Ambari Agent

[root@localhost ~]#yum -y install ambari-agent
[root@localhost ~]#systemctl start ambari-agent
[root@localhost ~]#/sbin/chkconfig ambari-agent on

报错解决方法:提示Connecting to https://amabri_server_host:8440/ca ERROR
解决方法如下:

[root@localhost ~]#rpm -qa | grep openssl
openssl-1.0.2k-12.el7.x86_64 openssl-libs-1.0.2k-12.el7.x86_64
[root@localhost ~]# vi /etc/python/cert-verification.cfg
[https]
verify=disable #修改
[root@localhost ~]#vim /etc/ambari-agent/conf/ambari-agent.ini
[security]
force_https_protocol=PROTOCOL_TLSv1_2 #添加一行
[root@localhost ~]#ambari-agent restart

yum -y install libtirpc-devel #centos7.6中要安装
以上问题处理需要在所有Ambari-agent主机上操作。

2.7)Ambari Server Web端操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Hadoop监控

学习目标

  • 能够通过Ambari实现Hadoop集群监控

在这里插入图片描述

五、验证Hadoop集群可用性

在任意一台已安装client服务器上均可做如下操作

[root@hd2 ~]# su - hdfs
[hdfs@hd2 ~]$ vim test.txt
tom
ken
192.168.1.1
[hdfs@hd2 ~]$ hdfs dfs -ls /
[hdfs@hd2 ~]$ hdfs dfs -mkdir /input
[hdfs@hd2 ~]$ hdfs dfs -put test.txt /input
[hdfs@hd2 ~]$ hadoop jar /usr/hdp/3.1.0.0-78/hadoop-mapreduce/hadoop-mapreduceexamples.jar wordcount /input /output
[root@hd2 ~]# hdfs dfs -cat /output/part-r-00000
192.168.1.1 1
ken 1
tom 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络习题集

文章目录题目答案&#xff1a;题目一&#xff1a;答案一&#xff1a;题目二答案二&#xff1a;题目三&#xff1a;题四&#xff1a;答案四&#xff1a;题目答案&#xff1a; 一、 单项选择题 计算机网络最突出的优点是( D ) A. 精度高 B. 内存容量大 C. 运算速度快 D. 共享资…

【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析

前提介绍 SpringCloud-Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件&#xff0c;方便开发者通过 Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba&#xff0c;您只需要添加一些注解和少量配…

计算机网络(自顶向下)学习笔记——网络层

第四章—网络层 4.1、概述 转发功能和路由选择功能的区别&#xff1f; 转发涉及在单个的路由中从一条入链路到一条出链路的传送路由选择涉及一个网络的所有路由器&#xff0c;他们经路由选择协议共同交互&#xff0c;决定分组从源到目地结点所采用的的路径 4.1.1、转发和路…

Metal每日分享,调整透明度滤镜效果

本案例的目的是理解如何用Metal实现调整透明度效果滤镜&#xff0c;核心就是改变图像像素的透明度值&#xff1b; Demo HarbethDemo地址 实操代码 // 透明度滤镜 let filter C7Opacity.init(opacity: 0.75)// 方案1: ImageView.image try? BoxxIO(element: originImage, …

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁

MyBatisPlus&#xff08;简称MP&#xff09;是基于MyBatis框架基础上开发的增强型工具&#xff0c;旨在简化开发、提高效率 入门案例 继承BaseMapper<自己的domain类> 就可以了&#xff0c;自动装配后直接会有各种方法 标准数据层开发 MP分页查询功能 条件查询 NULL值控制…

玩以太坊链上项目的必备技能(单位以及全局变量-Solidity之旅七)

以太币单位&#xff08;Ether&#xff09; 甭管是虚拟货币还是现实中的“稳定币”&#xff0c;他们都有各自的货币单位。当然咯&#xff0c;作为以太坊区块链上交易的虚拟货币以太坊也是有属于自己的那一套货币单位的。 而目前以太币&#xff08;Ether&#xff09;主要分为这…

python批量下载apache文件服务器文件

此脚本用于下载apache文件服务器中制定某个文件夹下所有文件与文件夹。 包含下载单个文件的方法、拼接url递归下载的方法、参数解析。 1 下载文件 功能点&#xff1a; 文件下载 以追加写的方式打开一个新文件&#xff0c;按照块大小写入文件 with open(filepath, wb) as fi…

Kafka实战 - 03 Kafka生产者:将X平台的告警和事件数据接入到S平台

文章目录1. 项目背景2. 依赖和配置3. 生产者配置 KafkaConfiguration4. 同步数据Topic枚举 SyncDataTopicEnum5. 请求体 DataSyncQo6. 同步数据控制层 AppSyncDataController7. 同步数据业务层 XdrDataSyncServiceImpl1. 项目背景 资产可能会遭受各种网络攻击&#xff0c;安全…

[附源码]Python计算机毕业设计SSM基于JAVA语言的宠物寄养管理(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

1,4-丁炔二醇BYD物料中含有大量铜离子、二氧化硅等杂质怎么办?

1,4-丁炔二醇BYD&#xff08;but-2-yne-1,4-diol&#xff09;是一种重要的中间体化工原料&#xff0c;广泛应用于生产丁二醇及其下游产品、维生素B6的主要原料&#xff0c;还可以用于镀镍的增亮剂、防腐抑制剂等领域。 1,4&#xff0d;丁二醇&#xff08;BDO&#xff09;是一种…

[附源码]Python计算机毕业设计SSM基于web的社团管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

免费开源的图片修复工具Lama Cleaner

什么是 Lama Cleaner &#xff1f; Lama Cleaner 是由 SOTA AI 模型提供支持的图像修复工具。可以从图片中移除任何不需要的物体、缺陷和人&#xff0c;或者擦除并替换&#xff08;powered by stable diffusion&#xff09;图片上的任何东西。 看看官方提供的视频&#xff0c;应…

图片怎么转换成PDF格式?这两种方法都可以实现转换

怎么把图片转换成PDF格式呢&#xff1f;大家在日常中也会经常使用到图片&#xff0c;不管是出门游玩还是办公学习&#xff0c;图片都会给我们带来极大的便利。但是一旦图片的数量多了起来&#xff0c;我们又不能删除&#xff0c;那么这些图片的存放就是一个关键的问题&#xff…

[附源码]计算机毕业设计的小说阅读系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

“数据湖存储”冠军杯足球赛开幕,腾讯云存储出征!

“数据湖存储”冠军杯是数据湖领域内的世界级赛事&#xff0c;随着云上“数据湖存储”产品理念的逐步普及&#xff0c;今年的比赛也获得了国内外众多球迷的关注。腾讯云以COS、GooseFS、GooseFSx、元数据加速器、COS加速器等球员组成的球队一路披荆斩棘&#xff0c;成为最闪耀的…

化工集团公司安全风险智能化管控平台

加快数字化发展&#xff0c;大力推进信息化、工业化融合&#xff0c;是国家新时代、新阶段作出的重要决策部署&#xff0c;是化工集团公司打造世界领先企业的必由之路。要充分认识加快数字化发展的重要性紧迫性。要锚定集团公司数字化转型升级的总目标&#xff0c;坚持顶层设计…

Java 开发如何通过 IoT 边缘 ModuleSDK 进行协议转换

操作场景 使用 ModuleSDK 开发插件应用&#xff0c;接入其他协议设备&#xff08;如 HTTP 请求数据&#xff09;&#xff0c;将其他协议的数据转化为 MQTT 协议 JSON 数据上报到 IoTDA。 代码解析 项目结构如下 ModbusDriver 代码解析 片段一 通过 DriverClient.createFromEnv…

[附源码]Nodejs计算机毕业设计基于Web课堂签到管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

web开发框可以为提升办公效率赋能吗?

提升办公效率可以引用专业的web开发框架&#xff0c;值得一提的是&#xff0c;随着数字化时代的到来&#xff0c;要想做好数据管理&#xff0c;低代码开发平台功不可没&#xff0c;在做好数据管理的过程中发挥了重要的应用价值。研发低代码开发平台&#xff0c;流辰信息一直都以…

从BI到ABI,守正创新的思迈特软件持续推进国产BI产业创新

‍‍数据智能产业创新服务媒体——聚焦数智 改变商业近年来&#xff0c;国内外数字化转型加速渗透&#xff0c;企业客户已不再满足“用上”数据&#xff0c;能否“用好”数据、提升管理效率成为企业数字化转型的核心诉求。在提升企业管理效率的工具中&#xff0c;商业智能&…