Hadoop大集群配置文档-大略版-3万字长文 (包罗hive,zookeeper,hbase,flum ...

打印 上一主题 下一主题

主题 539|帖子 539|积分 1617

先填一下前次许诺的坑: (许诺的那篇文章链接如下)

怎样用sql在1分钟从1T数据中精准定位查询?Hive离线数仓 Spark分析-CSDN博客文章浏览阅读1.2k次,点赞38次,收藏14次。在大数据-Hadoop体系中 ,spark批处理和hive离线数仓可以说是对立并行的两个大分支技能栈,,,建议主攻其一,另一个灵活使用就行。他们是2015出如今国内,2017年之后国外各大公司纷纷采用,国内2020采用的,现在属于很前沿,并且很主流,很顶层的技能。(注:19年国内云计算开始起势,大数据的发展与云计算和人工智能等密切相干,更离不开芯片,硬件存储技能等相干支持,它们之间相辅相成
https://blog.csdn.net/qq_61414097/article/details/140999898


               我的许诺有点多,请容我慢慢填坑 “后续的话我会出一期关于大数据所有主流组件搭载在一个集群实验情况的运维配置文档。”此坑暂时弥补嘿嘿 这篇文章就是
 

           先收藏,过几天我会对文章进行精修,

 由于这是我两年前用的,实验集群配置 不过作为参考文档也可有个约数,自己有个对照配置,方便排查一些,组件不兼容的坑。

它其实是.txt文档,所以放在这里有点粗放了哈哈哈,抱歉 

还要整理spark,所以这篇就先到这里吧 ,我先在已经在磕云计算了,再不整理下就忘光了hhh


1 安装VMware和CentOS7系统


CentOS7.9.io镜像下载

建议 阿里云下载cents镜像ios 链接如下 
https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2207-02.iso

VMware安装

win7用 12
win10 用 15
win11用 16.2.4
别问为什么,问就是win和VMware不兼容导致假造机各种奇葩异常,重装集群了 
这已经是我当年实验了20多次得出的结果,最佳兼容性搭配。
安装过程 未完待续。。

1.安装了VMware和CentOS7系统
2.设置了网络,使用Xshell进行连接
网络问题:
3.协助大家远程解决问题的软件:teamViewer、向日葵
--------
/home  2g
/boot 目任命来存放文件内核0.5g
/      根目录15g
/    swap为交换暂时数据目录,最好不要用安装时少分配空间1.5g

/必须掌握的linux命令:
1.文件和目录操纵
cd:切换目录
ls -al :列出所在目录的文件及文件夹
mkdir: 创建文件夹
cat :检察文件
mv:移动文件大概修改名字

tar -zxvf :解压文件,后面经常使用
vi大概vim :编辑文件,后面经常使用

初学者完成 Linux 系统分区及安装之后,需纯熟掌握 Linux 系统管理必备命令,
命令包罗:cd、ls、pwd、clear、chmod、chown、chattr、useradd、userdel、
groupadd、vi、vim、cat、more、less、mv、cp、rm、rmdir、touch、ifconfig、
ip addr、ping、route、echo、wc、expr、bc、ln、head、tail、who、hostname、
top、df、du、netstat、ss、kill、alias、man、tar、zip、unzip、jar、fdisk、
free、uptime、lsof、lsmod、lsattr、dd、date、crontab、ps、find、awk、
sed、grep、sort、uniq 等,
每个命令至少训练 30 遍,逐步掌握每个命令的用法及应用场景;


1.1安装系统后的准备工作inux系统初始情况设置
1)配置服务器的IP地址
    检察机器的网卡名称。
         ip address show。
(2)设置服务器的主机名称
    设置主机名称
        hostnamectl set-hostname master (主机名):修改以后永久生效
        hostname master11  :暂时修改主机名为master111
    检察当前服务器的名称。
        hostname
(3)绑定主机名与IP地址

            检察ip  
       ip addr
    192.168.20.134
       
    修改hosts文件
        vi /etc/hosts
    在此中增加相应内容(下面的内容表示主机名master对应的IP地址为192.168.1.1):
    192.168.20.134 master

(4)
    暂时关闭防火墙
    关闭命令:
         systemctl stop firewalld
    检察防火墙的状态
        systemctl status firewalld 

    我们此时永久关闭防火墙供后续使用,暂时关闭后续轻易无法连接外网
[root@localhost ~]# systemctl  disable  firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    
        检察防火墙的状态
        systemctl status firewalld  
    
    配置 selinux
[root@localhost ~]# getenforce 
Enforcing
[root@localhost ~]# setenforce 0


2.备份原来的yum源
[root@controller ~]# mkdir /etc/yum.repos.d/repobak
[root@controller ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repobak/


3.配置网络yum源
原来的yum源已备份在 /etc/yum.repos.d/repobak

(1)-----这里直接使用 阿里 的 镜像
    新建文件  aliyun.repo
    vi /etc/yum.repos.d/aliyun.repo
    wget -O  /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    生成缓存列表:
    yum makecache

    生成缓存列表:
    yum makecache
    清理缓存 
    yum clean all
    yum repolist
    查抄是否配置成功命令


2.用户操纵(相识)
只是用root登录操纵,不涉及权限和目录所属者大概所属组的修改
useradd :添加用户
passwd :给用户设置密码
chown: 更改文件所属用户大概组
chmod:更改文件权限
su:切换用户
sudo:暂时取得权限

3.系统命令(暂时相识,后面还会用到)
clear:扫除屏幕 ctl l(清屏)
hostname:显示大概主机名(暂时生效)
hostnamectl set-hostname:设置主机名,重启后永久生效
(不可以是中文也不可以是数字一般是设为英文)
ip: 检察ip
systemctl:系统服务的开关,例如关闭防火墙

4.用户和组(相识,能答出来就可以)
    用户分3种范例:
        a,超级用户,UID是0
        b,系统用户,UID是1-999
        c,普通用户,UID从1000开始

    组分2中范例:
        a,系统组,GID是0-999
        b,私有组,GID从1000开始
        默认在创建用户的时间,会创建一个与用户名一样的组

5.文件范例和权限
    文件分4种范例:
        a,普通文件,标识符:-
        b,目录文件,标识符:d
        c,链接文件,硬链接标识符:- 、软链接标识符:l
        d,设备文件,字符设备文件标识符:c、块设备文件标识符:b
    
    文件权限分3种:    可读(r)、可写(w)、可执行(x)
    文件权限表示方法:数字表示、字符赋值
        0:--- 无任何权限
        1:--x 可执行
        2:-w- 可写
        3:-wx 可写可执行
        4:r-- 可读
        5:r-x 可读可执行
        6:rw- 可读可写
        7:rwx 可读可写可执行
=====================================================================
1.系统没安装好、远程连接有问题
2.修改完配置文件profile以后,没有source

2


一、hadoop概述:
1.劈头:Google的分布式文件系统


2.Hadoop生态圈
    HDFS:分布式文件系统,具有高容错性,提供高吞吐率的数据访问,能够有效处理海量数据集。
    YARN:通用资源管理系统,为上层应用提供同一资源管理调度。
    MapReduce是面向大型数据处理的并行计算模子和方法,仅适合离线数据处理。
    
    ZooKeeper:分布式数据管理和协调框架,保证分布式情况中数据的一致性,是Hadoop组件的一个监管系统。
    HBase:基于HDFS的非关系型列式存储数据库,齐保存的数据可使用MapReduce来处理,它将数据存储和并行计算完善地联合在一起。
    Hive:数据仓库技能,用于查询和管理存储在分布式情况下的大数据集,通常用于离线分析。
    
    Sqoop:主要用于传统关系型数据库和Hadoop之间传输数据。
    
    Flume:日志网络系统,对日志数据进行过滤、格式转换等,能够将日志写往各种数据目的。
    
    Kafka:分布式消息系统,它主要用于处理活跃的流式数据。
    
    Spark:计算引擎(框架)。
    
    Mahout:数据挖掘算法库,实现了一些可扩展的机器学习领域经典算法。
    Storm:是一个分布式的、容错的及时处理系统。
    Oozie: 工作流调度引擎,用于协调多个Hadoop作业的执行。
    Azkaban:批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。
    
3.hadoop版本演变(相识)
    1.x 仅包罗HDFS和MapReduce
    2.x 引入了Yarn作为资源管理
    3.x 增加了新的编码、备份、负载均衡机制

4.hadoop运行模式
    3种模式:
        单机模式:无需修改配置文件,不需要启动HDFS和YARN
        伪分布模式:需要修改配置文件,需要启动HDFS和YARN
        完全分布式:分主从节点分别启动HDFS和YARN

5.hadoop的优点:扩容本领强、本钱低、高服从、高可靠
   脑海里一定要有图:HDFS架构图
 
二、hadoop焦点组件(相识)


1.HDFS
    分布式文件系统,数据存储管理的底子,有NameNode和DataNode
    NameNode:HDFS的管理者,负责处理客户端请求、管理DataNode
    SeconderNameNode:用于归并元数据文件FSImage,不是NameNode的备份,会资助恢复NameNode
    DataNode:数据节点,负责存储数据、处理读写请求,定期向NameNode陈诉数据信息和心跳
    FSImage:存储元数据
    edits:日志文件,记载读写操纵等
    
    HDFS的优缺点(相识,根据HDFS的特点大胆推测)
    优点:高可靠、高容错、适合处理海量数据
    缺点:不适合做及时分析、不适合处理小文件、不支持并发写入和文件随机修改

2.MapReduce
    分布式计算模子,将任务分发给多节点并行处理,整合各节点结果后输出最终结果
    
    MapReduce优缺点:
    优点:高容错、易编程、易扩展、适合离线数据处理
    缺点:不适合及时计算、流式计算、有向图计算
    
3.YARN
    资源管理系统,负责资源分配和任务调度,采用的是Master/Slave(主/从)布局。
    组件包罗:
    ResourceManager:资源管理器,负责整个系统的资源管理与分配。由两个组件构成:
(1)调度器(Scheduler):根据资源情况和预先界说的计谋以及应用步伐的资源需求,将系统中的资源分配给各个正在运行的应用步伐。
(2)应用步伐管理器(Applications Manager):负责管理整个系统中所有应用步伐,监控 ApplicationMaster 运行状态并在其失败时重新启动它。

    NodeManager:管理单个节点上的资源。向ResourceManager汇报节点资源使用情况和Container的运行状态。
    负责接收 ResourceManager 的资源分配要求,分配具体的 Container 给应用的某个任务。
    处理来自 ApplicationMaster 的Container启动或克制请求。


    ApplicationMaster:应用步伐的第一个历程,负责监控、管理应用步伐所有任务的运行
        将要处理的数据进行切分
        为启动任务,向ResourceManager申请资源,指示任务所在的NodeManager启动Container。
        监视任务的运行状态,重新启动失败的任务。当任务运行完毕,负责返还资源。

    Container:
    YARN 中动态创建的资源容器,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
-------------------------

 
3、Linux系统情况设置


(1)配置服务器的IP地址
    检察机器的网卡名称。
         ip address show。
(2)设置服务器的主机名称
    设置主机名称
        hostnamectl set-hostname master :修改以后永久生效
        hostname master1  :暂时修改
    检察当前服务器的名称。
        hostname
(3)绑定主机名与IP地址
    编辑本地名字解析文件hosts。
        vi /etc/hosts
    在此中增加相应内容(下面的内容表示主机名master对应的IP地址为192.168.xxx.xxx):
        192.168.229.133  master
(4)检察SSH服务状态
    CentOS 7默认安装SSH服务,检察SSH的状态。
        systemctl status sshd
    关闭防火墙
    关闭命令:
         systemctl stop firewalld
    检察防火墙的状态
        systemctl status firewalld 
        
    ----
    下载上传JDK
        
(5)卸载自带的OpenJDK
    查找:rpm -qa | grep java    
    卸载:rpm -e --nodeps 包名
rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
rpm -e --nodeps tzdata-java-2023c-1.el7.noarch

        
(6)安装JDK
    安装包解压到/opt目录下
        tar -zxvf  ~/jdk-8u231-linux-x64.tar.gz -C /opt
    检察目录确认
        ll /opt    
(7)设置JAVA情况变量
    配置/etc/profile文件vi /etc/profile
        
    在文件的最后增加如下两行:
        export JAVA_HOME=/opt/jdk1.8.0_231
        export PATH=$PATHJAVA_HOOME/bin
    
(8)设置JAVA情况变量
    使设置生效:
        source /etc/profile
    查抄JAVA是否可用。
        echo $JAVA_HOME
        java -version 或javac -version
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/git/bin:/usr/local/src/java/jdk1.8.0_141/bin
export CLASSPATH=/usr/local/src/java/jdk1.8.0_141/lib/

#export JAVA_HOME=/usr/local/java/jdk1.8.0_202
#export CLASSPATH=$:CLASSPATHJAVA_HOME/lib/
#export PATH=$PATHJAVA_HOME/bin
留意如果出现 export PATH=/usr/local/sbin:/usr/local..... 那再写#export JAVA_HOME=/....
#export PAT... 这种会报错 要么全部拆分 要么合写

如果你使用 yum 安装了 OpenJDK 1.8.0_412,并且通过 java -version 命令验证了安装,那么 OpenJDK 的情况变量将会自动配置。
在 CentOS 7 中,OpenJDK 的情况变量 JAVA_HOME 通常位于 /etc/profile.d/jdk.sh 文件中。这个文件会在系统启动时动加载,并设置 JAVA_HOME 和相干情况变量。
打开终端并以管理员身份登录。
检察 /etc/profile.d/jdk.sh 文件:
cat /etc/profile.d/jdk.sh
输出会显示配置的情况变量,此中应该包罗 JAVA_HOME 的界说。
如果你的系统上没有 /etc/profile.d/jdk.sh 文件,那大概是由于你安装的 OpenJDK 版本较新,大概使用了其他方式进行安装。在这种情况下,你可以手动设置 JAVA_HOME 情况变量。
cd  /usr/lib/jvm/ 我的是这个
ls$5
[root@master ~]# ls /usr/lib/jvm
java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
jre
jre-1.8.0
jre-1.8.0-openjdk
jre-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
jre-openjd
 vi /etc/profile
在文件的末尾添加以下行:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export PATH=$PATHJAVA_HOME/bin 
这是我的
验证 Java -version 
java 
echo $JAVA_HOME

例如,可以编辑 /etc/profile 文件,并在此中添加以下行:
export JAVA_HOME=/usr/lib/jvm/java-x.x.x
export PATH=$PATHJAVA_HOME/binecho $JAVA_HOME
确保将 java-x.x.x 更换为你现实的 Java 安装路径。
保存并关闭文件。然后运行以下命令使情况变量生效:
source /etc/profile
-------------
安装hadoop
下载hadoop    并上传

(9)安装Hadoop软件
    将安装包解压到/usr/local/src/目录下
        tar -zxvf ~/hadoop-2.7.1.tar.gz -C /usr/local/src/
    检察目录确认。
        ll /usr/local/src/
(10)配置Hadoop情况变量
    修改/etc/profile文件。
        vi /etc/profile
    在文件的最后增加两行:
        export HADOOP_HOME=/usr/local/src/hadoop-2.7.1
        export PATH=$PATHHADOOP_HOME/binHADOOP_HOME/sbin
(11)配置Hadoop情况变量
    使设置生效:
        source /etc/profile
    查抄设置是否生效:
        hadoop        
--------
单机版hadoop

(12)进入Hadoop目录
        cd /usr/local/src/hadoop-2.7.1/
    配置hadoop-env.sh文件
    配置命令
        vi etc/hadoop/hadoop-env.sh
    在文件中查找export JAVA_HOME这行,改为如下所示内容。
        export JAVA_HOME=/usr/local/src/jdk1.8.0_231
(13)创建输入数据存放目录
    将输入数据存放在~/input目录(root用户主目录下的input目录中)。
        mkdir ~/input
(14)创建数据输入文件
    创建数据文件data.txt,将要测试的数据内容输入到data.txt文件中。
        vi ~/input/data.txt
    输入如下内容,保存退出。
        Hello World
        Hello Hadoop
        Hello Huasan    
(15)测试MapReduce运行
    运行WordCount官方案例,命令如下:
        hadoop jar /usr/local/src/hadoop-2.7.1/share/hadoop/mapreduce /hadoop-mapreduce-examples-2.7.1.jar         wordcount ~/input/data.txt ~/output
    检察运行结果: 
        ll ~/output
    处理的结果存放在part-r-00000文件中,检察该文件:
        cat ~/output/part-r-00000
=====================================================

 
4免密登录


实验情况下Hadoop集群
        3个节点:
            master:
            slaver1:
            slaver2:
        
SSH无密码登录
        SSH:安全网络协议,开源实现、商业实现。 
            连接的客户端:putty、SecureCRT、XShell
            守护历程sshd,监听端标语:22
            两个验证:主机验证:需要输入server的IP;用户验证:需要输入用户名密码
            验证机制:密码验证机制、公钥认证机制
            验证机制:基于口令的安全验证、基于秘钥的安全验证
        
        非对称加密:
            通过公钥、私钥进行加密、解密。岂论是公钥加密大概私钥加密的数据,都能用对应的私钥大概公钥解密
            公钥放服务器端、私钥放本机
            
        SSH安全机制验证过程:
            1.创建一个密钥对,id_rsa(私钥)、id_rsa.pub(公钥),公钥放到服务器(目的机)上
            2.将公钥的内容追加到目的机的授权文件中
            

任务:
    1.确保master主机,软件包全部上传到/opt/software下,jdk、hadoop已解压安装到了/usr/local/src下,且情况变量JAVA_HOME、HADOOP_HOME已配置(主机名、IP地址和主机名映射、防火墙关闭)java、hadoop命令都能识别
    2.克隆master主机,克隆2台,名字分别为slaver1、slaver2
    3.开启3台假造机、使用Xshell进行连接
    4.更改slaver1主机名、ip地址和主机名的映射关系、更改slaver2主机名、3台主机ip地址和主机名的映射关系
    
    使用ssh-keygen命令时,第一次回车、第二次输入y后,回车、第三第四次都回车,秘钥对就生成好了,3台主机都需要执行

        
配置免密登录(master到slaver1、slaver2;slaver1、slaver2到master)
    1.条件:有3个节点,每个节点都安装了JDK、Hadoop单机版、主机名、主机名和IP映射都配置好、情况变量JAVA_HOME、HADOOP_HOME已配置(主机名、IP地址和主机名映射、防火墙关闭)java、hadoop命令都能识别
    
    配置本主机免密登录步骤:
        1.在本主机使用ssh-keygen -t rsa -P ''生成密钥对
                   .将id_rsa.pub的内容追加本机的授权文件authorized_key中
        
    配置master到slaver1、slaver2免密登录:
        1.在3个节点上都使用ssh-keygen -t rsa -P ''生成密钥对
        2.将master的公钥id_rsa.pub的内容追加slaver1的授权文件authorized_key中

    配置slaver1、slaver2到master免密登录
        1.在3个节点上都使用ssh-keygen -t rsa -P ''生成密钥对
        2.将slaver2的公钥id_rsa.pub的内容追加master的授权文件authorized_key中

ssh-keygen -t rsa -P ''
 ssh-keygen -t rsa -P ''
 ssh-keygen -t rsa -P ''
cd ~/.ssh/ = cd /root/.ssh/
  ls
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys    

#slave1
[hadoop@slave1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@slave1 .ssh]$ ls ~/.ssh/
#slave2
[hadoop@slave2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@slave2 .ssh]$ ls ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys    
chmod 600 ~/.ssh/authorized_keys

修改 SSH 配置文件"/etc/ssh/sshd_conchmod 600 ~/.ssh/authorized_keysfig"的下列内容
#master
[hadoop@master .ssh]$ su - root
[root@master ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
#slave1
[hadoop@slave1 .ssh]$ su - root
[root@slave1 ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
#slave2
[hadoop@slave2 .ssh]$ su - root
[root@slave2 ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
设置完后需要重启 SSH 服务,才能使配置生效。
 systemctl restart sshd
systemctl restart sshd
systemctl restart sshd
master
scp ~/.ssh/id_rsa.pub master@slave1:~/
 scp ~/.ssh/id_rsa.pub hadoop@slave2:~/
 cat ~/id_rsa.pub >>~/.ssh/authorized_keys
slave1
scp ~/.ssh/id_rsa.pub slave1@master:~/
scp ~/.ssh/id_rsa.pub slave1@slave2:~/
 cat ~/id_rsa.pub >>~/.sh/authorized_keys
slave2
scp ~/.ssh/id_rsa.pub slave2@slave1:~/
scp ~/.ssh/id_rsa.pub slave2@master:~/
 cat ~/id_rsa.pub >>~/.ssh/authorized_keys

rm -f ~/id_rsa.pub
rm -f ~/id_rsa.pub
rm -f ~/id_rsa.pub
看 检察 3个 节点 authorized_keys 文件
cat ~/.ssh/authorized_keys
    ####简单的方法:

su - root
[root@master ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
        
1.知道服务器密码的情况
#免密码登录被控的主机(ip是被控的,之后输入yes,还会让你输入被控的密码)
一定要修改hosts,三个均改,
若四台则四台每个都改且 每个/etc/hosts 中添加四个IP主机名

vim /etc/hosts 
192.168.28.145 root
192.168.28.144 slave1
192.168.28.143 slave2
cd /root/.ssh/ 
ssh-keygen -t rsa

#上面的命令后三次回车
  


留意:cd /root/.ssh/   rm -rf known_hosts
在/root/.ssh/ 里面只是保留authorized_keys  id_rsa  id_rsa.pub两个文件别的删完否则会配失败

#然后把想要免密登录的服务器加进来
ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave12
 


cd /root/.ssh/ 
2.不知道服务器密码的情况
#例子:pub能免密登录pri(就是pri是被控的主机)
ssh-keygen -t rsa(两台都操纵)
#上面的命令后三次回车
 #pub中
 cd /root/.ssh/
#(复制id_rsa.pub里的
 
Pri中
 
cd /root/.ssh/
vim authorized_keys    #这个文件是自己写的,内容是pub的id_rsa.pub里的
 
#在pub执行下面的
ssh-copy-id -i /root/.ssh/id_rsa.pub root@pri的ip
#输入yes就可以了
#如果不是22端口,就在后面加上 (-p 端口)
ssh-copy-id -i /root/.ssh/id_rsa.pub root@pri的ip -p 端口

 

5.hadoop集群运行


1.免密登录
2.Hadoop的配置文件:4个
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
/usr/loacal/src/hadoop-2.7.6/etc/hadoop

记住2个路径:
软件包位置:
    /opt/software/
软件安装路径:
    /usr/loacal/src/

3.配置文件:
    xml有规则:
        a,在<configuration></configuration>标签中配置
        b,<property></property>标签中配置具体的name、value
        c,<name>参数名</name>,参数名不能任意写
        d,<value>参数值</value>
<property>
    <name>参数名</name>
    <value>参数值</value>
</property>
        
4.怎样修改配置文件
    a,<name>参数名</name>参数名是固定的写法,不能瞎造,具体名字参看官网
    b,<value>参数值</value>标签中的值是我们可修改的,主要是主机名大概IP、端标语、整数值、hadoop运行产生的文件存放路径
    c,<!-- -->是xml中的解释内容

5.怎样启动伪分布式?
    a,按照实验文档4完成相应的配置后,在master上执行格式化命令:hdfs namenode -format
    b,格式化完毕,分别启动nameNode、seconderyNamenode、dataNode、yarn,启动命令从start开始都要手动敲,不能堕落
                    hadoop-daemon.sh start namenode
                    hadoop-daemon.sh start secondarynamenode
                    hadoop-daemon.sh start datanode
                    start-yarn.sh
                    hadoop-daemon.sh stop namenode
                    hadoop-daemon.sh stop secondarynamenode
                    hadoop-daemon.sh stop datanode
                    stop-yarn.sh
6.验证伪分布式
    在master上执行历程查询命令:jps
        出现一下历程就算成功:
                                [root@master hadoop]# jps
                                    2576 ResourceManager##
                                    2418 SecondaryNameNode##
                                    2245 DataNode##
                                    2103 NameNode##
                                    2711 NodeManager##
                                    3421 Jps
至此,master主机的伪分布式已完成

7.全分布式就是伪分布式的复制,但是需要修改2个配置文件
    a,在master上,找到hadoop安装路径下的etc下hadoop文件夹,配置masters和slavers
    b,将master的hadoop安装文件夹,远程拷贝到slaver1、slaver2上
        scp -r /usr/loacal/src/hadoop-2.7.6/ root@slaver1:/usr/loacal/src/hadoop-2.7.6/
        scp -r /usr/loacal/src/hadoop-2.7.6/ root@slaver2:/usr/loacal/src/hadoop-2.7.6/
    c,在master启动集群:start-all.sh,大概分别启动namenode、secondarynamenode、datanode、yarn

8.hadoop启动只有单节点
    缘故原由有很多,一般情况:
        a,master节点上,主机名为localhost的缘故原由
        b,复制过去的usr/loacal/src/hadoop/dfs/data下有一个VERSION,删除这个文件,大概清空data
        c,重新格式化
        d,查抄主机名、主机名与IP的映射关系、防火墙是否关闭
9.检察集群状态
    a,HDFS集群状态:master:50070
    b,secondaryNamenode状态:master:50090
    c,map-reduce运行web界面:master:8088

10.分布式文件系统命令行
    和linux命令一致,不过是多了hdfs dfs的前缀
    上传linux文件到hdfs系统中:hdfs dfs -put
    在hdfs系统中创建文件夹: hdfs dfs -mkdir
    在hdfs系统中检察文件:hdfs dfs -cat

11.运行wordcount例子
        如今linux的root目录下创建data.txt文件,内容为实验文档要求的内容
        在hdfs上创建文件夹:hdfs dfs -mkdir /input
        上传root目录下创建data.txt文件到hdfs系统上,hdfs dfs -put /root/data.txt /input/
        运行wordcount例子,要求在hdfs系统上没有output文件夹,如果有就删掉:
            hadoop jar hadoop安装目录的example wordcount /input/data.txt /output

 
6.Hive组件安装配置


1.Hive是什么?
 


Hive是基于Hadoop的数据仓库工具,可以用来对HDFS中存储的数据进行查询和分析。Hive能够将HDFS上布局化的数据文件映射为数据库表,并提供SQL查询功能,将SQL语句变化成MapReduce任务来执行。
Hive对存储在HDFS中的数据进行分析和管理,它可以将布局化的数据文件映射为一张数据库表,通过SQL查询分析需要的内容,查询Hive使用的SQL语句简称Hive SQL(HQL)。
Hive通过简单的SQL语句实现快速调用MapReduce机制进行数据统计分析,因此不必专门开发MapReduce应用步伐即可实现大数据分析。
Hive是基于Hadoop的一个数据仓库工具,可以将布局化的数据文件映射为一张数据库表,并提供类SQL查询功能。
2.Hive的优缺点
    优点:简单轻易上手、可扩展性强、元数据管理、容错性强、延展性强、热扩容
    缺点:HQL表达本领有限、服从较低、调优困难、计算过程可控性差

3.hive构造架构
a,hive与hadoop的关系
Hive构建在Hadoop之上,HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的。Hive读取的所有数据都是存储在Hadoop文件系统中。Hive查询计划被转化为MapReduce任务,在Hadoop中执行。

b,hive与数据库的关系
hive支持了绝大多数的语句(如DDL、DML)以及常见的聚合函数、连接查询、条件查询等操纵。
具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析
Hive不适合用于联机(online)事务处理,也不提供及时查询功能。它最适合应用在基于大量不可变数据的批处理作业。


1.5    Hive的数据存储
1、Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)
2、只需要在创建表的时间告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。
3、Hive 中包罗以下数据模子:DB、Table,External Table,Partition,Bucket。
    db:在hdfs中体现为${hive.metastore.warehouse.dir}目录下一个文件夹
    table:在hdfs中体现所属db目录下一个文件夹
    external table:外部表, 与table类似,不过其数据存放位置可以在任意指定路径
普通表: 删除表后, hdfs上的文件都删了
External外部表删除后, hdfs上的文件没有删除, 只是把文件删除了
    partition:在hdfs中体现为table目录下的子目录
    bucket:桶, 在hdfs中体现为同一个表目录下根据hash散列之后的多个文件, 会根据不同的文件把数据放到不同的文件中 

1.6 mysql安装
  


 # 关闭防火墙服务
    [root@master ~]# systemctl stop firewalld
    # 设置防火墙服务开机不启动
    [root@master ~]# systemctl disable firewalld 

    1.检察之前是否安装过mysql,3个节点都要执行
        #卸载自带情况
        # 查询已安装的 mariadb 软件包
        [root@master software]# rpm -qa |grep mariadb
            mariadb-libs-5.5.68-1.el7.x86_64
        # 卸载 mariadb 软件包
        [root@master software]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64    
        
        #查询并卸载系统老版本的Mysql
        [root@master ~]# rpm -qa |grep mysql
        如果有,就卸载掉
        rpm -e --nodeps 文件名
        
    2.安装libaio依靠情况。

        输入指令:rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
    3.安装net-tools依靠情况。
        输入指令:rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
    
    4.安装mysql服务
        依次输入指令:

        rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
        rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
        rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
        rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm --nodeps --force
        将以下配置信息添加到/etc/my.cnf文件symbolic-links=0配置信息的下方。
            default-storage-engine=innodb
            innodb_file_per_table
            collation-server=utf8_general_ci
            init-connect='SET NAMES utf8'
            character-set-server=utf8

    5.启动mysql服务
        输入命令:systemctl start mysqld
        检察mysql服务是否启动/查询 MySQL 数据库状态  service mysqld status
         mysqld 历程状态为 active (running),则表示 MySQL 数据库正常运行。
     如果 mysqld 历程状态为 failed,则表示 MySQL 数据库启动异常。此时需要排查 /etc/my.cnf 文件。

        [root@master software]# service mysqld status
                Redirecting to /bin/systemctl status mysqld.service
                ● mysqld.service - MySQL Server
                   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
                   Active: active (running) since 二 2022-10-25 15:26:49 CST; 15s ago
                     Docs: man:mysqld(8)
                           http://dev.mysql.com/doc/refman/en/using-systemd.html
                  Process: 40033 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
                  Process: 39975 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
    6.重置mysql密码
        检察mysql安装时随机生成的密码。

        输入指令:grep 'temporary password' /var/log/mysqld.log
            大概:cat /var/log/mysqld.log | grep 'temporary password'
        
        执行mysql_secure_installation命令初始化MySQL数据库
        
        [root@master ~]# mysql_secure_installation
        Securing the MySQL server deployment.
root@localhost: JYgT+Nl)C56=
        
        先输入查到的暂时密码
        输入新密码assword123$
        # 再次输入新密码 Password123$
# 输入 y
# 输入 y
# 输入 n
# 输入 y
# 输入 y
# 添加 root 用户从本地和远程访问 MySQL 数据库表单的授权。
[root@master ~]# mysql -uroot -p    
# 输入新设定的密码 Password123$
mysql> grant all privileges on *.* to root@'localhost'identified by 'Password123$';  # 添加 root 用户本地访问授权

mysql> grant all privileges on *.* to root@'%' identified by'Password123$'; # 添加 root 用户远程访问授权    
mysql> flush privileges;  # 刷新授权
mysql> select user,host from mysql.user where user='root'; # 查询 root 用户授权情况
mysql> exit; # 退出 MySQL 数据库

  #  DBPassword=Zabbix@2024
按照实验步骤设置对应的

    7.解压hive
        [root@master ~]# tar -zxvf /opt/software/apache-hive-2.0.0-bin.tar.gz -C /usr/local/src
        
        将解压后的apache-hive-2.0.0-bin文件夹更名为hive;
        [root@master ~]# mv /usr/local/src/apache-hive-2.0.0-bin usr/local/src/hive
    8.修改情况变量,并使其生效
    [root@master ~]# vim /etc/profile        # 在文件末尾追加以下配置内容
        # set hive environment
        export HIVE_HOME=/usr/local/src/hive
        export PATH=$PATHHIVE_HOME/bin
    
    [root@master ~]source /etc/profile  #使情况变量生效
    
    9.修改hive的配置文件
        将/usr/local/src/hive文件夹下hive-default.xml.template文件,更名为hive-site.xml。
        [root@master ~]$ cp /usr/local/src/hive/conf/hive-default.xml.template /usr/local/src/hive/conf/hive-site.xml
   
    通过 vi 编辑器修改 hive-site.xml 文件实现 Hive 连接 MySQL 数据库,并设定Hive 暂时文件存储路径。


7  怎样在vim下进行快速查找?
 


若要向下滚动屏幕,请使用 CTRL + Y ,向上滚动,请使用 CTRL + E
Linux中使用vim指令进行文档编辑时,偶然想快速找到某一行号或某一个关键字,操纵如下:
1、查找n(n是数字)行的方式,打开文档后连续按n、shift+g可以快速定位的n行。
2、查找关键字,打开文档按“/”,然后输入要查找的内容(会在终端的左下方显示输入内容),最后按回车键可以敏捷找到指定内容。
使用:u可以进入上一步。
留意要esc在命令状态下。

1、暂时显示行号
只须按ESC键退出编辑内容模式,输入“:” ,再输入“set number”大概“set nu”后按回车键,就可以显示行号。
行号显示只是暂时的。退出vim后再次打开vim就不显示行号了。
取消显示行号:输入“:set nonu”

2、永久显示行号
需要修改vim配置文件vimrc。
在默认情况下,用户宿主目录(~)中是没有此文件的,需要在当前用户的宿主目录中手工建立,纵然用下面的命令:
vim ~/.vimrc ,在打开的vimrc文件中最后一行输入:set number 大概 set nu,然后保存退出。
再次用vim打开文件时,就会显示行号

1、vim中用大写的字母G命令跳到文件尾。G命令可以跳到相应的行,默认缺省状态是跳转到最后一行即文件尾。
2、vim中使用小写的字母gg(按两次)命令跳到文件头。gg命令可以跳到相应的行,默认缺省状态是跳转到第一行即文件头。
    [hadoop@master ~]$ vim /usr/local/src/hive/conf/hive-site.xml
    设置 MySQL 数据库连接
    配置 MySQL 数据库 root 的密码。(需要看hive.txt文件)
    验证元数据存储版本一致性。若默认 false,则不用修改。
    验证元数据存储版本一致性。若默认 false,则不用修改
    配置数据库驱动
    配置数据库用户名 javax.jdo.option.ConnectionUserName 为 root。
    将 以 下 位 置 的 ${system:java.io.tmpdir}/${system:user.name} 替 换 为
    “/usr/local/src/hive/tmp”目录及其子目录。 需要更换以下 4 .5 处配 置


    10.在Hive安装目录中创建暂时文件夹tmp。
        [root@master ~]$ mkdir /usr/local/src/hive/tmp
至此,Hive 组件安装和配置完成

    11.初始化hive
    1)将MySQL数据库驱动文件/opt/software/mysql-connector-java-5.1.47.jar
        拷贝到Hive安装目录的/usr/local/src/hive/lib目录下。
        [root@master ~]# cp /opt/software/mysql-connector-java-5.1.47.jar /usr/local/src/hive/lib
    (2)删除/usr/local/src/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar
        文件,若未删除该文件会导致Hive元数据初始化失败。(我们的安装包中已经给大家删除过了)
        [root@master ~]$ rm -f /usr/local/src/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar


    (3)启动Hadoop相干历程。
        [root@master ~]$ start-all.sh
    12.使用schematool升级元数据,将Hive的元数据重新写入MySQL数据库中。
        [root@master ~]$ schematool -initSchema -dbType mysql
        Metastore connection URL:        jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false
        Metastore Connection Driver :    com.mysql.jdbc.Driver
        Metastore connection User:       root
        Starting metastore schema initialization to 2.0.0
        Initialization script hive-schema-2.0.0.mysql.sql
        Initialization script completed
        schemaTool completed
        以上命令结果显示schemaTool completed,则表示Hive元数据写入MySQL数据库成功。

    13.启动hive
    (1)在系统的任意目录下,执行hive命令即可启动Hive组件。
        [root@master ~]$ hive

        
    如果初始化失败,查抄mysql数据库中有没有hive这样一个数据库,如果有,把他删掉,然后重新初始化
 

8. zookeeper组件的安装与配置



1.zookeeper是什么?
Zookeeper是一个分布式协调服务;就是为用户的分布式应用步伐提供协调服务
    A、zookeeper是为别的分布式步伐服务的
    B、Zookeeper本身就是一个分布式步伐(只要有半数以上节点存活,zk就能正常服务)
    C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、同一配置管理、分布式共享锁、同一名称服务……
    D、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:
        管理(存储,读取)用户步伐提交的数据;
        并为用户步伐提供数据节点监听服务;

2.zookeeper的特点
    (1)顺序一致性:从同一客户端发起的事务请求,最终将会严酷地按照顺序被应用到ZooKeeper中去。
    (2)原子性:所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,要么整个集群中所有的机器都成功应用了某一个事务,要么都没有应用。
    (3)单一系统映像:无论客户端连到哪一个ZooKeeper服务器上,其看到的服务端数据模子都是一致的。
    (4)可靠性:一旦一次更改请求被应用,更改的结果就会被长期化,直到被下一次更改覆盖。

3.zookeeper的角色和工作机制
在ZooKeeper中没有选择传统的Master/Slave概念,而是引入了leader、follower和observer三种角色。ZooKeeper集群中的所有机器通过一个leader选举过程来选定一台称为“leader”的机器,leader既可以为客户端提供写服务又能提供读服务。
除了leader外,follower和observer都只能提供读服务。follower和observer唯一的区别在于observer机器不参与leader的选举过程,也不参与写操纵的“过半写成功”计谋,

Leader是通过内部的选举机制暂时产生的
以一个简单的例子来说明整个选举的过程.
假设有五台服务器组成的zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的.假设这些服务器依序启动,来看看会发生什么.
1) 服务器1启动,此时只有它一台服务器启动了,它发出去的报没有任何响应,所以它的选举状态不停是LOOKING状态
2) 服务器2启动,它与最开始启动的服务器1进行通讯,互相交换自己的选举结果,由于两者都没有历史数据,所以id值较大的服务器2胜出,但是由于没有达到超过半数以上的服务器都同意选举它(这个例子中的半数以上是3),所以服务器1,2还是继承保持LOOKING状态.
3) 服务器3启动,根据前面的理论分析,服务器3成为服务器1,2,3中的老大,而与上面不同的是,此时有三台服务器选举了它,所以它成为了这次选举的leader.
4) 服务器4启动,根据前面的分析,理论上服务器4应该是服务器1,2,3,4中最大的,但是由于前面已经有半数以上的服务器选举了服务器3,所以它只能接收当小弟的命了.
5) 服务器5启动,同4一样,当小弟.

