营销型企业网站建设策划,建网站排名,现在装宽带多少钱,沙坪坝网站建设先填一下上次许诺的坑#xff1a; #xff08;许诺的那篇文章链接如下#xff09;
如何用sql在1分钟从1T数据中精准定位查询#xff1f;Hive离线数仓 Spark分析-CSDN博客文章浏览阅读1.2k次#xff0c;点赞38次#xff0c;收藏14次。在大数据-Hadoop体系中 #xff0c;…先填一下上次许诺的坑 许诺的那篇文章链接如下
如何用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 我们此时永久关闭防火墙供后续使用临时关闭后续容易无法连接外网
[rootlocalhost ~]# 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 [rootlocalhost ~]# getenforce Enforcing [rootlocalhost ~]# setenforce 0
2.备份原来的yum源 [rootcontroller ~]# mkdir /etc/yum.repos.d/repobak [rootcontroller ~]# 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 可写可执行 4r-- 可读 5r-x 可读可执行 6rw- 可读可写 7rwx 可读可写可执行 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 NameNodeHDFS的管理者负责处理客户端请求、管理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$PATH:$JAVA_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$:CLASSPATH:$JAVA_HOME/lib/ #export PATH$PATH:$JAVA_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 [rootmaster ~]# 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$PATH:$JAVA_HOME/bin 这是我的 验证 Java -version java echo $JAVA_HOME
例如可以编辑 /etc/profile 文件并在其中添加以下行 export JAVA_HOME/usr/lib/jvm/java-x.x.x export PATH$PATH:$JAVA_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$PATH:$HADOOP_HOME/bin:$HADOOP_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、slaver2slaver1、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 [hadoopslave1 ~]$ cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys [hadoopslave1 .ssh]$ ls ~/.ssh/ #slave2 [hadoopslave2 ~]$ cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys [hadoopslave2 .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 [hadoopmaster .ssh]$ su - root [rootmaster ~]# vi /etc/ssh/sshd_config PubkeyAuthentication yes #slave1 [hadoopslave1 .ssh]$ su - root [rootslave1 ~]# vi /etc/ssh/sshd_config PubkeyAuthentication yes #slave2 [hadoopslave2 .ssh]$ su - root [rootslave2 ~]# vi /etc/ssh/sshd_config PubkeyAuthentication yes 设置完后需要重启 SSH 服务才能使配置生效。 systemctl restart sshd systemctl restart sshd systemctl restart sshd master scp ~/.ssh/id_rsa.pub masterslave1:~/ scp ~/.ssh/id_rsa.pub hadoopslave2:~/ cat ~/id_rsa.pub ~/.ssh/authorized_keys slave1 scp ~/.ssh/id_rsa.pub slave1master:~/ scp ~/.ssh/id_rsa.pub slave1slave2:~/ cat ~/id_rsa.pub ~/.sh/authorized_keys slave2 scp ~/.ssh/id_rsa.pub slave2slave1:~/ scp ~/.ssh/id_rsa.pub slave2master:~/ 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 [rootmaster ~]# 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 rootslave1 ssh-copy-id -i /root/.ssh/id_rsa.pub rootslave12
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 rootpri的ip #输入yes就可以了 #如果不是22端口就在后面加上 -p 端口 ssh-copy-id -i /root/.ssh/id_rsa.pub rootpri的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标签中配置 bproperty/property标签中配置具体的name、value cname参数名/name参数名不能随便写 dvalue参数值/value property name参数名/name value参数值/value /property 4.如何修改配置文件 aname参数名/name参数名是固定的写法不能瞎造具体名字参看官网 bvalue参数值/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 出现一下进程就算成功 [rootmaster 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/ rootslaver1:/usr/loacal/src/hadoop-2.7.6/ scp -r /usr/loacal/src/hadoop-2.7.6/ rootslaver2:/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.查看集群状态 aHDFS集群状态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 SQLHQL。
Hive通过简单的SQL语句实现快速调用MapReduce机制进行数据统计分析因此不必专门开发MapReduce应用程序即可实现大数据分析。
Hive是基于Hadoop的一个数据仓库工具可以将结构化的数据文件映射为一张数据库表并提供类SQL查询功能。
2.Hive的优缺点 优点简单容易上手、可扩展性强、元数据管理、容错性强、延展性强、热扩容 缺点HQL表达能力有限、效率较低、调优困难、计算过程可控性差
3.hive组织架构
ahive与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 中没有专门的数据存储格式可支持TextSequenceFileParquetFileRCFILE等 2、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符Hive 就可以解析数据。 3、Hive 中包含以下数据模型DB、TableExternal TablePartitionBucket。 db在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹 table在hdfs中表现所属db目录下一个文件夹 external table外部表, 与table类似不过其数据存放位置可以在任意指定路径 普通表: 删除表后, hdfs上的文件都删了 External外部表删除后, hdfs上的文件没有删除, 只是把文件删除了 partition在hdfs中表现为table目录下的子目录 bucket桶, 在hdfs中表现为同一个表目录下根据hash散列之后的多个文件, 会根据不同的文件把数据放到不同的文件中
1.6 mysql安装 # 关闭防火墙服务 [rootmaster ~]# systemctl stop firewalld # 设置防火墙服务开机不启动 [rootmaster ~]# systemctl disable firewalld 1.查看之前是否安装过mysql3个节点都要执行 #卸载自带环境 # 查询已安装的 mariadb 软件包 [rootmaster software]# rpm -qa |grep mariadb mariadb-libs-5.5.68-1.el7.x86_64 # 卸载 mariadb 软件包 [rootmaster software]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 #查询并卸载系统老版本的Mysql [rootmaster ~]# 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-links0配置信息的下方。 default-storage-engineinnodb innodb_file_per_table collation-serverutf8_general_ci init-connectSET NAMES utf8 character-set-serverutf8 5.启动mysql服务 输入命令systemctl start mysqld 查看mysql服务是否启动/查询 MySQL 数据库状态 service mysqld status mysqld 进程状态为 active (running)则表示 MySQL 数据库正常运行。 如果 mysqld 进程状态为 failed则表示 MySQL 数据库启动异常。此时需要排查 /etc/my.cnf 文件。 [rootmaster 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 (codeexited, status0/SUCCESS) Process: 39975 ExecStartPre/usr/bin/mysqld_pre_systemd (codeexited, status0/SUCCESS) 6.重置mysql密码 查看mysql安装时随机生成的密码。 输入指令grep temporary password /var/log/mysqld.log 或者cat /var/log/mysqld.log | grep temporary password 执行mysql_secure_installation命令初始化MySQL数据库 [rootmaster ~]# mysql_secure_installation Securing the MySQL server deployment. rootlocalhost: JYgTNl)C56 先输入查到的临时密码 输入新密码:Password123$ # 再次输入新密码 Password123$ # 输入 y # 输入 y # 输入 n # 输入 y # 输入 y # 添加 root 用户从本地和远程访问 MySQL 数据库表单的授权。 [rootmaster ~]# mysql -uroot -p # 输入新设定的密码 Password123$ mysql grant all privileges on *.* to rootlocalhostidentified by Password123$; # 添加 root 用户本地访问授权
mysql grant all privileges on *.* to root% identified byPassword123$; # 添加 root 用户远程访问授权
mysql flush privileges; # 刷新授权
mysql select user,host from mysql.user where userroot; # 查询 root 用户授权情况 mysql exit; # 退出 MySQL 数据库 # DBPasswordZabbix2024 按照实验步骤设置对应的 7.解压hive [rootmaster ~]# tar -zxvf /opt/software/apache-hive-2.0.0-bin.tar.gz -C /usr/local/src 将解压后的apache-hive-2.0.0-bin文件夹更名为hive [rootmaster ~]# mv /usr/local/src/apache-hive-2.0.0-bin usr/local/src/hive 8.修改环境变量并使其生效 [rootmaster ~]# vim /etc/profile # 在文件末尾追加以下配置内容 # set hive environment export HIVE_HOME/usr/local/src/hive export PATH$PATH:$HIVE_HOME/bin [rootmaster ~]source /etc/profile #使环境变量生效 9.修改hive的配置文件 将/usr/local/src/hive文件夹下hive-default.xml.template文件更名为hive-site.xml。 [rootmaster ~]$ 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、查找nn是数字行的方式打开文档后连续按n、shiftg可以快速定位的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命令可以跳到相应的行默认缺省状态是跳转到第一行即文件头。 [hadoopmaster ~]$ 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。 [rootmaster ~]$ 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目录下。 [rootmaster ~]# 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元数据初始化失败。我们的安装包中已经给大家删除过了 [rootmaster ~]$ rm -f /usr/local/src/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar 3启动Hadoop相关进程。 [rootmaster ~]$ start-all.sh 12.使用schematool升级元数据将Hive的元数据重新写入MySQL数据库中。 [rootmaster ~]$ schematool -initSchema -dbType mysql Metastore connection URL: jdbc:mysql://master:3306/hive?createDatabaseIfNotExisttrueuseSSLfalse 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组件。 [rootmaster ~]$ 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节点上 1ZooKeeper的安装包zookeeper-3.4.8.tar.gz已放置在Linux系统/opt/software目录下。 2解压安装包到指定目标在Master节点执行如下命令。 [rootmaster software]# tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/src/ [rootmaster src]# mv zookeeper-3.4.5 zookeeper 3在 ZooKeeper 的安装目录下创建 data 和 logs 文件夹。 [rootmaster ~]# cd /usr/local/src/zookeeper [rootmaster zookeeper]# mkdir data mkdir logs 4将编号写入myid文件内 [rootmaster zookeeper]# echo 1 data/myid 5修改配置文件 [rootmaster zookeeper]# cp conf/zoo_sample.cfg conf/zoo.cfg [rootmaster zookeeper]# vi /usr/local/src/zookeeper/conf/zoo.cfg 修改内容 dataDir/usr/local/src/zookeeper/data dataLogDir/usr/local/zookeeper/logs 在zoo.cfg文件末尾加上 server.1master:2888:3888 server.2slave1:2888:3888 server.3slave2:2888:3888 6从master节点将zookeeper拷贝到slaver1、slaver2上 [rootmaster ~] # scp -r /usr/local/src/zookeeper rootslave1:/usr/local/src/ 在slaver1上修改/usr/local/src/zookeeper/data/myid将里面数字改成2 [rootslaver1 ~]vim /usr/local/src/zookeeper/data/myid [rootmaster ~] # scp -r /usr/local/src/zookeeper rootslave2:/usr/local/src/ 在slaver2上修改/usr/local/src/zookeeper/data/myid将里面数字改成3 [rootslaver2 ~]vim /usr/local/src/zookeeper/data/myid 7master上修改环境变量 [rootmaster ~]vim /etc/profile export ZOOKEEPER_HOME/usr/local/src/zookeeper # ZooKeeper 可执行程序目录 export PATH$PATH:$ZOOKEEPER_HOME/bin 8把master的/etc/profile拷贝到slaver1slaver2上 scp /etc/profile rootslave1:/etc/profile scp /etc/profile rootslave2:/etc/profile 分别在每个节点上执行命令source /etc/profile让环境变量生效 9在每个节点上启动zookeeper [rootmaster ~] zkServer.sh start [rootslave1 ~] zkServer.sh start [rootslave2 ~] zkServer.sh start (10)查看zookeeper运行状态 在每个节点执行命令 [rootmaster ~]$ zkServer.sh status [rootslave1 ~]$ zkServer.sh status [rootslave2 ~]$ zkServer.sh status
9. HBASE组件的安装与配置 1.什么是HBASE HBase是一个依赖zookeeper的高可靠的列式存储的非关系型数据库
2.HBase主要特性 面向列设计面向列表簇的存储和权限控制列簇独立检索。 支持多版本:每个单元中的数据可以有多个版本默认情况下版本号可自动分配版本号就是单元格插入时的时间戳。 稀疏性为空的列不占用存储空间表可以设计得非常稀疏。 高可靠性WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失Replication机制保证了在集群出现严重的问题时数据不会发生丢失或损坏。 高性能底层的据结构和Rowkey有序排列等架构上的独特设计使得HBase具有非常高的写入性能。通过科学性地设计RowKey可让数据进行合理的Region切分主键索引和缓存机制使得HBase在海量数据下具备高速的随机读取性能。 3.HBaseNoSQL与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进行协调操作。 1HMaster HMaster用于启动任务管理多个HRegionServer侦测各个HRegionServer之间的状态当一个新的HRegionServer登录到HMaster时HMaster会告诉它等待分配数据。而当某个HRegionServer死机时HMaster会把它负责的所有HRegion标记为未分配并恢复HRegionServer的故障。 2HRegionServer HBase中的所有数据从底层来说一般都是保存在HDFS中的用户通过一系列HRegionServer获取这些数据。HRegionServer主要负责响应用户I/O请求向HDFS文件系统读写数据是HBase中最核心的模块。 3ZooKeeper Apache ZooKeeper起源于Hadoop的分布式协同服务是负责协调集群中的分布式组件经过多年的发展ZooKeeper已经成为了分布式大数据框架中容错性的标准框架被多个分布式开源框架所应用。
5.一个图了解列式存储和HBASE读写过程
6.HBASE安装与配置 1.解压缩 HBase 安装包 [rootmaster ~]# tar -zxvf /opt/software/hbase-1.2.1-bin.tar.gz -C /usr/local/src/ 2.重命名 HBase 安装文件夹、设置环境变量 [rootmaster ~]# cd /usr/local/src/ [rootpmaster src]#mv hbase-1.2.1 hbase 在所有节点添加环境变量 [rootmaster ~]# vim /etc/profile # set hbase environment export HBASE_HOME/usr/local/src/hbase export PATH$HBASE_HOME/bin:$PATH 在所有节点使环境变量生效 [rootmaster ~]# source /etc/profile 将master节点的/etc/profile文件远程拷贝到slaver1、slaver2上 scp -r /etc/profile rootslave1:/etc/profile scp -r /etc/profile rootslave2:/etc/profile 3.修改配置文件hbase-env.sh [rootmaster ~]# 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_ZKfalse #HBase 类路径 export HBASE_CLASSPATH/usr/local/src/hadoop/etc/hadoop/ (找自己hadoop软件的安装路径) 4.修改配置文件hbase-site.xml 按照实验文档上的添加即可 vim hbase-site.xml configuration property namehbase.rootdir/name valuehdfs://master:9000/hbase/value descriptionThe directory shared by region servers./description /property property namehbase.master.info.port/name value60010/value description使用 master 节点 60010 端口 /description /property
property namehbase.zookeeper.property.clientPort/name value2181/value descriptionProperty from ZooKeepers config zoo.cfg. The port at which the clients will connect.使用 master 节点 2181 端口 /description /property
property namezookeeper.session.timeout/name value120000/value descriptionZooKeeper 超时时间 /description /property
property namehbase.zookeeper.quorum/name valuemaster,slave1,slave2/value descriptionZooKeeper 管理节点 /description
property namehbase.tmp.dir/name value/usr/local/src/hbase/tmp/value descriptionHBase 临时文件路径 /description /property
property namehbase.cluster.distributed/name valuetrue/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/ rootslave1:/usr/local/src/ [root master ~]# scp -r /usr/local/src/hbase/ rootslave2:/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 [rootmaster ~]# jps 5220 ResourceManager 5687 Jps 4473 NameNode 4937 SecondaryNameNode 5338 NodeManager因为每个人配的不一样所以后两个进程也可能没有有前四个进程即启动成功 4638 DataNode [rootslave1 ~]# jps 4963 Jps 4745 NodeManager 4525 DataNode [rootslave2 ~]# jps 4739 Jps 4309 DataNode 4510 NodeManager
在所有节点启动 ZooKeeper master节点slave12节点均出现 QuorumPeerMain进程即启动成功 zkServer.sh start
jps
在 master 节点启动 HBase master节点出现HMaster进程slave12节点均出现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/ [rootmaster ~]# cd /usr/local/ [rootmaster local]# mv apache-flume-1.7.0-bin/ flume# 修改Flume安装路径文件夹
[rootmaster local]# chown -R root:root flume/# 修改文件夹flume/归属用户和归属组为root 用户和 root组 使用 root 用户设置 Flume
[rootmaster 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。 [hadoopmaster ~]$cp flume-env.sh.template flume-env.sh
步骤三修改并配置 flume-env.sh 文件。删除 JAVA_HOME 变量前的注释修改为 JDK 的安装路径。
[hadoopmaster ~]$ 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 解决办法
[rootmaster bin]# cd /usr/local/flume//bin/ [rootmaster bin]# vim flume-ng
在75行 java.library.path后面 括号里添加 2/dev/null | grep hadoop 在110行 java.library.path后面 括号里添加 2/dev/null | grep hbase
[rootmaster 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遍流程按流程走完直接立马运行。