• [数据编排] 将一个压缩文件下载到hadoop上,通过bdi的什么配置可以将其解压?
    将一个压缩文件下载到hadoop上,请问通过bdi的什么配置可以将其解压?
  • [基础组件] HDFS服务启动失败
    安装好集群后,启动HDFS时一直报namenode HA 检查失败,麻烦专家帮忙看一下,谢谢!错误日志如下:2021-08-02 13:31:38]Check validity of roleInstance for HDFS#NameNode#192.168.5.88@DN03.[2021-08-02 13:31:50]RoleInstance validity check failure [{ScriptExecutionResult=Value(scriptExecutionResult:ScriptExecutionResult [exitCode=1, output=, errMsg=])}] for HDFS#NameNode#192.168.5.88@DN03.controller.log日志文件内容如下:2021-08-02 13:36:26,674 INFO  [Thread-15] Adding action to Managed Node [192.168.5.88@DN03] :: Action is Action [id=655, type=CHECK_SERVICE, script=/opt/huawei/Bigdata/FusionInsight_HD_8.0.2/install/FusionInsight-Hadoop-3.1.1/hadoop/sbin/hdfs-availability-check.sh, timeout=0, randomIdentification=751178587, clusterId=1, serviceId=5, roleName=NameNode, configGroupsList=0, scriptArgs=[], actionArgs keys=[] actionArgs values=[], metaData={}] com.huawei.bigdata.om.controller.service.managed.model.ManagedNode.addAction(ManagedNode.java:1436)2021-08-02 13:36:38,681 WARN  [pool-18-thread-6] Processing Action response for clusterId 1 serviceId 5 roleName NameNode. FinishedAction:Action [id=655, type=CHECK_SERVICE, script=/opt/huawei/Bigdata/FusionInsight_HD_8.0.2/install/FusionInsight-Hadoop-3.1.1/hadoop/sbin/hdfs-availability-check.sh, timeout=0, randomIdentification=751178587, clusterId=1, serviceId=5, roleName=NameNode, configGroupsList=0, scriptArgs=[], actionArgs keys=[] actionArgs values=[], metaData={}]; ActionResult:ActionResult [actionID=655, success=false, randomIdentification=751178587, commandResult={ScriptExecutionResult=Value(scriptExecutionResult:ScriptExecutionResult [exitCode=1, output=, errMsg=])}]. com.huawei.bigdata.om.controller.service.managed.model.ManagedNode.processResponse(ManagedNode.java:1236)2021-08-02 13:36:38,681 ERROR [pool-18-thread-6] Agent 192.168.5.88@DN03 failed to execute action, and action result info : actionType=CHECK_SERVICE; result=ActionResult [actionID=655, success=false, randomIdentification=751178587, commandResult={ScriptExecutionResult=Value(scriptExecutionResult:ScriptExecutionResult [exitCode=1, output=, errMsg=])}]. com.huawei.bigdata.om.controller.service.managed.model.ManagedNode.processResponse(ManagedNode.java:1341)2021-08-02 13:36:38,682 INFO  [Thread-15] RoleInstance NameNode#192.168.5.88@DN03 receive serviceCheck result of failure. failed count is 0. com.huawei.bigdata.om.controller.service.managed.RoleImpl.checkServiceResult(RoleImpl.java:1444)2021-08-02 13:36:38,682 INFO  [Thread-15] RoleInstance NameNode#192.168.5.88@DN03 retry serviceCheck, The instance current HA state is ACTIVE. com.huawei.bigdata.om.controller.service.managed.RoleImpl.checkServiceResult(RoleImpl.java:1488)
  • [openEuler] 基于openEuler操作系统上部署redis-6.0.0
    一、【环境要求】和 架构信息(软件版本信息)确认CPU架构:x86_64/aarch64OS版本:openEuler20.03-LTS-SP1kernel version:4.19.90   命令确认:cat /etc/os-release uname -i二、安装Redis-6.0.0步骤Redis部署方式主要分为三种,分别为:yum源、rpm包、源码编译安装。本部署文档以源码编译安装Redis-6.0.0。下载Redis-6.0.0源码包#下载redis-6.0.0源码 wget https://download.redis.io/releases/redis-6.0.0.tar.gz解压源码包tar -xzvf redis-6.0.0.tar.gz安装依赖yum -y install gcc gcc-c++ kernel-devel本机系统已经安装过,所以不用安装了。如果确认安装过依赖,可以忽略这个步骤进入redis-6.0.0目录,编译redis,耐心等待,需要一点时间编译cd redis-6.0.0 make安装redis到指定目录make PREFIX=/usr/local/redis install三、测试验证 启动测试/usr/local/redis/bin/redis-server & # 查看redis进程 ps -ef|grep redis查看redis-server及redis-cli版本/usr/local/redis/bin/redis-server -v /usr/local/redis/bin/redis-cli -v登入redis客户端,创建测试key-value至此,在openEuler-20.03-LTS-SP1上面源码编译安装redis-6.0.0完成
  • [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无法使用等
    命令执行及结果如图:
  • [版务处理] 3123
    21321312
  • [优秀实践] 小白学习hadoop移植部署步骤
    yum安装GCC相关软件。 yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64 解决-fsigned-char问题(修改gcc)。 使用命令寻找gcc所在路径(一般位于“/usr/bin/gcc”)。command -v gcc更改gcc的名字(例如改成gcc-impl)。mv /usr/bin/gcc /usr/bin/gcc-impl执行如下命令,并填入如下内容保存。vim /usr/bin/gcc #! /bin/sh/usr/bin/gcc-impl -fsigned-char "$@" 执行如下命令给脚本添加执行权限。chmod +x /usr/bin/gcc执行如下命令确保命令可用。gcc --version解决-fsigned-char问题(修改g++)。 使用命令寻找gcc所在路径(一般位于“/usr/bin/g++”)。command -v g++更改g++的名字(例如改成g++-impl)。mv /usr/bin/g++ /usr/bin/g++-impl执行如下命令,并填入如下内容保存。vim /usr/bin/g++ #! /bin/sh/usr/bin/g++-impl -fsigned-char "$@" 执行如下命令给脚本添加执行权限。chmod +x /usr/bin/g++执行如下确保命令可用。g++ --version yum安装依赖的相关软件 yum install -y wget openssl-devel zlib-devel automake libtool make libstdc++-static glibc-static git snappy snappy-devel fuse fuse-devel  安装openjdk上传下载好的软件到/tmp目录中解压缩openjdk压缩包tar zxvf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz创建环境所需文件夹mkdir -p /opt/tools/installed移动已解压的jdk文件到指定目录mv jdk8u252-b09/ /opt/tools/installed配置java环境变量vim /etc/profile将下列信息插入到环境变量的最下方.配置完成后保存退出export JAVA_HOME=/opt/tools/installed/jdk8u252-b09export PATH=$JAVA_HOME/bin:$PATH运行下面的代码,使env生效source /etc/profile 查看java是否生效 java -version 安装maven上传下载好的软件到/tmp目录中解压缩maven压缩包tar zxvf apache-maven-3.5.4-bin.tar.gz移动已解压的maven文件到指定目录mv apache-maven-3.5.4 /opt/tools/installed/配置maven环境变量vim /etc/profile将下列信息插入到环境变量的最下方.配置完成后保存退出export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH运行下面的代码,使env生效source /etc/profile查看java是否生效mvn -v 修改Maven配置文件中的:本地仓路径、远程仓等替换已经的配置文件vim /opt/tools/installed/apache-maven-3.5.4/conf/settings.xml <mirror>  <id>huaweimaven</id>  <name>huawei maven</name>  <url>https://mirrors.huaweicloud.com/repository/maven/</url>  <mirrorOf>central</mirrorOf></mirror> 安装cmake上传下载好的软件到/tmp目录中解压缩cmake压缩包tar zxvf cmake-3.12.4.tar.gz编译安装cmake。cd cmake-3.12.4./bootstrapmake -j24make install 安装Protobufyum install -y protobuf protobuf-devel 安装分析扫描工具上传下载好的软件到/tmp目录中解压缩分析扫描工具压缩包tar zxvf Dependency-advisor_2.2.0.SPC200_Kunpeng-linux.tar.gzcd Dependency-advisor_2.2.0.SPC200_Kunpeng-linuxbash ./install.sh web这里输入内网eip地址。不要输出公网eip地址。剩下的一路回车即可。配置外网访问分析扫描工具进入ecs然后找到安全组进入到安全组找到创ecs时使用的安全组添加规则端口号处填写8082使用公网eip访问https://xxx.xxx.xxx.xxx:8082 将已经上传上来的hadoop2.7.6的压缩包,拷贝到cp hadoop-2.7.6-src.tar.gz /opt/depadv/depadmin/打开扫描工具。选择分析软件包。在对话框中输入  hadoop-2.7.6-src.tar.gz编译依赖包编译snappy-java-1.0.4.1wget https://github.com/xerial/snappy-java/archive/snappy-java-1.0.4.1.tar.gz --no-check-certificatetar zxvf snappy-java-1.0.4.1.tar.gzmv snappy-java-snappy-java-1.0.4.1 snappy-java-1.0.4.1cd snappy-java-1.0.4.1mkdir target拷贝snappy-1.0.4.tar.gz到target目录中返回snappy-java-1.0.4.1目录中修改Makefile文件$(TAR) xvfz $< -C $(TARGET) 替换成 $(TAR) xvf $< -C $(TARGET)保存退出make    编译完成后再target目录下找到snappy-java-1.0.4.1.jar编译成功后到target目录中找到jar包在jar包所在路径下使用下面的命令mvn install:install-file -Dfile=snappy-java-1.0.5.jar -DgroupId=org.xerial.snappy -DartifactId=snappy-java -Dversion=1.0.5 -Dpackaging=jar ls -l /root/.m2/repository/org/xerial/snappy/snappy-java/1.0.4.1/snappy-java-1.0.4.1.jar 倒入leveldbjni-all-1.8.jar mvn install:install-file -Dfile=leveldbjni-all-1.8.jar -DgroupId=org.fusesource.leveldbjni -DartifactId=leveldbjni-all -Dversion=1.8 -Dpackaging=jar 倒入netty-all-4.0.23.Final.jarmvn install:install-file -Dfile=netty-all-4.0.52.Final.jar -DgroupId=io.netty -DartifactId=netty-all -Dversion=4.0.52.Final -Dpackaging=jar 解压缩hadooptar zxvf hadoop-2.7.6-src.tar.gzcd hadoop-2.7.6-src替换配置好的pom文件 编译hadoopmvn package -DskipTests -Pdist,native -Dtar -Dmaven.javadoc.skip=true 编译完成后在用分析扫描工具。扫一下。会有写。So的文件提示。 查看报错文件是否编译成功。可能存在误报ls -l /opt/depadv/depadmin/hadoop-2.7.6/lib/native/libhadoop.so.1.0.0 file /opt/depadv/depadmin/hadoop-2.7.6/lib/native/libhadoop.so.1.0.0 file /opt/depadv/depadmin/hadoop-2.7.6/lib/native/libhdfs.so.0.0.0 看到arm aarch64代表已经成功。是扫描软件误报
  • [问题求助] 在鲲鹏服务器配置hadoop遇见的一些问题,各位好哥哥救救救
    如题,照着尚硅谷的视频学习配置,不过改成了公网的三台配置核心问题:成功启动了集群,所有节点正常,可是公网访问9870无法访问,开工单问华为的工程师,工程师说让我把NN的ip改为公网ip,修改完之后无法启动集群,原因是端口被占用,但是端口根本没有占用。现在是怀疑鲲鹏服务器,公网的端口没法映射到内网的端口上
  • [技术干货] 【Hadoop高级应用课设】基于MindSpore框架端边云全流程开发一个人工智能--识别猫狗应用
    摘要随着近年来深度学习的兴起,卷积神经网络(convolutional neural networks,CNN)得到了广泛的应用。利用CNN对猫狗图像识别,虽然在特征提取以及识别速度方面具有优化性[3],但存在识别率低且计算量复杂、内存消耗大的问题。具体表现为CNN识别猫狗图像对于同一目标发生轻微朝向或位置变化时,识别效果变差,且容易在训练过程中丢失有价值信息,忽略了局部与整体之间的关联性;此外,图像的计算量大也会使得内存资源占有量变大,导致程序整体运行缓慢,影响速率。因为自己具备一定的Python和安卓开发基础,也恰巧在今年参加了华为开发者大会,在当天的参观和学习中了解了华为开源自研的AI框架,于是选择了MindSpore来学习深度学习。一般开始使用别人的代码库,都会先跑一些demo,或者说Hello World的例子,就好像学习一门编程语言一样,第一行代码都是打印Hello World。但实际进行开发其实难度并不大,仅需要解决如何在个人电脑上安装MindSpore、如何训练出一个人工智能模型、如何把训练好的模型重训练得到想要的模型、如何在手机端进行推理和部署解决就行。本文基于华为开源自研的AI框架MindSpore框架端边云全流程开发一个人工智能应用,来使手机识别猫和狗。下面就详细讲述下,利用MindSpore如何解决上述的四个问题。关键词:猫狗图像识别 ; MindSpore; 图像预处理; 目标检测; 卷积神经网络;1.涉及技术知识1.1 人工神经网络人 工 神 经 网 络(Artificial Neural Networks, 简 称ANN)以神经元作为基本的运算单元,会对输入数据先进行线性变换 z=wx+b,随后将变换后的数据进行非线性变换 a=g(z),其中 g() 函数为非线性函数,也叫做激活函数(activation function)。激活函数的选择有很多种,较常用的有 ReLu 和 leaky ReLu。激活函数的作用主要是对通过的信号进行筛选,选择让不让当前信号通过或者以多大通过,并且将数据变成非线性的。对于线性变换中使用的权重,越大的权重表示对神经元而言数据带来越大的影响,当权重取负数时,表示神经元对输入数据产生抑制效果。对权重的修改可以改变神经元的计算,对神经网络的训练就是通过反向传播算法来修改网络权重。从本质上而言,ANN 是对自然界中现存的一些算法的拟合。1.2 卷积神经网络卷积神经网络(Convolutional Neural Network) 是ANN 的一种典型结构,属于前馈神经网络,通常用来处理图片类型的数据。卷积神经网络向前传播计算输出的过程就是前馈的过程,这个过程只进行前向传播计算输出,前一层的输出作为后一层的输入,一直到最后一层得到输出结果,在前向传播过程中并不对网络参数进行调整。在神经网络的反向传播(Back Propagation)过程中,通过对损失函数的计算,将误差从最后一层向前传播,对每一层的参数进行修改,调整整个网络的权值参数。从本质上来说,CNN 能够将输入映射到输出,给定输入和损失函数,构建好网络结构之后,卷积神经网络能够自动进行权重的更新学习。和 ANN 类似,CNN 也是多层结构,每个卷积层可以看作由很多个二维平面类型的卷积核构成,每个卷积核由多个神经元构成。CNN 中的每个卷积层通常设置 n 个卷积核,使得特征图可以共享权重,相对于全连接的神经网络大大减小了参数数目,加快了运算速度 [3]。典型的 CNN 结构由特征抽取器(filter)和池化层(pooling layer)构成。pooling layer 有两种类型,均值池化(mean pooling) 和最大池化(max pooling)。Pooling 操作类似于卷积操作,对划分区域的数据进行特定的运算。1.3 Fine Tune(微调)模型Fine Tune:基于预训练模型进行训练,可以理解为“站在自己的嘴上”进行训练。有一个模型可以识别花,你可以通过少量的图片,在模型上进行Fine Tune,可以识别出树。这样训练的训练是模仿与从头,可以节省大量的计算时间和时间,同时对计算用的数据集要求。在深度学习领域,大量的任务可能基于已有的模型进行微调。补充:预训练模型:顾名思义,选择是训练良好的模型。很多框架会使用大数据集预训练好模型,这样的预训练模型可以有很好的通用性,工程师在预选训练好的基础上进行微调(微调),以赋予模型以特殊要求和能力。而MindSpore Hub也有官方及社区提供训练好的模型可以之间使用。3.实现过程Step1:搭建Python环境;我用的是Python3.7.5版本,在下载好Python并配置好环境变量,完成在命令行的输出helloworid即可。Step2:安装MindSpore使用pip命令安装MindSpore,分两步即可快捷快捷地完成整个安装过程。pip方式安装复制下面的命令,并输入到cmd窗口中,回车运行。届时,安装的pip工具会在电脑上安装MindSpore 1.1.1版本及其运行过程所需的需要软件。整个网络速度,一般在10~20可能出现。pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.1/MindSpore/cpu/windows_x64/mindspore-1.1.1-cp37-cp37m-win_amd64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple注意:由于网络完成的原因导致安装失败,请实验再次输入安装命令。最后会有警告信息,查了一下是pip工具的版本可以升级到最新版本,不影响使用。安装验证拷贝并输入下面的命令,打印MindSpore安装的版本。python -c "import mindspore;print(mindspore.__version__)"1如果输出为 1.1.1,则说明我们电脑上成功安装了 MindSpore。Step3:Fine Tune(微调)模型基于MindSpore在本地进行Fine Tune,对训练模型进行重训练1.工程文件,点击这里可下载,文件大小40M左右。2.下载完后解压到电脑本地(建议D盘根目录),其中包括以下内容:​ 注意:解压的路径不能含有中文,且路径中包含的那个名字不能有空格。​ D:\1小时入门AI开发工程师(X)​ D:\MindSporePetClassification(√)MindSporePetClassification        ├──ADB                   //支持手机与电脑传递文件工具        |        ├──code                  //Fine tune训练代码        |    |                           |    ├──mobilenetV2.ckpt //模型文件        |    |        |    ├──preprocessing_dataset.py //预先处理数据集脚本        |    |        |    ├──requirements.txt //需要的依赖软件包        |    |        |    ├──src              //训练脚本调用的配置、数据处理等脚本        |    |        |    └──train.py         //主训练脚本        │        └──converter             //转换工具MindSpore Lite Converter\3. 下载开源的官方数据集来体验本课程,点击这里可下载,送文件准备解压的工程文件夹MindSporePetClassification中。\4. 拷贝并输入下面命令,把工作路径切换到Fine tune训练代码目录目录。cd /d d:\MindSporePetClassification\code1其中,d:\MindSporePetClassification是解压工程代码文件夹路径。5.如果使用开源的官方数据集体验,拷贝并输入如下命令,执行收集处理数据集脚本preprocessing_dataset.py,对不符合要求的图片进行处理。python preprocessing_dataset.py D:\MindSporePetClassification\kagglecatsanddogs_3367a.zip1其中D:\MindSporePetClassification\kagglecatsanddogs_3367a.zip是数据集文件所在位置。\6. 拷贝并输入如下命令,执行Fine tune脚本train.py ,开始生成模型文件。python train.py1训练过程如下:脚本会自动安装需要的依赖包:opencv-python和matplotlib,用于图形处理,下面会用到,安装完成图所示,整个过程视网络速度,一般在1~2分钟。脚本会在正式训练前从爆弹6张图片载入当前模型文件,对猫狗进行判别,如下,部分猫狗明确数据图不预期,点击图片关闭图片,使脚本正式进入微调训练。先对数据进行特征采集,如下图所示,可能数据集大,我花费20-30分钟,耐心等待。训练时模拟模型的精确进行测试,当训练的模型精度超过当前模型时,就会将图模型抑制下来,如下。训练完成,脚本会再调用之前的图片对微调后的模型进行验证,如下图所示,所有图片分类预期,说明模型精确满足要求,点击图片关闭图片,使脚本继续运行完成文件转换。训练后将Fine tune后的模型文件转换为mindir文件,并在代码文件夹下生成mobilenetv2.mindir文件。微调总结训练是不断重复的过程,通过循环批数据的输入,进行可以计算,逼近损失/最小的那个模型。阅读训练中打印信息增加对深度学习的理解。...epoch[1/30], iter[696] cost: 2047.780, per step time: 2.942, avg loss: 0.364, acc: 0.986, train acc: 0.988update best acc: 0.9866997360484405epoch[2/30], iter[696] cost: 1710.441, per step time: 2.458, avg loss: 0.354, acc: 0.988, train acc: 0.988update best acc: 0.9880012390984098epoch[3/30], iter[696] cost: 1729.818, per step time: 2.485, avg loss: 0.352, acc: 0.991, train acc: 0.990update best acc: 0.9906043902691896...epoch是指训练的迭代数,可以随着迭代数的增加,增加平均损失函数(avg loss)逐步降低,精确(acc)逐步提高。...early stop! the best epoch is 2train total cost 1093.3910 sexport mobilenetv2 MINDIR file at d:\MindSporePetClassification\code\mobilenetv2.mindir...训练最后,达到设置的最高阈值,或者训练最大训练数,训练停止。1分钟,其中包括处理数据和重训练两个漫长的时间,重训练只需要1分钟左右,效率非常高,同时高精度得到了98%+,可以满足日常生活的基本使用。所以Fine Tune对于中国AI工程师开发者来说是一个非常快速生成模型的一种手段。Step4:手机端推理和部署打开APP选择一个Demo中的任何一个Demo图片,如下图所示,由于目前应用还没有启动好,识别结果不准确的,需要导入模型训练好的模型才能准确识别猫狗。注意:打开APP会在手机中自动生成“ PetClassification ”文件夹,可在文件管理类应用中查看。如何训练出一个人工智能模型。在个人电脑上根据之前的MobileNetV2预训练模型+猫狗数据集进行模型的微调(Fine-tune);通过MindSpore Lite的工具链,将模型进行转换并部署到手机上。部署到手机将训练模型好部署到手机,需要把文件导入手机宠物分类文件夹中,有很多方法可以完成这个步骤,有两种方法:亚行方式或导入方式,我采用前面一种。1.亚行方式需使用ADB工具(之前已下载解压可直接使用)在电脑与手机之间传递文件,将adb.exe所在路径添加到环境变量path中。手机通过数据线连接电脑,手机需要开启“USB调试模式”。注意:华为手机一般在设置->系统和更新->开发人员选项->USB调试中打开“USB调试模式”,如果是第一次打开,需要先打开设置->关于手机,连续点击版本号7次以上,会提示“处于开发者模式”,再去打开USB调试模式。复制输入如下命令,导入文件。adb push d:\MindSporePetClassification\converter\pet.ms /sdcard/PetClassification1其中, d:\MindSporePetClassification\converter\pet.ms 代表ms文件所在位置。APP支持如下功能:\1. 图片:选择相册中的猫狗照片识别;2.相机:打开相机拍照识别;\3. 预览:打开摄像头扫描识别:4.选择一个案例:选择以下任意一张猫狗图片识别。结 论经过多天的努力,这个深度学习图像识别的论文终于完成。在这个过程中,我接触了许多新的知识与技术,其中包括深度学习的概念与特点、实战开发、Python开发、安卓开发、数据集的基础用法、如何训练自己的数据集等。对于整个庞大的深度学习生态来说,所用到的技术部分仅仅是其中的冰山一角都可能算不上。但这也已经足以实现所需要的基本的功能了,足见以上各种技术的强大之处。从中也学习到了很多新知识,旧知识也得到了巩固。图像识别的核心要点在于模型的训练、这次实现的算法模型基本上都能够识别准确。由于时间仓促等各种客观因素以及个人对于技术的掌握程度、对概念上的理解可能难免也出现偏差。无论怎样,本实验作为正面或反面教材都能够具备一定的作用。个人认为,深度学习的出现能够将我们社会的资源的利用率极大提高,在整体的上提高人民的生活水平。如此富有潜力的领域对于推动社会发展将会是非常有利的,而这些都应该建立在我们对深度学习的探索与正确的认识上面。因此,希望未来的深度学习的相关领域能够迎来更好的发展。参考文献[1]孙彦,丁学文,雷雨婷,陈静,孔祥鑫.基于SSD_MobileNet_v1网络的猫狗图像识别[J].天津职业技术师范大学学报,2020,30(01):38-44.[2]徐奕哲.基于Resnet-50的猫狗图像识别[J].电子制作,2019(16):44-45+55.[3]柯研 , 王希龙 , 郑钰辉 卷积神经网络图像处理 [J/OL] 电子技术与软件工程 ,2018(22):72-73[2018-12-08][4]刘健 , 袁谦 , 吴广 , 喻晓 卷积神经网络综述 [J] 计算机代 ,2018(11):19-23————————————————原文链接:https://blog.csdn.net/weixin_44589991/article/details/117407528
  • [其他] 分享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)