• [openEuler] 基于openEuler操作系统上部署Apache Hadoop 2.6.0 [伪分布式安装]
    一、【环境要求】和 架构信息(软件版本信息)确认uname -i cat /etc/os-release先决条件必须安装Java:Hadoop是利用java开发的开源软件,所以需要安装java。java -versionssh:必须安装ssh,并且sshd必须正在运行才能使用管理远程Hadoop守护程序的Hadoop脚本。说明:什么是伪分布式安装?hadoop有三种模式的安装,分别为独立安装、伪分布式安装、全分布式安装。独立安装是最简单安装,即将hadoop安装在一台机器上,伪分布式安装是在独立安装的基础上进行相应的配置而成,所谓伪分布式安装就是在一台机器上模拟一个小规模的集群,相较于独立模式,伪分布式模式下可以使用yarn、HDFS等。目前就只有一台虚拟机器,所以就搭建伪分布模式的hadoop,接下来就介绍怎么以伪分布模式安装hadoop。二、安装伪分布式详细步骤1、在 /root/software 目录下载 hadoop-2.6.0.tar.gz【如果没有此目录,则自己创建】,利用tar -zxvf 解压下载的包。[root@localhost ~]# cd /root [root@localhost ~]# mkdir software [root@localhost ~]# cd software/ [root@localhost software]# wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz[root@localhost software]# tar -zvxf hadoop-2.6.0.tar.gz 2、启动Hadoop     编辑hadoop-env.sh文件,进入解压好的hadoop文件夹,在etc/hadoop路径下(即全路径:/root/software/hadoop-2.6.0/etc/hadoop)找到hadoop-env.sh文件,打开hadoop-env.sh文件,找到export JAVA_HOME=${JAVA_HOME},修改为java安装的根目录【根据自己系统的java安装目录自行调整】。vi /root/software/hadoop-2.6.0/etc/hadoop/hadoop-env.sh退回到hadoop目录下,即/root/software/hadoop-2.6.0路径下,使用命令bin/hadoop,若出现以下提示,则hadoop安装成功:[root@localhost hadoop-2.6.0]# cd /root/software/hadoop-2.6.0 [root@localhost hadoop-2.6.0]# ./bin/hadoop3、配置core-site.xml和hdfs-site.xml    配置core-site.xml:该配置文件在etc/hadoop路径下,即/root/software/hadoop-2.6.0/etc/hadoop路径下,在<configuration>节点下添加如下内容:<property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>[root@localhost hadoop-2.6.0]# vi /root/software/hadoop-2.6.0/etc/hadoop/core-site.xml 4、配置hdfs-site.xml:该配置文件在etc/hadoop路径下,即/root/software/hadoop-2.6.0/etc/hadoop路径下,在<configuration>节点下添加如下内容: <property> <name>dfs.replication</name> <value>1</value> </property>这是设置存储到HDFS文件系统中的文件需要复制的份数,在全分布模式下,每上传一个文件到HDFS文件系统中,HDFS都会根据设置的复制份数把文件复制对应的份数并分散存储到不同的节点上,这种机制保证了HDFS文件的容灾性、容错性,一般在全分布模式下设置为3份,由于我们目前是伪分布模式,只有一个节点(一台机器),所以存储一份即可。[root@localhost hadoop-2.6.0]# vi /root/software/hadoop-2.6.0/etc/hadoop/hdfs-site.xml 5、安装ssh     先检查一下Linux系统上是否安装了ssh,使用以下命令查看本地是否已经安装ssh:     ssh     如果安装ssh,会出现如下图所示:    检查ssh到本地是否需要密码,使用如下命令:如果不需要输入密码,则ssh配置成功    ssh localhost   如果使用ssh localhost需要输入密码,执行以下命令配置sshssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys  如上命令执行成功之后,再执行ssh localhost命令,如果不需要密码且出现以下提示,则ssh配置成功:  6、配置MapReduce    格式化文件系统并启动NameNode守护进程和DataNode守护进程[root@localhost ~]# cd /root/software/hadoop-2.6.0/ [root@localhost hadoop-2.6.0]# bin/hdfs namenode -format [root@localhost hadoop-2.6.0]# sbin/start-dfs.sh   执行上述命令之后,在浏览器中输入http://IP:50070,IP是你安装hadoop机器的IP,出现如下图界面,代表MapReduce配置成功:7、在单节点上配置yarn:以下的步骤在上述所有操作都执行成功的前提下进行。     配置mapred-site.xml:mapred-site.xml文件同样存放在/root/software/hadoop-2.6.0/etc/hadoop路径下,默认该路径下并不存在mapred-site.xml文件,而是存在mapred-site.xml.template文件,复制一份mapred-site.xml.template文件,并改名为mapred-site.xml即可,在<configuration>节点下添加如下内容:<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>[root@localhost hadoop-2.6.0]# cd /root/software/hadoop-2.6.0/etc/hadoop [root@localhost hadoop]# cp mapred-site.xml.template mapred-site.xml [root@localhost hadoop]# vi mapred-site.xml     配置yarn-site.xml:yarn-site.xml文件同样存放在/root/software/hadoop-2.6.0/etc/hadoop路径下,在<configuration>节点下添加如下内容: <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>    vi yarn-site.xml    使用如下命令启动ResourceManager守护程序和NodeManager守护程序[root@localhost ~]# cd /root/software/hadoop-2.6.0 [root@localhost hadoop-2.6.0]# sbin/start-yarn.sh    在浏览器地址栏输入地址:http://IP:8088,如果出现如下界面,代表配置单节点yarn成功:至此,伪分布式hadoop安装成功
  • [openEuler] 基于openEuler-20.03-LTS-SP1安装部署Apache Hadoop 3.3.1
    1、查看操作系统版本及CPU架构cat /etc/os-realease uname -i2、安装Java8Hadoop3.3.*对Java版本的最低要求从Java7增加到Java8创建java目录,解压jdk,配置环境变量mkdir /usr/java tar zxf jdk-8u301-linux-x64.tar.gz -C /usr/java/ vim /etc/profile/etc/profile文件中添加以下内容export JAVA_HOME=/usr/java/jdk1.8.0_301 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar刷新配置文件使其生效,查看java版本source /etc/profile java -version3、安装openssh和rsyncopenEuler一般都会默认安装openssh和rsync,检查是否安装yum list all openssh yum list all rsync若显示未安装,使用yum install openssh/yum install rsync安装即可4、添加Hadoop运行用户groupadd -g 1000 hadoop useradd -g 1000 -u 1000 hadoop passwd Hadoop // 输入要设置的密码并记住5、配置主节点登录自己和其他节点不需要输入密码退出登录,使用hadoop用户重新登录至主机配置sshssh-keygen -t rsa -P ''ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@localhost此时可以使用hadoop直接本地登录,无需输入密码6、切换到root用户登录,解压Hadoophadoop3.3.1载地址:http://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gzwget -P /usr/local/ http://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz cd /usr/local tar zxf hadoop-3.3.1.tar.gz创建软链接ln -sv hadoop-3.3.1 hadoop7、配置Hadoop环境变量vim /etc/profile添加以下内容# Hadoop HADOOP_HOME=/usr/local/hadoop PATH=$HADOOP_HOME/bin:$PATH export HADOOP_HOME PATH刷新配置文件,查看Hadoop版本source /etc/profile hadoop version修改/usr/local/hadoop的属主和属组为hadoopchown -R hadoop.hadoop /usr/local/hadoop/8、配置单机(本地)模式并测试切换为hadoop用户登录主机进入hadoop目录,创建input文件夹,将etc/hadoop/目录下的所有xml文件复制到input目录下cd /usr/local/hadoop-3.3.1 mkdir input cp etc/hadoop/*.xml input测试hadoop命令bin/hadoop运行 grep 例子,将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'查看运行结果cat output/*至此,openEuler-20.03-LTS-SP1安装部署并本地测试Apache Hadoop 3.3.1完成。
  • [openEuler] 基于openEuler-20.03-LTS-SP1安装部署Apache Hadoop 2.9.2
    1、查看操作系统版本及CPU架构cat /etc/os-release uname -i2、安装Java1.7jdk下载地址:https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.htmlHadoop2.7之后的版本依赖Java1.7创建java目录,解压jdk,配置环境变量mkdir /usr/java tar zxf jdk-7u80-linux-x64.tar.gz -C /usr/java/ vim /etc/profile再profile中添加:export JAVA_HOME=/usr/java/jdk1.7.0_80 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar刷新配置文件使其生效,查看java版本source /etc/profile java -version3、安装openssh和rsyncopenEuler一般都会默认安装openssh和rsync,检查是否安装yum list all openssh yum list all rsync若显示未安装,使用yum install openssh/yum install rsync安装即可4、添加Hadoop运行用户groupadd -g 1000 hadoop useradd -g 1000 -u 1000 hadoop passwd Hadoop // 输入要设置的密码并记住5、配置主节点登录自己和其他节点不需要输入密码退出登录,使用hadoop用户重新登录至主机配置sshssh-keygen -t rsa -P ''执行过程中询问保存的目标文件时直接回车即可ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@localhost此时可以使用hadoop直接本地登录,无需输入密码6、切换到root用户登录shell,解压Hadoophadoop2.9.2载地址:http://archive.apache.org/dist/hadoop/core/hadoop-2.9.2/hadoop-2.9.2.tar.gzcd /usr/local tar zxf hadoop-2.9.2.tar.gz创建软链接7、配置Hadoop环境变量vim /etc/profile再文件中添加以下内容# Hadoop HADOOP_HOME=/usr/local/hadoop PATH=$HADOOP_HOME/bin:$PATH export HADOOP_HOME PATH刷新配置文件,查看Hadoop版本source /etc/profile hadoop version修改/usr/local/hadoop的属主和属组为hadoopchown -R hadoop.hadoop /usr/local/hadoop/8、配置单机(本地)模式并测试切换为hadoop用户登录主机进入hadoop目录,创建input文件夹,将etc/hadoop/目录下的所有xml文件复制到input目录下cd /usr/local/hadoop-2.9.2 mkdir input cp etc/hadoop/*.xml input测试hadoop命令bin/hadoop运行 grep 例子,将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中sudo bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'查看运行结果cat output/*至此,openEuler-20.03-LTS-SP1安装部署并本地测试Apache Hadoop 2.9.2完成。
  • [技术干货] 【技术干货】常见的大数据产品和框架
    第三章:常见的大数据产品和框架HDFS(Hadoop分布式文件系统)源自于Google的GFS论文,发表于2003年10月,HDFS是GFS的实现版。HDFS是Hadoop体系中数据存储管理的基础,它是一个高度容错的系统,能检测和应对硬件故障,在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。HDFS提供一次写入多次读取的机制,数据以块的形式,同时分布存储在集群的不同物理机器上。MapReduce(分布式计算框架)源自于Google的MapReduce论文,发表于2004年12月,HadoopMapReduce是GoogleMapReduce克隆版。MapReduce是一种分布式计算模型,用以进行海量数据的计算。它屏蔽了分布式计算框架细节,将计算抽象成Map和Reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。HBase(分布式列存数据库)源自Google的BigTable论文,发表于2006年11月,HBase是GoogleBigTable的实现。HBase是一个建立在HDFS之上,面向结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。HBase采用了BigTable的数据模型,即增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。ZooKeeper(分布式协作服务)源自Google的Chubby论文,发表于2006年11月,ZooKeeper是Chubby实现版。ZooKeeper的主要目标是解决分布式环境下的数据管理问题,如统一命名、状态同步、集群管理、配置同步等。Hadoop的许多组件依赖于ZooKeeper,它运行在计算机集群上面,用于管理Hadoop操作。Hive(数据仓库)由Facebook开源,最初用于解决海量结构化的日志数据统计问题。Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行,通常用于离线分析。HQL用于运行存储在Hadoop上的查询语句,Hive使不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。Pig(adhoc脚本)由yahoo开源,其设计动机是提供一种基于MapReduce的adhoc(计算在query时发生)数据分析工具。Pig定义了一种数据流语言——PigLatin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(PigLatin)。其编译器将PigLatin翻译成MapReduce程序序列,将脚本转换为MapReduce任务在Hadoop上执行,通常用于进行离线分析。Sqoop(数据ETL/同步工具)是SQL to Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是MapReduce程序,充分利用了MR的并行化和容错性。Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。Flume(日志收集工具)是Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统,当然也可以用于收集其他类型数据。Mahout(数据挖掘算法库)起源于2008年,最初是ApacheLucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便、快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB或Cassandra)集成的数据挖掘支持架构。YARN(分布式资源管理器)是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。YARN是下一代Hadoop计算平台,是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。Mesos(分布式资源管理器)是一个诞生于UCBerkeley的研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,如Twitter。与YARN类似,Mesos是一个资源统一管理和调度的平台,同样支持诸如MR、steaming等多种运算框架。Spark(内存DAG计算模型)是一个Apache项目,被标榜为“快如闪电的集群计算”,它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。最早Spark是UCBerkeleyAMPLab所开源的类HadoopMapReduce的通用并行计算框架,Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。SparkGraphX最先是伯克利AMPLab的一个分布式图计算框架项目,目前整合在Spark运行框架中,为其提供BSP大规模并行图计算能力。SparkMLlib一个机器学习库,它提供了各种各样的算法,这些算法用来在集群上针对分类、回归、聚类、协同过滤等。KafkaLinkedin于2010年12月开源的消息系统,主要用于处理活跃的流式数据。活跃的流式数据在Web网站应用中非常常见,这些数据包括网站的PV(PageView),用户访问了什么内容,搜索了什么内容等。这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。ApachePhoenixHBase的SQL驱动(HBaseSQL接口),Phoenix使得HBase支持通过JDBC的方式进行访问,并将你的SQL查询转换成HBase的扫描和相应的动作。Apache Ambari安装部署配置管理工具,其作用就是创建、管理、监视Hadoop的集群,是为了让Hadoop以及相关的大数据软件更容易使用的一个Web工具。
  • [技术干货] 【技术干货】Hadoop体系架构概述
    HDFS简介Hadoop Distributed File System(HDFS)是一个运行在商用硬件平台上的分布式文件系统。它和很多现存的分布式文件系统有很多相似之处。当然,和其他的分布式文件系统的区别也是很明显的。HDFS在廉价硬件平台上提供高可靠的文件服务,提供数据访问的高吞吐量,适合那些运行在大数据集上的应用。HDFS并不完全符合POSIX文件系统方面的标准,这是因为HDFS运行环境和POSIX filesystem适用的环境是不同。HDFS支持对文件系统数据的流式访问。HDFS最初是为Apache Nutch搜索引擎项目设计的。现在HDFS是Apache Hadoop的一个子项目。假定和目标Hardware Failure硬件失效是很普通的情况而不是什么异常。HDFS运行环境可能包含数百台服务器,每台机器存储着文件系统的部分数据。事实上这些服务器的数据已经很大了,而且每一台机器都有不小的可能性会失败,这就导致HDFS部件并不总是正常工作的。因此,检测失败并且能够迅速的恢复是HDFS的核心设计目标。Stream Data Access运行在HDFS上的应用需要流式的访问他们的数据集。HDFS应用不像 那些在通用的文件系统上操作的应用。HDFS是面向批处理操作而不是那些user交互操作。HDFS侧重于高吞吐量而不是低延迟。POSIX标准的一些需求并不适合面向HDFS的应用,因此为了达到高吞吐量而在某些方面违反了Posix 标准。Large Data Sets运行在HDFS上的应用操纵的都是大数据集。一个典型的HDFS文件的尺寸是GB~TB大小。因此,HDFS针对大文件进行了优化。通过把一个文件分散到集群内的数千个节点,来提供更高的数据带宽。HDFS应该能够支持千万级的文件数目。Append-writes and File Syncs大部分HDFS应用的文件操作模式是写一次读多次。HDFS提供了两个高级功能:hflush和append。hflush提供read一致性和数据持久性。使得文件的最后一块对文件的读用户都可见。Append提供了一种机制能够重新打开关闭的文件添加额外的数据。Move Computation is Cheaper than Moving Data当计算在数据保存的节点附近时,效率会更高,尤其当操作的数据非常大的时候。就近计算使得网络消耗和系统吞吐量都最小。根据这个原则,移动计算到数据的保存位置而不是把数据移动到计算节点。HDFS向应用提供了接口:移动计算到数据存放位置。Protability Across Heterogeneous Hardware and Software PlatformsHDFS很容易的在不同平台移植。这个特性使得HDFS被很多应用采纳为平台。NameNode and DataNodesHDFS采用master/slave体系结构。HDFS集群包含一个NameNode,用来管理文件系统的名空间以及管理Clients访问文件的权限。此外,HDFS还包括一定数目的DataNodes,用来管理所在机器的存储空间(通常每台机器只有一个DataNodes)。HDFS通过Namenode向用户提供一个 文件系统名空间,允许用户存储数据为HDFS files。在HDFS内部,一个文件则被分割成很多块,这些块被存储在多个DataNodes中。Namenode执行文件系统名空间操做如open, close, rename文件和目录,同时负责到DataNodes节点的块映射。DataNodes负责Client读写数据请求,DataNodes还会执行block的创建,删除以及在block的复制。NameNode和DataNode是运行在普通机器上的软件,这些机器一般为GNU/Linux操作系统。HDFS是用Java语言实现的,因此任何支持Java的机器都可以运行NameNode和DataNode软件。使用移植性很强的Java语言意味着HDFS的可部署范围非常之广。典型的部署是NameNode使用一个特定的机器,集群中的其他机器节点,每一个上面运行一个DataNode。虽然HDFS架构本身并不排斥一台机器运行多个DataNode,但是实际部署中很少这样用。集群中仅有一个NameNode极大的简化了系统架构。NameNode是系统的仲裁者,负责HDFS所有的元数据。NameData不会经手任何user data。数据复制(Data Replication)HDFS能可靠的存储非常大的文件到集群中的多个机器上。每个文件被分割为连续的block,除了最后一块,文件中的每个块尺寸相同。文件的block被复制多份提供容错能力。可以为每一个文件指定块尺寸和复制因子,复制因子可以在文件创建的时候指定也可以在稍候修改。HDFS中的文件在任何时候只能有一个writerNameNode决定何时做block复制。它周期性的从集群的每个DataNode接收Heartbeat和Block report。从DataNode接收到Heartbeat意味着DataNode工作正常。Block report包含一个DataNode的所有blocks列表。YARNApache YARN(Yet Another Resource Negotiator的缩写)是Hadoop的集群资源管理系统。YARN被引入Hadoop 2,最初是为了改善Map Reduce的实现,但他具有足够的通用性,、同样可以支持其他的分布式计算模式。YARN 通过两类长期的守护进程提供自己的核心服务resource manager:管理集群上资源使用的资源管理器node manager:运行在集群中所有节点上且能够启动和监控容器(container)的节点管理器。为了在YARN上运行一个应用。首先,客户端联系资源管理器,要求他运行一个application master进程。然后资源管理器找到一个能够在容器中启动application master的节点管理器(步骤2a和2b)。准确的说,application master一旦运行起来以后能做什么依赖于应用本身。有可能是所处容器中简单运行一个运算,然后将结果返回给客户端。或者向资源管理器请求更多的容器(步骤3),以用于运行一个分布式计算。YARN的基本构想是将资源管理器和作业调度器/监控器分开成两个单独的进程。这个想法是为了拥有一个全局的资源管理器(RM)和每一个应用都有一个应用控制器。应用可以是一个单独的作业也可以是一组作业。ResourceManager和NodeManager构成数据计算框架。RM是最终的权威仲裁系统中的所有应用的资源分配。NodeManager是框架在每台机器中负责containers的代理,监控它们的资源使用(内存、CPU、磁盘和网络)和将其汇报给ResourceManager/调度器。每个应用程序的ApplicationMaster实际上是框架指定的库负责从RM谈判获取资源并和MM一起工作来执行和监控任务。ResourceManager有两个主要的组成部分:调度器(Scheduler)和应用管理器(ApplicationsManager)。调度器负责给各个正在运行的拥有相似的约束如容量,队列等的应用分配资源。调度器是一个纯粹的调度器而不负责监控或者跟踪应用的状态。他也不负责恢复由于应用失效或者硬件失效而失败的任务。调度器根据应用的资源需求来执行它的调度。而不是根据一个抽象资源“容器”包含的元素例如内存、CPU、磁盘和网络等调度器是一个可插拔的组件负责将资源分配给各种各样的队列、应用等。目前的容量调度器和公平调度器将成为一些插件的例子。应用管理器负责接收作业的提交、选择第一个容器用来运行应用指定的应用控制器和提供当ApplicationMaster容器失效时的重启。每个应用的ApplicationMaster负责从调度器那里谈判获取合适的资源容器,跟踪他们的状态和监控过程。
  • [技术干货] 【技术干货】【Hadoop概念和特点】
    1.1 什么是HadoopHadoop是Apache基金会所开发的分布式系统基础架构;主要解决,海量数据的存储和海量数据的分析计算问题;一般来讲,Hadoop指-Hadoop生态圈。1.2 Hadoop 历史1.3 Hadoop概念Apache™Hadoop®项目为可靠的,可扩展的分布式计算开发开源软件。Apache Hadoop软件库是一个框架,它允许使用简单的编程模型跨计算机群集分布式处理大型数据集。它旨在从单个服务器扩展到数千台机器,每台机器提供本地计算和存储。该库本身不是依靠硬件来提供高可用性,而是设计用于在应用层检测和处理故障,从而在一组计算机之上提供高可用性服务,每个计算机都可能出现故障。1.4 基础模块Hadoop Common:支持其他Hadoop模块的常用工具。Hadoop分布式文件系统(HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。Hadoop YARN:作业调度和集群资源管理的框架。Hadoop MapReduce:一种用于并行处理大型数据集的基于YARN的系统。1.4.1优点扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。可靠性(Reliable):hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。1.4.2 缺点不适合低延迟数据访问无法高效存储大量小文件不支持多用户写入及任意修改文件
  • [运维管理] 【FI产品】HDFS命令报错、beeline无法使用等
    命令执行及结果如图:
  • [其他] 分享MRS和自建Hadoop相比优势(2)
    MRS支持多种隔离模式及企业级的大数据多租户权限管理能力,安全性更高。MRS服务支持资源专属区内部署,专属区内物理资源隔离,用户可以在专属区内灵活地组合计算存储资源,包括专属计算资源+共享存储资源、共享计算资源+专属存储资源、专属计算资源+专属存储资源。MRS集群内支持逻辑多租,通过权限隔离,对集群的计算、存储、表格等资源按租户划分。MRS支持Kerberos安全认证,实现了基于角色的安全控制及完善的审计功能。MRS支持对接华为云云审计服务(CTS),为用户提供MRS资源操作请求及请求结果的操作记录,供用户查询、审计和回溯使用。支持所有集群操作审计,所有用户行为可溯源。MRS支持与主机安全服务对接,针对主机安全服务,做过兼容性测试,保证功能和性能不受影响的情况下,增强服务的安全能力。MRS支持基于WebUI的统一的用户登录能力,MRS Manager自带用户认证环节,用户只有通过MRS Manager认证才能正常访问集群。MRS支持数据存储加密,所有用户账号密码加密存储,数据通道加密传输,服务模块跨信任区的数据访问支持双向证书认证等能力。MRS大数据集群提供了完整的企业级大数据多租户解决方案。多租户是MRS大数据集群中的多个资源集合(每个资源集合是一个租户),具有分配和调度资源(资源包括计算资源和存储资源)的能力。多租户将大数据集群的资源隔离成一个个资源集合,彼此互不干扰,用户通过“租用”需要的资源集合,来运行应用和作业,并存放数据。在大数据集群上可以存在多个资源集合来支持多个用户的不同需求。MRS支持细粒度权限管理,结合华为云IAM服务提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对MRS服务,管理员能够控制IAM用户仅能对集群进行指定的管理操作。如不允许某用户组删除集群,仅允许操作MRS集群基本操作,如创建集群、查询集群列表等。同时MRS支持多租户对OBS存储的细粒度权限管理,根据多种用户角色来区分访问OBS桶及其内部的对象的权限,实现MRS用户对OBS桶下的目录权限控制。MRS支持企业项目管理。企业项目是一种云资源管理方式,企业管理(Enterprise Management)提供面向企业客户的云上资源管理、人员管理、权限管理、财务管理等综合管理服务。区别于管理控制台进行独立操控、配置云产品的方式,企业管理控制台以面向企业资源管理为出发点,帮助企业以公司、部门、项目等分级管理方式实现企业云上的人员、资源、权限、财务的管理。MRS支持已开通企业项目服务的用户在创建集群时为集群配置对应的项目,然后使用企业项目管理对MRS上的的资源进行分组管理。此特性适用于客户针对多个资源进行分组管理,并对相应的企业项目进行诸如权限控制、分项目费用查看等操作的场景。MRS管理节点均实现HA,支持完备的可靠性机制,让系统更加可靠。MRS在基于Apache Hadoop开源软件的基础上,在主要业务部件的可靠性方面进行了优化和提升。管理节点均实现HAHadoop开源版本的数据、计算节点已经是按照分布式系统进行设计的,单节点故障不影响系统整体运行;而以集中模式运作的管理节点可能出现的单点故障,就成为整个系统可靠性的短板。MRS对所有业务组件的管理节点都提供了类似的双机的机制,包括MRS Manager、Presto、HDFS NameNode、Hive Server、HBase HMaster、YARN Resources Manager、Kerberos Server、Ldap Server等,全部采用主备或负荷分担配置,有效避免了单点故障场景对系统可靠性的影响。完备的可靠性机制通过可靠性分析方法,梳理软件、硬件异常场景下的处理措施,提升系统的可靠性。Ø  保障意外掉电时的数据可靠性,不论是单节点意外掉电,还是整个集群意外断电,恢复供电后系统能够正常恢复业务,除非硬盘介质损坏,否则关键数据不会丢失。Ø  硬盘亚健康检测和故障处理,对业务不造成实际影响。Ø  自动处理文件系统的故障,自动恢复受影响的业务。Ø  自动处理进程和节点的故障,自动恢复受影响的业务。Ø  自动处理网络故障,自动恢复受影响的业务。MRS提供统一的可视化大数据集群管理界面,让运维人员更加轻松。MRS提供统一的可视化大数据集群管理界面,包括服务启停、配置修改、健康检查等能力,并提供可视化、便捷的集群管理监控告警功能;支持一键式系统运行健康度巡检和审计,保障系统的正常运行,降低系统运维成本。MRS联合消息通知服务(SMN),在配置消息通知后,可以实时给用户发送MRS集群健康状态,用户可以通过手机短信或邮箱实时接收到MRS集群变更及组件告警信息,帮助用户轻松运维,实时监控,实时发送告警。MRS支持滚动补丁升级,可视化补丁发布信息,一键式补丁安装,无需人工干预,不停业务,保障用户集群长期稳定。MRS服务支持运维授权的功能,用户在使用MRS集群过程中,发生问题可以在MRS页面发起运维授权,由运维人员帮助客户快速定位问题,用户可以随时收回该授权。同时用户也可以在MRS 页面发起日志共享,选择日志范围共享给运维人员,以便运维人员在不接触集群的情况下帮助定位问题。MRS支持将创建集群失败的日志转储到OBS,便于运维人员获取日志进行分析。MRS具有开放的生态,支持无缝对接周边服务,快速构建统一大数据平台。以全栈大数据MRS服务为基础,企业可以一键式构筑数据接入、数据存储、数据分析和价值挖掘的统一大数据平台,并且与智能数据运营平台DAYU及数据可视化等服务对接,为客户轻松解决数据通道上云、大数据作业开发调度和数据展现的困难,使客户从复杂的大数据平台构建和专业大数据调优和维护中解脱出来,更加专注行业应用,使客户完成一份数据多业务场景使用的诉求。DAYU是数据全生命周期一站式开发运营平台,提供数据集成、数据开发、数据治理、数据服务、数据可视化等功能。MRS数据支持连接DAYU平台,并基于可视化的图形开发界面、丰富的数据开发类型(脚本开发和作业开发)、全托管的作业调度和运维监控能力,内置行业数据处理pipeline,一键式开发,全流程可视化,支持多人在线协同开发,极大地降低了用户使用大数据的门槛,帮助用户快速构建大数据处理中心,对数据进行治理及开发调度,快速实现数据变现。MRS服务100%兼容开源大数据生态,结合周边丰富的数据及应用迁移工具,能够帮助客户快速完成自建平台的平滑迁移,整个迁移过程可做到“代码0修改,业务0中断”。转自,【云小课】EI第1课 MRS和自建Hadoop相比,有哪些优势?-云社区-华为云 (huaweicloud.com)
  • [其他] 分享MRS和自建Hadoop相比优势(1)
    大数据时代企业要发展就必须进行数字化转型,要完成转型,企业需要利用大数据技术打破现有数据孤岛,构建数据分析和运营能力,才能达到降本增效。企业构建大数据平台时会面临如下两种选择:一种是大量购买机器及Hadoop发行商版本,本地自建Hadoop大数据集群;一种是按企业自身的需求,购买公有云大数据云服务构建自己的云上大数据平台。企业该如何选择呢?云小课为您解读华为云大数据云服务MRS相比自建Hadoop集群的优势,帮助您更好的进行选择。MapReduce服务(MRS)提供租户完全可控的企业级大数据集群云服务,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件,用户无需关注硬件的购买和维护。MRS服务拥有强大的Hadoop内核团队,基于华为FusionInsight大数据企业级平台构筑,历经行业数万节点部署量的考验,提供多级用户SLA保障。与自建Hadoop集群相比,MRS还具有以下优势:MRS支持一键式创建、删除、扩缩容集群,并通过弹性公网IP便携访问MRS集群管理系统,让大数据集群更加易于使用。用户自建大数据集群面临成本高、周期长、运维难和不灵活等问题。针对这些问题,MRS支持一键式创建、删除、扩容和缩容集群的能力,用户可以自定制集群的类型,组件范围,各类型的节点数、虚拟机规格、可用区、VPC网络、认证信息,MRS将为用户自动创建一个符合配置的集群,全程无需用户参与。同时支持用户快速创建多应用场景集群,比如快速创建Hadoop分析集群、HBase集群、Kafka集群。MRS支持部署异构集群,在集群中存在不同规格的虚拟机,允许在CPU类型,硬盘容量,硬盘类型,内存大小灵活组合。MRS提供了基于弹性公网IP来便捷访问组件WebUI的安全通道,并且比用户自己绑定弹性公网IP更便捷,只需界面鼠标操作,即可简化原先用户需要自己登录虚拟私有云添加安全组规则,获取公网IP等步骤,减少了用户操作步骤。MRS提供了自定义引导操作,用户可以以此为入口灵活配置自己的集群,通过引导操作用户可以自动化地完成安装MRS还没支持的第三方软件,修改集群运行环境等自定义操作。MRS支持WrapperFS特性,提供OBS的翻译能力,兼容HDFS到OBS的平滑迁移,解决客户将HDFS中的数据迁移到OBS后,即可实现客户端无需修改自己的业务代码逻辑的情况下,访问存储到OBS的数据。MRS支持自动弹性伸缩,相对自建Hadoop集群的使用成本更低。MRS可以按业务峰谷,自动弹性伸缩,在业务繁忙时申请额外资源,业务不繁忙时释放闲置资源,让用户按需使用,帮助用户节省大数据平台闲时资源,尽可能的帮助用户降低使用成本,聚焦核心业务。在大数据应用,尤其是周期性的数据分析处理场景中,需要根据业务数据的周期变化,动态调整集群计算资源以满足业务需要。MRS的弹性伸缩规则功能支持根据集群负载对集群进行弹性伸缩。此外,如果数据量为周期有规律的变化,并且希望在数据量变化前提前完成集群的扩缩容,可以使用MRS的资源计划特性。MRS服务支持规则和时间计划两种弹性伸缩的策略:弹性伸缩规则:根据集群实时负载对Task节点数量进行调整,数据量变化后触发扩缩容,有一定的延后性。资源计划:若数据量变化存在周期性规律,则可通过资源计划在数据量变化前提前完成集群的扩缩容,避免出现增加或减少资源的延后。弹性伸缩规则与资源计划均可触发弹性伸缩,两者即可同时配置也可单独配置。资源计划与基于负载的弹性伸缩规则叠加使用可以使得集群节点的弹性更好,足以应对偶尔超出预期的数据峰值出现。MRS支持存算分离,大幅提升大数据集群资源利用率。针对传统存算一体大数据架构中扩容困难、资源利用率低等问题,MRS采用计算存储分离架构,存储基于公有云对象存储实现11个9的高可靠,无限容量,支撑企业数据量持续增长;计算资源支持0~N弹性扩缩,百节点快速发放。存算分离后,计算节点可实现真正的极致弹性伸缩;数据存储部分基于OBS的跨AZ等能力实现更高可靠性,无需担心地震、挖断光纤等突发事件。存储和计算资源可以灵活配置,根据业务需要各自独立进行弹性扩展,可使资源匹配更精准、更合理,让大数据集群资源利用率大幅提升,综合分析成本降低50%。同时通过高性能的计算存储分离架构,打破存算一体架构并行计算的限制,最大化发挥对象存储的高带宽、高并发的特点,对数据访问效率和并行计算深度优化(元数据操作、写入算法优化等),实现性能提升。MRS支持自研CarbonData和自研超级调度器Superior Scheduler,性能更优。MRS支持自研的CarbonData存储技术。CarbonData是一种高性能大数据存储方案,以一份数据同时支持多种应用场景,并通过多级索引、字典编码、预聚合、动态Partition、准实时数据查询等特性提升了IO扫描和计算性能,实现万亿数据分析秒级响应。MRS支持自研超级调度器Superior Scheduler,突破单集群规模瓶颈,单集群调度能力超10000节点。Superior Scheduler是一个专门为Hadoop YARN分布式资源管理系统设计的调度引擎,是针对企业客户融合资源池,多租户的业务诉求而设计的高性能企业级调度器。Superior Scheduler可实现开源调度器、Fair Scheduler以及Capacity Scheduler的所有功能。另外,相较于开源调度器,Superior Scheduler在企业级多租户调度策略、租户内多用户资源隔离和共享、调度性能、系统资源利用率和支持大集群扩展性方面都做了针对性的增强,让Superior Scheduler直接替代开源调度器。MRS基于鲲鹏处理器进行软硬件垂直优化,充分释放硬件算力,实现高性价比。MRS支持华为自研鲲鹏服务器,充分利用鲲鹏多核高并发能力,提供芯片级的全栈自主优化能力,使用华为自研的操作系统EulerOS、华为JDK及数据加速层,充分释放硬件算力,为大数据计算提供高算力输出。在性能相当情况下,端到端的大数据解决方案成本下降30%。转自,【云小课】EI第1课 MRS和自建Hadoop相比,有哪些优势?-云社区-华为云 (huaweicloud.com)
  • [运维管理] FI651 hdfs目录权限问题
    用户A 有 用户B的HDFS目录的读权限,A用户使用hdfs dfs -count -v -q -h查看B用户HDFS目文件数,报没有权限,如下图:用户查看自身的hdfs目录文件没问题,admin用户查看A和B都可以请问一个用户去查另一个用户的hdfs目录文件数是有上面特殊的设置么?
  • [教程] 大数据存算分离解决方案之---logstash+OBSA-HDFS+并行文件桶的配置方法
    概述Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到“存储库”中。具体请参见:https://www.elastic.co/cn/logstashOBS是华为云的对象存储服务,OBS支持S3对象存储协议,Logstash内置了和s3进行交互的输入和输出插件,所以可以借助其S3插件完成和obs的对接,本文用于描述Logstash如何对接使用OBS。OBS服务有对象桶和并行文件桶两种选择,在大数据场景下建议选择并行文件桶。操作步骤以logstash-7.10.2为例1. 下载和安装logstash(1)https://www.elastic.co/cn/downloads/past-releases/logstash-7-10-2(2)tar zxvf logstash-6.4.2.tar.gz2. 示例以file为源端,以obs为目的端(1)创建配置文件file2obs.confinput {file {path => "/usr/local/nginx/logs/access.log"start_position => "beginning"}}output {s3 {endpoint => "obs endpoint"bucket => "obs桶名"access_key_id => "ak"secret_access_key => "sk"size_file => 1048576time_file => 1prefix => "test/logtest/"enable_metric => true}}重要参数说明:endpoint:obs的endpointaccess_key_id:具备访问obs权限的aksecret_access_key:具备访问obs权限的skbucket:obs的桶名称size_file:表示多少byte滚动文件保存time_file:表示多少分钟滚动文件保存prefix:指定文件存储的目录,例如”weili/logtest/”,此时文件会写入到桶的weili/logtest/目录下(注意路径不要以/开头)更多详情参见:https://www.elastic.co/guide/en/logstash/7.x/plugins-outputs-s3.html(2)运行logstashbin/logstash -f ../conf/file2obs.conf注意事项避免使用较老版本的logstash,请使用较新版本的logstash,例如>=7.10.2。
  • [教程] 大数据存算分离解决方案之---DataX+OBSA-HDFS+并行文件桶的配置方法
    概述DataX是一个数据同步框架,实现了包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。具体请参见:https://github.com/alibaba/DataX/OBS是华为云的对象存储服务,OBS支持S3对象存储协议,同时也支持HDFS协议,在大数据场景中可以替代hadoop系统中的HDFS服务,本文用于描述DataX如何对接使用OBS。OBS服务有对象桶和并行文件桶两种选择,在大数据场景下建议选择并行文件桶。操作步骤1. 下载datax源码https://github.com/alibaba/DataX.git2. 修改datax源码(1)升级hdfsreader和hdfswrite模块依赖的hadoop版本:因为OBS不再支持hadoop2.8以下的版本修改datax\hdfswriter\pom.xml和datax\hdfsreader\pom.xml文件<properties><!--由2.7.1升级到2.8.3--><hadoop.version>2.8.3</hadoop.version></properties>3. 编译打包安装datax(1)进入datax源码根目录执行如下maven命令:mvn -U clean package assembly:assembly -Dmaven.test.skip=true在datax源码根目录/target目录下生成datax.tar.gz压缩文件(2)解压datax.tar.gz4. 添加hadoop-huaweicloud-xxx.jar包(1)下载对应版本的jar包:https://github.com/huaweicloud/obsa-hdfs/tree/master/release(2) 将上述jar包放入:datax根目录\plugin\writer\hdfswriter\libs和datax根目录\plugin\reader\hdfsreader\libs5. 示例以txtfilereader为源端,以obs为目的端:(1)创建作业配置文件file2obs.json{"setting": {},"job": {"setting": {"speed": {"channel": 2}},"content": [{"reader": {"name": "txtfilereader","parameter": {"path": ["/root/datax/bin/obstest.txt"],"encoding": "UTF-8","column": [{"index": 0,"type": "STRING"},{"index": 1,"type": "STRING"}],"fieldDelimiter": "\t"}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "obs://moguauthtest",##obs桶"fileType": "text","path": "/wgptesttable",##obs桶中的路径"fileName": "test","column": [{"name": "col1","type": "STRING"},{"name": "col2","type": "STRING"}],"writeMode": "append","fieldDelimiter": "\t","hadoopConfig": {##此部分hadoop配置必须添加"fs.obs.impl": "org.apache.hadoop.fs.obs.OBSFileSystem","fs.obs.access.key": "可访问OBS的ak","fs.obs.secret.key": "可访问OBS的sk","fs.obs.endpoint": "OBS桶所在region"}}}}]}}(2)启动DataXpython datax根目录/bin/datax.py file2obs.json注意事项1.OBS服务有对象桶和并行文件桶两种选择,目前datax暂时仅支持对接OBS并行文件桶
  • [教程] 大数据存算分离解决方案之---Flume+OBSA-HDFS+并行文件桶的配置方法
    Flume 是一个分布式的、可靠的和高可用的服务,用于收集、聚合以及移动大量日志数据。具体请参见:http://flume.apache.org/OBS是华为云的对象存储服务,OBS支持S3对象存储协议,同时也支持HDFS协议,在大数据场景中可以替代hadoop系统中的HDFS服务,本文用于描述flume如何对接使用OBS。OBS服务有对象桶和并行文件桶两种选择,在大数据场景下建议选择并行文件桶。操作步骤以flume 1.9版本为例1. 下载flumehttp://flume.apache.org/download.html2. 安装flume:支持写数据到OBS(1)解压apache-flume-1.9.0-bin.tar.gz到apache-flume-1.9.0-bin目录(2)在部署了Hadoop的环境中(设置了HADOOP_HOME等环境变量)按照下述文档配置hadoop环境https://github.com/huaweicloud/obsa-hdfs/blob/master/release/doc/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1OBSA-HDFS%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.pdf(3)在没有部署Hadoop的环境中下载hadoop并按照下述文档配置hadoop环境https://github.com/huaweicloud/obsa-hdfs/blob/master/release/doc/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1OBSA-HDFS%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.pdf将hadoop中的相关jar包复制到 apache-flume-1.9.0-bin/lib 目录下,包含hadoop-huaweicloud-xxx.jar将配置好的core-site.xml文件复制到flume根目录/conf目录下3. 示例以flume内置的StressSource为source,以file为channel,以obs为sink(1)创建flume配置文件:sink2obs.propertiesagent.sources = r1agent.channels = c1agent.sinks = k1agent.sources.r1.type = org.apache.flume.source.StressSourceagent.sources.r1.channels = c1agent.sources.r1.size = 1024agent.sources.r1.maxTotalEvents = 100000agent.sources.r1.maxEventsPerSecond = 10000agent.sources.r1.batchSize=1000agent.sources.r1.interceptors = i1agent.sources.r1.interceptors.i1.type = hostagent.sources.r1.interceptors.i1.useIP = falseagent.channels.c1.type = fileagent.channels.c1.dataDirs = /data/agent/agent/flume-dataagent.channels.c1.checkpointDir = /data/agent/agent/flume-checkpointagent.channels.c1.capacity = 500000agent.channels.c1.transactionCapacity = 50000agent.sinks.k1.channel = c1agent.sinks.k1.type = hdfsagent.sinks.k1.hdfs.useLocalTimeStamp = trueagent.sinks.k1.hdfs.filePrefix = %{host}_k1agent.sinks.k1.hdfs.path = obs://obs桶名/flume/dc/create_time=%Y-%m-%d %H-%Magent.sinks.k1.hdfs.fileType = DataStreamagent.sinks.k1.hdfs.writeFormat = Textagent.sinks.k1.hdfs.rollSize = 0agent.sinks.k1.hdfs.rollCount = 1000agent.sinks.k1.hdfs.rollInterval = 0agent.sinks.k1.hdfs.batchSize = 1000agent.sinks.k1.hdfs.round = trueagent.sinks.k1.hdfs.roundValue = 10agent.sinks.k1.hdfs.roundUnit = minute(2)启动flume agent./bin/flume-ng agent -n agent -c conf/ -f conf/sink2obs.properties注意事项1. 多sink写同一文件OBS和HDFS在一致性保证上是有差别的:HDFS租约机制可以保证并发写同一个文件时不会产生一致性问题,但是OBS实现的HDFS协议不支持租约机制(并发写同一个文件时将产生不可确定的状态),所以在flume场景下可以通过文件命名规则进行解决,例如sink文件的命名规则:hostname-sinkname作为文件的前缀,如果一个主机上部署了多个flume agent,不同的agent要有不同的sinkname2. flume日志配置为了减少无谓的日志输出,可以在flume根目录/conf目录下的log4j.properties文件中增加如下配置:log4j.logger.org.apache.hadoop.fs.obs=ERRORlog4j.logger.com.obs=ERROR3. obsa写入时临时文件的目录配置Flume写obs时会先写入本地磁盘缓冲区,然后上传到obs,如果对写入obs有极致性能要求请选择高性能磁盘作为缓冲区,在core-site.xml文件中增加如下配置:<property><name>fs.obs.buffer.dir</name><value>xxx</value></property>
  • [教程] 大数据存算分离解决方案之---Presto+OBSA-HDFS+并行文件桶的配置方法
    PrestoSQL对接OBS简介Presto分为prestoSql(现更名为Trino)和PrestoDB两大分支或是发行版。Presto on OBS仅支持prestoSql/Trino发行版,下述对接步骤以prestoSql-333版本为例。OBS是华为云的对象存储服务,OBS支持S3对象存储协议,同时也支持HDFS协议,在大数据场景中可以替代hadoop系统中的HDFS服务,本文用于描述flume如何对接使用OBS。OBS服务有对象桶和并行文件桶两种选择,在大数据场景下建议选择并行文件桶。安装HadoopHadoop版本2.8.3,按照https://github.com/huaweicloud/obsa-hdfs/tree/master/release/doc配置hadoop安装HiveHive版本2.3.3安装presto server下载安装版本:prestoSQL-3331.下载Presto客户端和服务端:https://repo1.maven.org/maven2/io/prestosql/presto-cli/https://repo1.maven.org/maven2/io/prestosql/presto-server2.下载华为OBSA-HDFS插件:hadoop-huaweicloud-${hadoop.version}-hw-${version}.jarhttps://github.com/huaweicloud/obsa-hdfs/tree/master/release3.解压Presto服务端:tar –zxvf presto-server-333.tar.gz在presto根目录/plugin/hive-hadoop2下放入如下两个jar包hadoop-huaweicloud-${hadoop.version}-hw-${version}.jarApache commons-lang-xxx.jar(可从maven中央仓库下载或从hadoop目录中拷贝)配置presto在安装目录里创建etc目录。这目录会有以下配置(自己创建):· 结点配置文件:每个结点的环境配置· JVM配置文件:Java虚拟机的命令行选项· Server配置文件(Config Properties):Persto server的配置· Catelog配置文件:配置presto的各种Connector(数据源)· 日志配置文件:配置Presto日志结点配置文件结点属性文件etc/node.properties,包含每个结点的配置。一个结点是一个Presto实例。这文件一般是在Presto第一次安装时创建的。以下是最小配置:node.environment=productionnode.id=ffffffff-ffff-ffff-ffff-ffffffffffffnode.data-dir=/var/presto/data解释:node.environment: 环境名字,Presto集群中的结点的环境名字都必须是一样的。node.id: 唯一标识,每个结点的标识都必须是唯一的。就算重启或升级Presto都必须还保持原来的标识。node.data-dir: 数据目录,Presto用它来保存log和其他数据eg:node.environment=presto_clusternode.id= bigdata00node.data-dir /home/modules/presto-server-0.215/data #data需要自己手动创建JVM配置文件JVM配置文件etc/jvm.config,包含启动Java虚拟机时的命令行选项。格式是每一行是一个命令行选项。此文件数据是由shell解析,所以选项中包含空格或特殊字符会被忽略。以下是参考配置:-server-Xmx16G-XX:-UseBiasedLocking-XX:+UseG1GC-XX:G1HeapRegionSize=32M-XX:+ExplicitGCInvokesConcurrent-XX:+ExitOnOutOfMemoryError-XX:+UseGCOverheadLimit-XX:+HeapDumpOnOutOfMemoryError-XX:ReservedCodeCacheSize=512M-Djdk.attach.allowAttachSelf=true-Djdk.nio.maxCachedBufferSize=2000000备注:以上参数都是官网参数,实际环境需要调整Server配置文件配置属性文件etc/config.properties,包含Presto server的配置。Presto server可以同时为coordinator和worker,但一个大集群里最好就是只指定一台机器为coordinator。(1)coordinator节点的配置文件coordinator=truenode-scheduler.include-coordinator=truehttp-server.http.port=5050discovery-server.enabled=truediscovery.uri=http://192.168.XX.XX:5050query.max-memory=20GBquery.max-memory-per-node=1GBquery.max-total-memory-per-node=2GB(2)worker节点的配置文件coordinator=falsehttp-server.http.port=5050discovery.uri=http://192.168.XX.XX:5050query.max-memory=20GBquery.max-memory-per-node=1GBquery.max-total-memory-per-node=2GB解释:coordinator: 是否运行该实例为coordinator(接受client的查询和管理查询执行)。node-scheduler.include-coordinator:coordinator是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能。http-server.http.port:指定HTTP端口。Presto使用HTTP来与外部和内部进行交流。query.max-memory: 查询能用到的最大总内存query.max-memory-per-node: 查询能用到的最大单结点内存discovery-server.enabled: Presto使用Discovery服务去找到集群中的所有结点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署,不需要额外的服务,Presto的coordinator内置一个Discovery服务。也是使用HTTP端口。discovery.uri: Discovery服务的URI。将example.net:8080替换为coordinator的host和端口。这个URI不能以斜杠结尾,这个错误需特别注意,不然会报404错误。另外还有以下属性:jmx.rmiregistry.port: 指定JMX RMI的注册。JMX client可以连接此端口jmx.rmiserver.port: 指定JXM RMI的服务器。可通过JMX监听。Catelog配置文件(重点)hive connector配置如下:a、在etc目录下创建catalog目录b、创建一个hive connector的配置文件:hive.properties# hive.propertiesconnector.name=hive-hadoop2 #连接名hive.metastore.uri=thrift://192.168.XX.XX:9083 #配置hive metastore连接hive.config.resources=/home/modules/hadoop-2.8.3/etc/hadoop/core-site.xml,/home/modules/hadoop-2.8.3/etc/hadoop/hdfs-site.xml,/home/modules/hadoop-2.8.3/etc/hadoop/mapred-site.xml #指定hadoop的配置文件,注意core-site.xml需要按照https://github.com/huaweicloud/obsa-hdfs/tree/master/release/doc配置hive.allow-drop-table=true #给删表权限日志配置文件创建文件log.properties写入内容:com.facebook.presto=INFO备注:日志级别有四种,DEBUG, INFO, WARN and ERROR启动presto步骤如下:a、启动hive metastore:hive --service metastore &b、启动presto server:bin/launcher startc、启动presto client:重命名presto-cli-333-executable.jar为presto,放在bin目录下,然后赋予执行权限:chmod +x presto启动client:./presto --server XX.XX.XX.XX:5050 --catalog hive --schema default关闭presto服务bin/launcher stopPresto查询OBS创建hive表CREATE TABLE sample01(id int,name string,address string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','STORED AS TEXTFILElocation obs://obs-east-bkt001/sample01';insert into sample01 values(1,'xiaoming','cd');insert into sample01 values(2,'daming','sh');presto查询hive表./presto --server XX.XX.XX.XX:5050 --catalog hive --schema defaultselect * from sample01;
  • [基础组件] 【FusionInsight产品】【HDFS checkpoint同步】为什么使用HTTP
    请大佬答疑一下……active NameNode和standby NameNode在进行fsimage checkpoint同步的过程中为什么使用HTTP而不是RPC?