4.zookeeper集群搭建
在master节点上:
(1)ZooKeeper的安装包zookeeper-3.4.8.tar.gz已放置在Linux系统/opt/software目录下。
(2)解压安装包到指定目的,在Master节点执行如下命令。
[root@master software]# tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/src/
[root@master src]# mv zookeeper-3.4.5 zookeeper
(3)在 ZooKeeper 的安装目录下创建 data 和 logs 文件夹。
[root@master ~]# cd /usr/local/src/zookeeper
[root@master zookeeper]# mkdir data && mkdir logs
(4)将编号写入myid文件内
[root@master zookeeper]# echo 1 > data/myid
(5)修改配置文件
[root@master zookeeper]# cp conf/zoo_sample.cfg conf/zoo.cfg
[root@master zookeeper]# vi /usr/local/src/zookeeper/conf/zoo.cfg
修改内容:
dataDir=/usr/local/src/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
在zoo.cfg文件末尾加上:
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
(6)从master节点将zookeeper拷贝到slaver1、slaver2上
[root@master ~] # scp -r /usr/local/src/zookeeper root@slave1:/usr/local/src/
在slaver1上修改/usr/local/src/zookeeper/data/myid,将里面数字改成2
[root@slaver1 ~]vim /usr/local/src/zookeeper/data/myid
[root@master ~] # scp -r /usr/local/src/zookeeper root@slave2:/usr/local/src/
在slaver2上修改/usr/local/src/zookeeper/data/myid,将里面数字改成3
[root@slaver2 ~]vim /usr/local/src/zookeeper/data/myid
(7)master上修改情况变量
[root@master ~]vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/src/zookeeper
# ZooKeeper 可执行步伐目录
export PATH=$PATHZOOKEEPER_HOME/bin
(8)把master的/etc/profile拷贝到slaver1,slaver2上
scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile
分别在每个节点上,执行命令:source /etc/profile,让情况变量生效
(9)在每个节点上启动zookeeper
[root@master ~] zkServer.sh start
[root@slave1 ~] zkServer.sh start
[root@slave2 ~] zkServer.sh start
(10)检察zookeeper运行状态
在每个节点执行命令:
[root@master ~]$ zkServer.sh status
[root@slave1 ~]$ zkServer.sh status
[root@slave2 ~]$ zkServer.sh status


