先电大数据平台操作手册-XianDian-BigData-v21.doc

上传人:s****u 文档编号:12743485 上传时间:2020-05-21 格式:DOC 页数:80 大小:3.32MB
返回 下载 相关 举报
先电大数据平台操作手册-XianDian-BigData-v21.doc_第1页
第1页 / 共80页
先电大数据平台操作手册-XianDian-BigData-v21.doc_第2页
第2页 / 共80页
先电大数据平台操作手册-XianDian-BigData-v21.doc_第3页
第3页 / 共80页
点击查看更多>>
资源描述
南京第五十五所技术开发有限公司 先电大数据平台用户手册用户手册用户手册版本:先电 Cloud-BigData-v2.1发布日期:2017年02月21日南京第五十五所技术开发有限公司1 南京第五十五所技术开发有限公司版本修订说明修订版本修订时间修订说明XD-BigData-v1.32015年10月28日先电大数据平台用户册XD-BigData-v1.3.12016年1月19日增加GRE、VLAN网络的部署方法XD-BigData-v1.42016年4月12日为防止与Java Web中MapReduce开发混淆。删除hadoop案例开发XD-BigData-v2.02016年11月1日更新基于Ambari版本 2.2.2.0二次开发的hadoop平台XD-BigData-v2.0.12016年12月30日更新镜像中与perl版本不兼容问题的解决办法;XD-BigData-v2.0.22017年01月10日升级系统版本为centos7,升级HDP版本至2.4。XD-BigData-v2.0.32017年02月13日更新软件包logoXD-BigData-v2.0.52017年02月21日更新软件包logo,修改文档“8.2.2基于项目的协同过滤”表格参数XD-BigData-v2.12017年04月21日更新用户手册目 录1概述51.1大数据简介51.2先电大数据平台简介52基本环境配置62.1配置主机名72.2修改hosts文件72.3修改yum源72.4配置ntp82.5配置SSH92.6禁用Transparent Huge Pages92.7安装配置JDK103配置ambari-server113.1安装MariaDB数据库113.2安装配置ambari-server124配置ambari-agent145部署管理Hadoop集群145.1部署Hadoop集群145.2HDFS运维管理215.3MapReduce316部署Hive数据仓库336.1部署Hive336.1Hive用户指南357部署Hbase分布式列数据库457.1部署HBase457.2测试验证477.3HBase用户指南478部署Mahout数据挖据工具538.1部署Mahout538.2测试验证549部署Pig数据分析平台559.1部署Pig559.2Pig简介559.3运行案例56第 80 页 共 80 页1 概述1.1 大数据简介“大数据”是一个体量特别大,数据类别特别庞杂的数据集合,并且这样的数据集无法用传统数据库工具或常规软件工具抓取、管理和处理其内容。大数据技术是指从各种各样类型的庞杂数据中,快速的获取有价值的信息的能力。适用于大数据的技术包括大规模并行处理数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台和可扩展的存储系统。Apache的Hadoop项目是可靠的、可扩展的、开源的、分布式计算软件。Apache的Hadoop软件库是允许通过相对简单的程序模型构建计算集群为庞大的数据集进行分布式计算的框架。Hadoop的设计思想可以将计算模式从单节点服务器扩展为数以千计的计算集群,每一个单独的服务器都提供自主的本地计算及存储能力。对于高可用指标而言,Hadoop软件库自身可以通过检测和故障调试从应用层来实现高可用而不需要关心硬件底层的高可用性。所以提供一个计算集群上层的高可用服务对于集群故障修复而言就显得至关重要。1.2 先电大数据平台简介先电大数据平台是基于Ambari进行二次开发的Hadoop分布式集群配置管理工具,该平台通过安装向导来进行集群的搭建,简化了集群供应。同时,他还有一个监控组件,叫做Ambari-Metrics,可以提前配置好关键的运维指标(metrics),然后收集集群的中服务、主机等运行状态等信息,通过WEB的方式显示出来。我们可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。它的用户界面非常直观,用户可以轻松有效地查看信息并控制集群。先电大数据平台支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。平台使用Ganglia收集度量指标,用Nagios支持系统报警。图1.1 Ambari结构图其中Ambari是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent,如图1-1所示。Ambari Server 会读取 Stack 和 Service 的配置文件。当用 Ambari 创建集群的时候,Ambari Server 传送 Stack 和 Service 的配置文件以及 Service 生命周期的控制脚本到 Ambari Agent。Agent 拿到配置文件后,会下载安装公共源里软件包(Redhat,就是使用 yum 服务)。安装完成后,Ambari Server 会通知 Agent 去启动 Service。之后 Ambari Server 会定期发送命令到 Agent 检查 Service 的状态,Agent 上报给 Server,并呈现在 Ambari 的 GUI 上,方便用户了解到集群的各种状态,并进行相应的维护。图 1-1 Ambari架构图2 基本环境配置以两台节点为例来组件Hadoop分布式集群,这里采用的系统版本为Centos7,如下表所示:主机名内存硬盘IP地址角色master8192MB100G192.168.200.131Ambari-Serverslaver14096MB100G192.168.200.133Ambari-Agent2.1 配置主机名# master# hostnamectl set-hostname master# hostnamemaster# slaver1# hostnamectl set-hostname slaver1# hostnameslaver12.2 修改hosts文件# master & slaver1# vi /etc/hosts192.168.200.131 master192.168.200.133 slaver12.3 修改yum源# master将XianDian-BigData-v2.0.2-BASE.iso挂在到/mnt目录下,将其中的ambari解压到/opt目录下,并在master节点配置ftp服务。 注意:因为安装大数据相关软件包时,可能会用到相关依赖软件包,所以需要配置Centos7 Yum源,这里可以采用IAAS中的Centos7 Yum源。# master & slaver1# cd /etc/yum.repos.d/# rm -vf *配置Yum源# vi ambari.repo centos7baseurl=ftp:/192.168.2.10/centos7/( 注:具体的yum源根据真实环境配置,本次为实验室测试环境 )gpgcheck=0enabled=1name=centosambariname=ambaribaseurl=ftp:/10.0.3.61/ambari( 注:具体的yum源根据真实环境配置,本次为实验室测试环境 )enabled=1gpgcheck=0# master# yum -y install httpd将/mnt/文件夹中HDP-2.4-BASE和HDP-UTILS-1.1.0.20两个文件夹拷贝到/var/www/html/目录下。启动httpd服务。# systemctl enable httpd.service# systemctl status httpd.service2.4 配置ntp# master# yum -y install ntp# vi /etc/ntp.conf注释或者删除以下四行server 0.centos.pool.ntp.org iburstserver 1.centos.pool.ntp.org iburstserver 2.centos.pool.ntp.org iburstserver 3.centos.pool.ntp.org iburst添加以下两行server 127.127.1.0 fudge 127.127.1.0 stratum 10#systemctl enable ntpd#systemctl start ntpd# slaver1# yum -y install ntpdate# ntpdate master# systemctl enable ntpdate2.5 配置SSH# master & slaver1检查2个节点是否可以通过无密钥相互访问,如果未配置,则进行SSH无密码公钥认证配置。如下:# yum install openssh-clients# ssh-keygen# ssh-copy-id master.hadoop# ssh-copy-id slaver1.hadoopssh登录远程主机查看是否成功# ssh master.hadoop# exit# ssh slaver1.hadoop# exit2.6 禁用Transparent Huge Pages操作系统后台有一个叫做khugepaged的进程,它会一直扫描所有进程占用的内存,在可能的情况下会把4kpage交换为Huge Pages,在这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能,并且,这个过程对于应用是透明的,在应用层面不可控制,对于专门为4k page优化的程序来说,可能会造成随机的性能下降现象。# master & slaver1# cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise never# echo never /sys/kernel/mm/transparent_hugepage/enabled# echo never /sys/kernel/mm/transparent_hugepage/defrag# cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise never重启后失效,需要再次执行2.7 安装配置JDK# master # mkdir /usr/jdk64/ # mount -o loop XianDian-BigData-v2.0.2-BASE.iso /mnt/# cd /mnt/# tar -zxvf jdk-8u77-linux-x64.tar.gz -C /usr/jdk64/# vi /etc/profileexport JAVA_HOME=/usr/jdk64/jdk1.8.0_77export PATH=$JAVA_HOME/bin:$PATH# source /etc/profile#java versionjava version 1.8.0_77Java(TM) SE Runtime Environment (build 1.8.0_77-b03)Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)# slaver1#mkdir /usr/jdk64/#scp 172.24.14.106:/mnt/jdk-8u77-linux-x64.tar.gz .# tar -zxvf jdk-8u77-linux-x64.tar.gz -C /usr/jdk64/# vi /etc/profileexport JAVA_HOME=/usr/jdk64/jdk1.8.0_77export PATH=$JAVA_HOME/bin:$PATH# source /etc/profile#java versionjava version 1.8.0_77Java(TM) SE Runtime Environment (build 1.8.0_77-b03)Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)3 配置ambari-server# master# yum -y install ambari-server3.1 安装MariaDB数据库# master# yum install mariadb mariadb-server mysql-connector-java启动服务# systemctl enable mariadb# systemctl start mariadb配置MySQL#mysql_secure_installation按enter确认后设置数据库root密码,我们这里设置为“bigdata”Remove anonymous users? Y/n yDisallow root login remotely? Y/n nRemove test database and access to it? Y/n yReload privilege tables now? Y/n y创建ambari数据库# mysql -uroot -pbigdataMariaDB (none) create database ambari;MariaDB (none) grant all privileges on ambari.* to ambarilocalhost identified by bigdata;MariaDB (none) grant all privileges on ambari.* to ambari% identified by bigdata;MariaDB (none) use ambari;MariaDB ambari source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sqlMariaDB ambari Bye3.2 安装配置ambari-server# master# ambari-server setupWARNING: SELinux is set to permissive mode and temporarily disabled.OK to continue y/n (y)? Customize user account for ambari-server daemon y/n (n)? nChecking JDK.1 Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 82 Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 73 Custom JDK=Enter choice (1): 3Path to JAVA_HOME: /usr/jdk64/jdk1.8.0_77Validating JDK on Ambari Server.done.Completing setup.Configuring database. Enter advanced database configuration y/n (n)? yConfiguring database.=Choose one of the following options:1 - PostgreSQL (Embedded)2 - Oracle3 - MySQL4 - PostgreSQL5 - Microsoft SQL Server (Tech Preview)6 - SQL Anywhere=Enter choice (1): 3Hostname (localhost): Port (3306): Database name (ambari): Username (ambari): Enter Database Password (bigdata): Proceed with configuring remote database connection properties y/n (y)? Ambari Server setup completed successfully.启动ambari-server服务# ambari-server start登陆界面http:/192.168.200.131:8080/登录用户名密码为admin:admin4 配置ambari-agent# master & slaver1# yum -y install ambari-agent# vi /etc/ambari-agent/conf/ambari-agent.iniserverhostname= master# ambari-agent restart# tail -f /var/log/ambari-agent/ambari-agent.logINFO 2017-01-12 09:44:20,919 Controller.py:265 - Heartbeat response received (id = 1340)INFO 2017-01-12 09:44:30,820 Heartbeat.py:78 - Building Heartbeat: responseId = 1340, timestamp = 1484214270820, commandsInProgress = False, componentsMapped = True5 部署管理Hadoop集群5.1 部署Hadoop集群登陆界面http:/IP Address:8080/,用户名密码为admin:admin。接下来就可以启动安装向导,创建集群,安装服务。关于XianDian-BigData 的软件包进行了分开打包。XianDian-BigData-v2.0.2-BASE.iso软件包包含HDFS、MapReduce2、YARN、Tez、Hive、HBase、Pig、Sqoop、Zookeeper、Storm、Flume、Ambari Metrics、Kerberos、Mahou、Spark等服务组件。XianDian-BigData-v2.0.2-EXT.iso软件包包含了accumulo、atlas、falcon、kafka、knox、oozie、ranger、slider等服务组件。这里如果需要这些服务组件,则需要添加一个yum配置文件,如下:# vi HDP-EXTEND.repoHDP-2.4-EXTENDname=HDP-2.4-EXTENDbaseurl=http:/master/HDP-2.4-EXTENDenabled=1gpgcheck=0这里要设置Grafana Admin的密码。部署成功后,便可成功进入界面。在主界面中,可以查看集群状态监控信息。在HadoopMaster的终端执行jps命令,在打印结果中会看到master上运行的进程,这些进程表示主节点进程启动成功。在HadoopSlave 的终端执行jps命令,也会看到相应的进程:Slaver1:5.2 HDFS运维管理5.2.1 HDFS命令手册1. 概述切换到hdfs用户,可以通过“hadoop fs -”命令来查看HDFS文件系统的帮助命令,通过提示的命令来对文件系统进行管理。命令如下:$ hadoop fs -执行结果如下:所有的hadoop命令均由bin/hadoop脚本引发。不指定参数运行hadoop脚本会打印所有命令的描述。用法:hadoop -config confdir COMMAND GENERIC_OPTIONS COMMAND_OPTIONSHadoop有一个选项解析框架用于解析一般的选项和运行类。命令选项描述-config confdir覆盖缺省配置目录。缺省是$HADOOP_HOME/confGENERIC_OPTIONS多个命令都支持的通用选项COMMAND 命令选项S各种各样的命令和它们的选项会在下面提到。这些命令被分为 用户命令 管理命令两组。2. 权限管理在Hadoop集群中,只有hdfs用户才有对HDFS文件系统的管理权限,当其它用户对文件系统进行操作,需要给其赋予相应的权限,这里为了方便操作,将所有用户的读写执行权限全部放开,命令如下:# su hdfs$ hadoop fs -chmod -R 777 /3. 常规选项下面的选项被 dfsadmin, fs, fsck和 job支持。 应用程序要实现 Tool来支持常规选项。GENERIC_OPTION描述-conf指定应用程序的配置文件。-D为指定property指定值value。-fs指定namenode。-jt指定jobtracker。只适用于job。-files指定要拷贝到mapreduce集群的文件的逗号分隔的列表。只适用于job。-libjars指定要包含到classpath中的jar文件的逗号分隔的列表。只适用于job。-archives指定要被解压到计算节点上的档案文件的逗号分割的列表。只适用于job。4. 用户命令hadoop集群用户的常用命令。archive创建一个hadoop档案文件。参考 Hadoop Archives.用法:hadoop archive -archiveName NAME -p * 命令选项描述-archiveNameNAME要创建的档案的名字。-p 父路径,格式与正则表达式一致。src父路径下面需要创建档案的文件名(可多个)dest保存档案文件的目标目录。distcp递归地拷贝文件或目录。参考DistCp指南以获取等多信息。用法:hadoop distcp 命令选项描述srcurl源Urldesturl目的Urlfs用法:hadoop fs GENERIC_OPTIONS COMMAND_OPTIONS运行一个常规的文件系统客户端。fsck运行HDFS文件系统检查工具。参考Fsck了解更多。用法:hadoop fsck GENERIC_OPTIONS -move | -delete | -openforwrite -files -blocks -locations | -racks命令选项描述检查的起始目录。-move移动受损文件到/lost+found-delete删除受损文件。-openforwrite打印出写打开的文件。-files打印出正被检查的文件。-blocks打印出块信息报告。-locations打印出每个块的位置信息。-racks打印出data-node的网络拓扑结构。jar运行jar文件。用户可以把他们的Map Reduce代码捆绑到jar文件中,使用这个命令执行。用法:hadoop jar mainClass args.job用于和Map Reduce作业交互和命令。用法:hadoop job GENERIC_OPTIONS -submit | -status | -counter | -kill | -events | -history all | -list all | -kill-task | -fail-task 命令选项描述-submit提交作业-status打印map和reduce完成百分比和所有计数器。-counter打印计数器的值。-kill杀死指定作业。-events打印给定范围内jobtracker接收到的事件细节。-historyall-history打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如成功的任务,做过的任务尝试等信息可以通过指定all选项查看。-listall-listall显示所有作业。-list只显示将要完成的作业。-kill-task杀死任务。被杀死的任务不会不利于失败尝试。-fail-task使任务失败。被失败的任务会对失败尝试不利。pipes运行pipes作业。用法:hadoop pipes -conf -jobconf , , . -input -output -jar -inputformat -map -partitioner -reduce -writer -program -reduces 命令选项描述-conf作业的配置-jobconf,.增加/覆盖作业的配置项-input输入目录-output输出目录-jarJar文件名-inputformatInputFormat类-mapJavaMap类-partitionerJavaPartitioner-reduceJavaReduce类-writerJavaRecordWriter-program可执行程序的URI-reducesreduce个数version打印版本信息。用法:hadoop versionCLASSNAMEhadoop脚本可用于调调用任何类。用法:hadoop CLASSNAME运行名字为CLASSNAME的类。5. 管理命令hadoop集群管理员常用的命令。balancer运行集群平衡工具。管理员可以简单的按Ctrl-C来停止平衡过程。参考Rebalancer了解更多。用法:hadoop balancer -threshold 命令选项描述-threshold 磁盘容量的百分比。这会覆盖缺省的阀值。daemonlog获取或设置每个守护进程的日志级别。用法:hadoop daemonlog -getlevel 用法:hadoop daemonlog -setlevel 命令选项描述-getlevel打印运行在的守护进程的日志级别。这个命令内部会连接http:/logLevel?log=-setlevel设置运行在的守护进程的日志级别。这个命令内部会连接http:/logLevel?log=datanode运行一个HDFS的datanode。用法:hadoop datanode -rollback命令选项描述-report报告文件系统的基本信息和统计信息。-safemode enter | leave | get | wait安全模式维护命令。安全模式是Namenode的一个状态,这种状态下,Namenode 1. 不接受对名字空间的更改(只读)2. 不复制或删除块Namenode会在启动时自动进入安全模式,当配置的块最小百分比数满足最小的副本数条件时,会自动离开安全模式。安全模式可以手动进入,但是这样的话也必须手动关闭安全模式。-refreshNodes重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。-finalizeUpgrade终结HDFS的升级操作。Datanode删除前一个版本的工作目录,之后Namenode也这样做。这个操作完结整个升级过程。-upgradeProgress status | details | force请求当前系统的升级状态,状态的细节,或者强制升级操作进行。-metasave filename保存Namenode的主要数据结构到hadoop.log.dir属性指定的目录下的文件。对于下面的每一项,中都会一行内容与之对应1. Namenode收到的Datanode的心跳信号2. 等待被复制的块3. 正在被复制的块4. 等待被删除的块-setQuota .为每个目录 设定配额。目录配额是一个长整型整数,强制限定了目录树下的名字个数。命令会在这个目录上工作良好,以下情况会报错:1. N不是一个正整数,或者2. 用户不是管理员,或者3. 这个目录不存在或是文件,或者4. 目录会马上超出新设定的配额。-clrQuota .为每一个目录清除配额设定。命令会在这个目录上工作良好,以下情况会报错:1. 这个目录不存在或是文件,或者2. 用户不是管理员。如果目录原来没有配额不会报错。-help cmd显示给定命令的帮助信息,如果没有给定命令,则显示所有命令的帮助信息。secondarynamenode运行HDFS的secondary namenode。用法:hadoop secondarynamenode -checkpoint force | -geteditsize命令选项描述-checkpoint force如果EditLog的大小 = fs.checkpoint.size,启动Secondary namenode的检查点过程。 如果使用了-force,将不考虑EditLog的大小。-geteditsize打印EditLog大小。5.2.2 进程管理1. 查看当前系统中启动的进程命令如下:# jps执行结果如下:2. 重启NameNode和DateNode进程hadoop-daemon.sh脚本是启动和停止hadoop后台程序,“config”参数指定启动程序时用到的配置文件目录。命令如下:# /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh -config /usr/hdp/current/hadoop-client/conf stop namenode/datenode# /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh -config /usr/hdp/current/hadoop-client/conf start namenode/datenode5.2.3 可靠性管理Hadoop集群中的主机在某些情况下会出现宕机或者系统损坏的问题,一旦遇到这些问题,HDFS文件系统中的数据文件难免会产生损坏或者丢失,为了保证HDFS文件系统的可靠性,可以采取以下策略:1. 冗余副本策略更改集群冗余副本的复制因子为5,从而避免某台节点主机损坏导致数据丢失的情况,这里我们有两种方式来设置复制因子。第一种是通过WEB界面,进入到HDFS配置中修改Block replication的参数值。第二种方式是在Shell命令行模式下,修改hdfs-site.xml配置文件,将“dfs.replication”的值设置为5,然后重启NameNode和DataNode进程。# vi /etc/hadoop/2.3.6.0-3796/0/hdfs-site.xml dfs.replication 5 2. 安全模式当在进行系统维护或者集群维护时,不希望用户进行再去操作HDFS文件系统中文件,这时候需要手动将NameNode设置成安全模式的状态。该操作需要HDFS管理用户来进行实现,即hdfs用户。命令如下:$ hadoop dfsadmin -safemode enter$ hadoop dfsadmin -safemode get执行结果如下:Safe mode is ON3. 回收站设置HDFS文件系统回收站中的文件彻底删除的时间间隔为7天。进入到HDFS配置中修改“fs.trash.interval”的值为10080(分钟)。注:当该值为0时,表示禁用回收站的功能。4. 快照管理为HDFS文件系统中“/1daoyun”目录创建快照,首先需要设置该目录可进行快照功能,然后再进行创建快照。创建完成后,创建一个恢复文件夹,通过cp命令可以恢复快照,如下:5.3 MapReduce5.3.1 运行案例进入/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录中,存在一个hadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar 的案例JAR包,其所自带的案例如下:这里,我们以运行一个圆周率的计算为例:# cd /usr/hdp/2.4.3.0-227/hadoop-mapreduce/# hadoop jar hadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar pi 5 56 部署Hive数据仓库6.1 部署Hive进入先电大数据平台主界面,点击左侧的动作按钮,添加Hive服务。6.1 Hive用户指南6.1.1 测试验证启动hive客户端# su hive$ hive$ logout退出hive用户6.1.2 hive 命令参数usage: hive -d,-define Variable subsitution to apply to hive commands. e.g. -d A=B or -define A=B -database Specify the database to use -e SQL from command line -f SQL from files -H,-help Print help information -hiveconf Use value for given property -hivevar Variable subsitution to apply to hive commands. e.g. -hivevar A=B -i Initialization SQL file -S,-silent Silent mode in interactive shell -v,-verbose Verbose mode (echo executed SQL to the console)1. hive交互模式hive show tables; #查看所有表名hive show tables ad* #查看以ad开头的表名hive set 命令 #设置变量与查看变量;hive set -v #查看所有的变量hive set hive.stats.atomic #查看hive.stats.atomic变量hive set hive.stats.atomic=false #设置hive.stats.atomic变量hive dfs -ls #查看hadoop所有文件路径hive dfs -ls /user/hive/warehouse/ #查看hive所有文件hive dfs -ls /user/hive/warehouse/ptest #查看ptest文件hive source file #在client里执行一个hive脚本文件hive quit #退出交互式shellhive exit #退出交互式shellhive reset #重置配置为默认值hive !ls #从Hive shell执行一个shell命令2. 操作及函数查看函数:hive show functions; 正则查看函数名:show functions xpath.*; 查看具体函数内容:describe function xpath; | desc function xpath;3. 字段类型Hive支持基本数据类型和复杂类型,基本数据类型主要有数值类型(INT、FLOAT、DOUBLE)、布尔型和字符串,复杂类型有三种:ARRAY、MAP 和 STRUCT。4. 基本数据类型TINYINT: 1个字节SMALLINT: 2个字节INT: 4个字节 BIGINT: 8个字节BOOLEAN: TRUE/FALSE FLOAT: 4个字节,单精度浮点型DOUBLE: 8个字节,双精度浮点型STRING 字符串5. 复杂数据类型ARRAY: 有序字段MAP: 无序字段STRUCT: 一组命名的字段6.1.3 表类型hive表大致分为普通表、外部表、分区表三种。1. 普通表创建表hive create table tb_person(id int, name string);创建表并创建分区字段dshive create table tb_stu(id int, name string) partitioned by(ds string);查看分区hive show partitions tb_stu;显示所有表hive show tables;按正则表达式显示表,hive show tables tb_*;表添加一列hive alter table tb_person add columns (new_col int);添加一列并增加列字段注释hive alter table tb_stu add columns (new_col2 int comment a comment);更改表名hive alter table tb_stu rename to tb_stu;删除表(hive只能删分区,不能删记录或列 )hive drop table tb_stu;对于托管表,drop 操作会把元数据和数据文件删除掉,对于外部表,只是删除元数据。如果只要删除表中的数据,保留表名可以在 HDFS 上删除数据文件:hive dfs -rmr /user/hive/warehouse/mutill1/*将本地/home/hadoop/ziliao/stu.txt文件中的数据加载到表中, stu.txt文件数据如下:1 zhangsan2 lisi3 wangwu将文件中的数据加载到表中hive load data local inpath /home/hadoop/ziliao/stu.txt overwrite into table tb_person;加载本地数据,同时给定分区信息hive load data local inpath /home/hadoop/ziliao/stu.txt overwrite into table tb_stu partition (ds=2008-08-15);备注:如果导入的数据在 HDFS 上,则不需要 local 关键字。托管表导入的数据文件可在数据仓库目录“user/hive/warehouse/”中看到。查看数据hive dfs -ls /user/hive/warehouse/tb_stuhive dfs -ls /user/hive/warehouse/tb_person2. 外部表external关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(location),hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。eg. 创建外部表:hive create external table tb_record(col1 string, col2 string) row format delimited fields terminated by t location /user/hadoop/input;这样表tb_record的数据就是hdfs:/user/hadoop/input/* 的数据了。3. 分区表分区是表的部分列的集合, 可以为频繁使用的数据建立分区, 这样查找分区中的数据时就不需要扫描全表, 这对于提高查找效率很有帮助。创建分区:create table log(ts bigint,line string) partitioned by(name string);插入分区:insert overwrite table log partition(name=xi
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!