9. HBASE组件的安装与配置




1.什么是HBASE?
HBase是一个依靠zookeeper的高可靠的列式存储的非关系型数据库

2.HBase主要特性
    面向列计划:面向列表(簇)的存储和权限控制,列(簇)独立检索。
    支持多版本:每个单位中的数据可以有多个版本,默认情况下,版本号可自动分配,版本号就是单位格插入时的时间戳。
    希罕性:为空的列不占用存储空间,表可以计划得非常希罕。
    高可靠性:WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失,Replication机制保证了在集群出现严重的问题时,数据不会发生丢失或损坏。
    高性能:底层的据布局和Rowkey有序排列等架构上的独特计划,使得HBase具有非常高的写入性能。通过科学性地计划RowKey可让数据进行合理的Region切分,主键索引和缓存机制使得HBase在海量数据下具备高速的随机读取性能。
3.HBase(NoSQL)与RDBMS的区别
    1.数据范例:Hbase只有简单的数据范例,只保留字符串;传统数据库有丰富的数据范例。
    2.数据操纵:Hbase只有简单的插入、查询、删除、清空等操纵,表和表之间是分离的,没有复杂的表和表之间的关系;传统数据库通常有各式各样的函数和连接操纵。
    3.存储模式:Hbase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的,这样的利益是数据即是索引,访问查询涉及的列大量低落系统的I/O,并且每一列由一个线索来处理,可以实现查询的并发处理;传统数据库是基于表格布局和行存储,其没有建立索引将泯灭大量的I/O并且建立索引和物化试图需要泯灭大量的时间和资源。
    4.数据维护:Hbase的更新现实上是插入了新的数据;传统数据库只是更换和修改。
    5.可伸缩性:Hbase可以轻松的增加或减少硬件的数量,并且对错误的兼容性比较高;传统数据库需要增加中间层才能实现这样的功能。
    6.事务:Hbase只可以实现单行的事务性,意味着行与行之间、表与表之前不必满足事务性;传统数据库是可以实现跨行的事务性。

4.HBASE架构
HBase的架构是依托于Hadoop的HDFS作为最根本存储底子单位,在HBase的集群中由一个Master主节点管理多个RegionServer,而ZooKeeper进行协调操纵。
(1)HMaster
HMaster用于启动任务管理多个HRegionServer,侦测各个HRegionServer之间的状态,当一个新的HRegionServer登录到HMaster时,HMaster会告诉它等候分配数据。而当某个HRegionServer死机时,HMaster会把它负责的所有HRegion标记为未分配,并恢复HRegionServer的故障。
(2)HRegionServer
HBase中的所有数据从底层来说一般都是保存在HDFS中的,用户通过一系列HRegionServer获取这些数据。HRegionServer主要负责响应用户I/O请求,向HDFS文件系统读写数据,是HBase中最焦点的模块。
(3)ZooKeeper
Apache ZooKeeper劈头于Hadoop的分布式协同服务,是负责协调集群中的分布式组件,经过多年的发展ZooKeeper已经成为了分布式大数据框架中容错性的尺度框架,被多个分布式开源框架所应用。

5.一个图,相识列式存储和HBASE读写过程
6.HBASE安装与配置
    1.解压缩 HBase 安装包
[root@master ~]# tar -zxvf /opt/software/hbase-1.2.1-bin.tar.gz -C  /usr/local/src/
    2.重命名 HBase 安装文件夹、设置情况变量
[root@master ~]# cd /usr/local/src/ 
[rootp@master src]#mv hbase-1.2.1 hbase
    在所有节点添加情况变量
[root@master ~]# vim /etc/profile
# set hbase environment
export HBASE_HOME=/usr/local/src/hbase
export PATH=$HBASE_HOME/binPATH
    在所有节点使情况变量生效
[rootmaster ~]# source /etc/profile
将master节点的/etc/profile文件远程拷贝到slaver1、slaver2上
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile
    3.修改配置文件hbase-env.sh
    [root@master ~]# cd /usr/local/src/hbase/conf/      (找自己hadoop软件的安装路径)
    [root @master conf]# vim hbase-env.sh 
    #Java 安装位置
    export JAVA_HOME=/usr/local/src/jdk1.8.0_181        ( 找自己hadoop软件的jdk安装路径)
    #值为 true 使用 HBase 自带的 ZooKeeper,值为 false 使用在 Hadoop 上装的 ZooKeeper
    export HBASE_MANAGES_ZK=false 
    #HBase 类路径
    export HBASE_CLASSPATH=/usr/local/src/hadoop/etc/hadoop/  
                 (找自己hadoop软件的安装路径)

    4.修改配置文件hbase-site.xml
    按照实验文档上的添加即可
    vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<description>The directory shared by region servers.</description>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
<description>使用 master 节点 60010 端口
</description>
</property>

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>roperty from ZooKeeper's config zoo.cfg. The port at
which the clients will connect.使用 master 节点 2181 端口
</description>
</property>

<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
<description>ZooKeeper 超时时间
</description>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
<description>ZooKeeper 管理节点
</description>

<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/src/hbase/tmp</value>
<description>HBase 暂时文件路径
</description>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>使用分布式 HBase
</description>
</property>
</configuration>


    5.在 master  节点修改 regionservers  文件
    #删除 localhost,每一行写一个 slave 节点主机机器名
    [root @master conf]$ vim regionservers 
        slave1
        slave2
    
    6.在 master 节点创建 hbase.tmp.dir 目录
    [root @master usr]# mkdir /usr/local/src/hbase/tmp
    7.将 master 上的 hbase 安装文件同步到 slave1 slaver2
    [root @master ~]# scp -r /usr/local/src/hbase/ root@slave1:/usr/local/src/
    [root @master ~]# scp -r /usr/local/src/hbase/ root@slave2:/usr/local/src/
    8.启动hbase
        先在master上把hadoop启动起来,然后在每个节点上启动zookeeper
        最后在master上执行命令:start-hbase.sh启动hbase
        在浏览器输入master:60010看hbase的web监控界面
在 master 节点启动 Hadoop
    start-dfs.sh
    start-yarn.sh
[root@master ~]# jps
5220 ResourceManager
5687 Jps
4473 NameNode
4937 SecondaryNameNode
5338 NodeManager(由于每个人配的不一样所以后两个历程也大概没有,有前四个历程即启动成功)
4638 DataNode
[root@slave1 ~]# jps
4963 Jps
4745 NodeManager
4525 DataNode
[root@slave2 ~]# jps
4739 Jps
4309 DataNode
4510 NodeManager

在所有节点启动 ZooKeeper
master节点,slave1,2节点均出现 QuorumPeerMain历程即启动成功
zkServer.sh start

jps
在 master  节点启动 HBase
master节点出现HMaster历程,slave1,2节点均出现HRegionServer历程即启动成功

start-hbase.sh
jps

在master节点stop-hbase.sh
在所有节点    zkServer.sh stop
在master节点    
    stop-yarn.sh
    stop-dfs.sh



10. Flume 

tar zxvf /opt/software/apache-flume-1.7.0-bin.tar.gz -C /usr/local/
[root@master ~]# cd /usr/local/
[root@master local]# mv apache-flume-1.7.0-bin/ flume# 修改Flume安装路径文件夹

[root@master local]# chown -R root:root flume/#  修改文件夹flume/归属用户和归属组为root 用户和 root组
使用 root  用户设置 Flume 

[root@master local]# vim /etc/profile # 编辑系统情况变量配置文件

# set flume environment
export FLUME_HOME=/usr/local/src/flume # Flume 安装路径
export PATH=$PATH:$FLUME_HOME/bin  # 添加系统 PATH 情况变量
source /etc/profile
:修改 Flume  相应配置文件。
cd /usr/local/src/flume/conf

拷贝 flume-env.sh.template 文件并重命名为 flume-env.sh。
[hadoop@master ~]$cp flume-env.sh.template flume-env.sh

步骤三:修改并配置 flume-env.sh  文件。删除 JAVA_HOME 变量前的解释,修改为 JDK 的安装路径。
[hadoop@master ~]$ vi /usr/local/src/flume/conf/flume-env.sh
# 修改 JAVA_HOME 参数值为 jdk 安装路径
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
使用 flume-ng version 命令验证安装是否成功,若能够正常查询 Flume 组件版本为
1.6.0,则表示安装成功。

若输入 : flume-ng version 报错
错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty
Flume 1.7.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 511d868555dd4d16e6ce4fedc72c2d1454546707
Compiled by bessbd on Wed Oct 12 20:51:10 CEST 2016
From source with checksum 0d21b3ffdc55a07e1d08875872c00523
解决办法

[root@master bin]# cd /usr/local/flume//bin/
[root@master bin]# vim flume-ng

在75行
java.library.path后面 括号里添加
 
2>/dev/null | grep hadoop
在110行
java.library.path后面 括号里添加
 
2>/dev/null | grep hbase

[root@master bin]# flume-ng version
Flume 1.7.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 511d868555dd4d16e6ce4fedc72c2d1454546707
Compiled by bessbd on Wed Oct 12 20:51:10 CEST 2016
From source with checksum 0d21b3ffdc55a07e1d08875872c00523
安装成功


    
    
   
注:该文档是我两年前参考了很多相干官方技能文档,其时一边配一边写的,按命令配完戈组件均可运行 其时配了3遍流程,按流程走完,直接立马运行。
    
    
    
    
    
    
    
    
    
    
    
    
    

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表