未分类

测试数据和表数据1Bob12002Black21003BigDataBoy5600表createtablehive_db(idint,namestring,moneyint)rowformatdelimitedfieldsterminatedby'\t';基本查询格式select...from...语法格式规范HQL语言大小写不敏感HQL可以写一行,也可以写多行关键字不能被缩写也不能分行各子句一般要分行写使用缩进和换行提高语句的可读性全表和特定列查询全表查询select*from表名;特定列查询select字段名,字段名from表名;列别名关键字asselect字段名as列别名,字段名as列别名from表名算数运算符运算符描述A+BA加BA-BA减BA*BA乘BA/BA除BA%BA对B取余数hive>select1+6;OK7Timetaken:0.117seconds,Fetched:1row(s)hive>select2&6;OK2Timetaken:0.144seconds,Fetched:1row(s)hive>select~6;OK-7Timetaken:0.153seconds,Fetched:1row(s)常用函数求行数count(*),count()还能进行其他的统计hive>selectcount(*)fromhive_db;(会跑一个MapReduce任务)QueryID=root_20200119201909_4eaa334c-5e26-46e4-8ff9-ef0e4a703394Totaljobs=1...Stage-Stage-1:Map:1Reduce:1CumulativeCPU:4.27secHDFSRead:6799HDFSWrite:2SUCCESSTotalMapReduceCPUTimeSpent:4seconds270msecOK4Timetaken:131.007seconds,Fetched:1row(s)最大值max()hive>selectmax(money)fromhive_db;QueryID=root_20200119202349_2d1c7587-554e-4089-8b99-b76cb08ddab1...Stage-Stage-1:Map:1Reduce:1CumulativeCPU:4.06secHDFSRead:6908HDFSWrite:5SUCCESSTotalMapReduceCPUTimeSpent:4seconds60msecOK5600Timetaken:125.705seconds,Fetched:1row(s)最小值min()hive>selectmin(money)fromhive_db;总和sum()hive>selectsum(money)fromhive_db;平均值avg()hive>selectavg(money)fromhive_db;比较运算(Between/In/IsNull)操作符支持的数据类型描述A=B基本数据类型如果A=B,返回True,反之返回FalseA<=>B基本数据类型A、B有一个为NULL,则返回NULL;A、B都为NULL,返回True;A=B,返回True,反之返回False;A<>B,A!=B基本数据类型A、B有一个为NULL,则返回NULL;如果A不等于B,则返回True,反之返回FalseA<B基本数据类型A、B有一个为NULL,则返回NULL;A小于B,返回True,反之返回FalseA<=B基本数据类型A、B有一个为NULL,则返回NULL;A小于等于B,返回True,反之返回FalseA>B基本数据类型A、B有一个为NULL,则返回NULL;A大于B,返回True,反之返回FalseA>=B基本数据类型A、B有一个为NULL,则返回NULL;A大于等于B,返回True,反之返回FalseA[NOT]BETWEENBANDC基本数据类型A、B、C任一为NULL,则结果为NULL;如果A的值在B、C之间,则返回True,反之返回False;加上NOT,则是相反的效果AISNULL所有数据类型如果A等于NULL,则返回TRUE,反之返回FALSEAISNOTNULL所有数据类型如果A不等于NULL,则返回TRUE,反之返回FALSEAIN(数值1,数值2)基本数据类型显示该字段等于IN()里数值的数据A[NOT]LIKEBSTRING类型B是SQL下简单的正则表达式,与A匹配,则返回True,反之返回False;使用NOT达到相反的效果ARLIKEB,AREGEXPBSTRING类型B是一个正则表达式,如果A与其匹配,则返回TRUE;反之返回FALSE。匹配使用的是JDK中的正则表达式接口实现的,因为正则也依据其中的规则。例如,正则表达式必须和整个字符串A相匹配,而不是只需与其字符串匹配。简单例子#工资在2000到6000之间的hive>select*fromhive_dbwheremoneybetween2000and6000;OK2Black21003BigDataBoy5600Timetaken:0.118seconds,Fetched:2row(s)#查询money为NULL的hive>select*fromhive_dbwheremoneyisnull;OKNULLNULLNULLTimetaken:0.227seconds,Fetched:1row(s)#查询money为2100和5600的数据hive>select*fromhive_dbwheremoneyin(2100,5600);OK2Black21003BigDataBoy5600Timetaken:0.21seconds,Fetched:2row(s)Like和RLikeLike使用的是SQL语法下的匹配%代表零个或多个字符(任意个字符)。_代表一个字符%o:匹配o开头的o%:匹配o结尾的%o%:匹配包含o的_2%:匹配开头第二位是2的__2_:匹配4位,但第3位是2的#匹配name字段带o的hive>select*fromhive_dbwherenamelike'%o%';OK1Bob12003BigDataBoy5600Timetaken:0.092seconds,Fetched:2row(s)RLike使用的Java下的正则表达式#匹配money中带有12的hive>select*fromhive_dbwheremoneyrlike'12';OK1Bob1200Timetaken:0.075seconds,Fetched:1row(s)逻辑运算符(And/Or/Not)操作符含义And并Or或Not否简单例子#查询money大于1000并name是Bob的hive>select*fromhive_dbwheremoney>1000andname='Bob';OK1Bob1200Timetaken:0.145seconds,Fetched:1row(s)limit语句limit子句用于限定返回的行数hive>select*fromhive_dblimit2;OK1Bob12002Black2100Timetaken:0.196seconds,Fetched:2row(s)where语句将不满足条件的过滤掉where子句紧随from子句#查询money大于2000的hive>select*fromhive_dbwheremoney>2000;OK2Black21003BigDataBoy5600Timetaken:0.172seconds,Fetched:2row(s)

未分类

数据导入Load方式向表中装载数据语法:loaddata[loacl]inpath'文件'[overwriter]intotable表名[partition(指定分区)]loaddata:加载数据[loacl]:本地加载,不写表示从HDFS上加载,注意从HDFS上加载的数据,原文件会被移动inpath‘文件’:文件路径[overwriter]:overwriter表示覆盖重写[partition(指定分区)]:如果是分区表需要指定分区则加上#从HDFS上导入追加loaddatainpath'/student.txt'intotablehive_db;#从HDFS上导入覆盖loaddatainpath'/student.txt'overwriteintotablehive_db;通过查询语句向表中插入数据(Insert)首先创建一张分区表createtabletest_p(idint,namestring)partitionedby(daystring)rowformatdelimitedfieldsterminatedby'\t';基本插入数据语法:insertintotable表名字段values(值,值)#它会提交一个MapReduce任务hive>insertintotabletest_ppartition(day="08")values(1,"tp");QueryID=root_20200108180532_9006dc63-78cd-4afc-9527-028387b366aaTotaljobs=3LaunchingJob1outof3Numberofreducetasksissetto0sincethere'snoreduceoperator.....Stage-Stage-1:Map:1CumulativeCPU:3.35secHDFSRead:3765HDFSWrite:79SUCCESSTotalMapReduceCPUTimeSpent:3seconds350msecOKTimetaken:84.034seconds基本模式插入(根据单张表查询结果)#语法insertinto|overwritertable指定表#结果插入的表select字段from表名;#查询的表#实例会跑一个MapReduce任务hive>insertintotabletest_ppartition(day="9")>select*fromhive_db;QueryID=root_20200109100135_356015e5-d696-43cd-a6af-68e29fa246e2Totaljobs=3LaunchingJob1outof3Numberofreducetasksissetto0sincethere'snoreduceoperator......TotalMapReduceCPUTimeSpent:2seconds350msecOKTimetaken:79.799seconds多插入模式(根据多张表查询结果)查询的结果字段需要与插入的字段对应,不能多也不能少#这个会提交一个MapReduce任务fromhive_dbinsertintotabletest_ppartition(day="15")select*insertintotabletest_ppartition(day="16")select*;创表时通过location指定加载数据的位置创建表createtablelo_db(idint,namestring)rowformatdelimitedfieldsterminatedby'\t'location'/hive';上传数据到/hive目录下[root@master~]#hadoopfs-putst.txt/hive查看表的数据hive>select*fromlo_db;OK4aa5bb6Timetaken:0.119seconds,Fetched:3row(s)使用import导入数据数据必须是export导出的(应为会有元数据)语法:importtable表名from路径;表可以不存在路径下使用export导出的所有数据hive>importtablestu1from'/export';Copyingdatafromhdfs://192.168.176.65:9000/export/dataCopyingfile:hdfs://192.168.176.65:9000/export/data/student.txtLoadingdatatotabletest.stu1OKTimetaken:0.62seconds数据导出使用insert导出数据语法insertoverwrite[local]directory'/root'-->导出的路径去掉loacl就是导出到HDFSrowformatdelimitedfieldsterminatedby'\t'-->导出的分隔符select*fromhive_db;-->需要导出的内容使用#执行HQL跑一个MR程序hive>insertoverwritelocaldirectory'/root/hive'>rowformatdelimitedfieldsterminatedby'\t'>select*fromhive_db;QueryID=root_20200115161857_48aa5b8a-1bd4-45b9-9642-9b7135bf9009Totaljobs=1...Copyingdatatolocaldirectory/root/hiveCopyingdatatolocaldirectory/root/hiveMapReduceJobsLaunched:Stage-Stage-1:Map:1CumulativeCPU:1.91secHDFSRead:3034HDFSWrite:21SUCCESSTotalMapReduceCPUTimeSpent:1seconds910msecOKTimetaken:77.28seconds#查看本地文件[root@masterhive]#pwd/root/hive[root@masterhive]#ll总用量4-rw-r--r--.1rootroot211月1516:20000000_0[root@masterhive]#cat000000_01Bob2Black3Jeck使用Hadoopshell命令下载数据hive>dfs-get/hive/st.txt/root/hive;使用Hiveshell命令导出格式bin/hive-e‘HQL语句或HQL文件’>导出的文件名[root@mastersrc]#hive-e'select*fromtest.hive_db'>/root/hive/a.txtLogginginitializedusingconfigurationinjar:file:/usr/local/src/hive/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.propertiesOKTimetaken:12.103seconds,Fetched:3row(s)#查看导出wenjian[root@masterhive]#cata.txt1Bob2Black3Jeck[root@masterhive]#pwd/root/hiveexport导出数据(不是很常用)格式:exporttable表名toHDFS路径;hive>exporttablehive_dbto'/export';Copyingdatafromfile:/usr/local/src/hive/tmpdir/hive/8edfc4e3-3832-43c1-9d4b-d863ef85d0eb/hive_2020-01-15_16-41-17_608_2632318306276412864-1/-local-10000/_metadataCopyingfile:file:/usr/local/src/hive/tmpdir/hive/8edfc4e3-3832-43c1-9d4b-d863ef85d0eb/hive_2020-01-15_16-41-17_608_2632318306276412864-1/-local-10000/_metadataCopyingdatafromhdfs://192.168.176.65:9000/user/hive/warehouse/test.db/hive_dbCopyingfile:hdfs://192.168.176.65:9000/user/hive/warehouse/test.db/hive_db/student.txtOKTimetaken:0.601seconds导出的信息结构export\|__metadata元数据文件|_data\|_导出的数据清空表数据只能清空内部表(管理表)数据,不能清空外部表数据truncatetable表名hive>truncatetablestu1;OK

未分类

创建数据库数据库的创建#直接创建数据库默认在HDFS的/user/hive/warehouse里面createdatabasehive_db;#指定数据存放的位置路径会在HDFS上#注意路径最后要加上库名,不然HDFS上无法查看到创建的库文件createdatabasehive_dblocation'/hive/hive_db.db'#ifnotexists判断是否存在,为了避免报错createdatabaseifnotexistshive;数据库的查询显示数据库showdatabases;模糊查询showdatabaseslike'hiv*';查询数据库的信息hive>descdatabasehive_db;OKhive_dbhdfs://192.168.176.65:9000/hive/hive.dbrootUSERTimetaken:0.019seconds,Fetched:1row(s)#可加一个参数extended,查看详细信息#hive>descdatabaseextendedhive_db;数据库的修改说是修改,其实只能增加数据库的额外属性,只要数据库创建好,使用desc查询出来的都不能改#dbproperties()里的额外属性可以自己定义hive>alterdatabasehive_dbsetdbproperties('Ctime'='2020.6.16');OKTimetaken:0.132seconds#创建的额外属性必须加extended才能查询出来hive>descdatabaseextendedhive_db;OKhive_dbhdfs://192.168.176.65:9000/hive/hive.dbrootUSER{Ctime=2020.6.16}Timetaken:0.016seconds,Fetched:1row(s)数据库删除删除空的数据库dropdatabase数据库名;删除不为空的数据库(联动删除)(强制删除)dropdatabase数据库名cascade;表的操作创建表完整的创表语法格式CREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name[(col_namedata_type[COMMENTcol_comment],...)][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUSTEREDBY(col_name,col_name,...)[SORTEDBY(col_name[ASC|DESC],...)]INTOnum_bucketsBUCKETS][ROWFORMATrow_format][STOREDASfile_format][LOCATIONhdfs_path]精简入门格式#指定创表表名CREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name#创字段[(col_namedata_type[COMMENTcol_comment],...)]#分隔符[ROWFORMATrow_format]字段说明CREATETABLE:创建一个指定名字的表,如果名相同,这会抛出一个异常[EXTERNAL]:可以创建一个外部表,在建表的同时指定一个实际的路径(LOCATION),Hive在创建内部表时,会将数据移动到Hive指定的路径,若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除数据的时候,内部表的元数据和数据会一起删除,而外部表只删除元数据,不删除数据。[COMMENT]:为表的字段添加注释[ROWFORMAT]:指定分隔符。比如rowformatdelimitedfieldsterminatedby"\t";修改表修改表名#格式altertable旧表名renameto新表名;hive>altertablehive_dbrenametotest_db;OKTimetaken:0.237seconds表的列操作修改列名只能一列一列的修改altertable表名changecolumn旧列名新列名新列类型;hive>altertabletest_dbchangecolumniddb_idint;OKTimetaken:0.239seconds添加、替换列名可以几列同时操作#添加列名altertable表名addcolumns(列名类型,列名类型);hive>altertabletest_dbaddcolumns(addrstring,ageint);OKTimetaken:0.211seconds#替换列名替换列名是把表原来的所有列都替换了留下替换语句指定的列名altertable表名replacecolumns(列名类型,列名类型)hive>altertabletest_dbreplacecolumns(idint,yearint);OKTimetaken:0.267seconds##查看表的结构只留下了替换语句的字段hive>desctest_db;OKidintyearintmouthstring#分区字段#PartitionInformation#col_namedata_typecommentmouthstringTimetaken:0.048seconds,Fetched:8row(s)增加、删除表的分区#增加表的分区altertable表名addpartition(指定分区字段)hive>altertabletest_dbaddpartition(mouth="04");OKTimetaken:0.225seconds#删除表的分区altertable表名droppartition(指定分区字段)hive>altertabletest_dbdroppartition(mouth="04");Droppedthepartitionmouth=04OKTimetaken:0.312seconds删除表语法:droptable表名hive>droptabletest_db;OKTimetaken:0.439seconds

未分类

分区表说明分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多.分区表的操作创建分区表语法partitionby(字段类型)#创分区表语句createtablehive_db(idint,namestring)partitionedby(mouthstring)rowformatdelimitedfieldsterminatedby'\t';#查看分区表格式,发现定义的分区也是一个字段hive>deschive_db;OKidintnamestringmouthstring#一个字段#PartitionInformation#col_namedata_typecommentmouthstringTimetaken:0.106seconds,Fetched:8row(s)添加分区一次添加一个分区hive>altertablehive_dbaddpartition(mouth="20200109");OKTimetaken:0.356seconds一次添加多个分区注意空格分隔hive>altertablehive_dbaddpartition(mouth="20200111")partition(mouth="20200110");OKTimetaken:0.356seconds删除分区一次删除一个分区hive>altertablehive_dbdroppartition(mouth="202001407");Droppedthepartitionmouth=202001407OKTimetaken:0.601seconds一次删除多个分区注意逗号分隔hive>altertablehive_dbdroppartition(mouth="20200110"),partition(mouth="20200111");Droppedthepartitionmouth=20200110Droppedthepartitionmouth=20200111OKTimetaken:0.371seconds加载数据到分区表#加载loaldatalocalinpath'/root/student.txt'intotablehive_dbpartitionh(mouth=20200107);#查看内容发现分区也显示出来了hive>select*fromhive_db;OK1Bob2020014072Black2020014073Jeck202001407Timetaken:0.103seconds,Fetched:3row(s)查看HDFS上的Hive分区表数据查看分区数据查询全部数据#会把多个分区数据一起查询出来hive>select*fromhive_db;OK1Bob2020014072Black2020014073Jeck2020014071Bob2020014082Black2020014083Jeck202001408Timetaken:0.116seconds,Fetched:6row(s)查询单个分区的数据hive>select*fromhive_dbwheremouth=202001407;OK1Bob2020014072Black2020014073Jeck202001407Timetaken:0.376seconds,Fetched:3row(s)二级分区表二级分区表就是在一级分区表的基础上,在加一个字段createtablestu(idint,namestring)partitionedby(mouthstring,daystring)rowformatdelimitedfieldsterminatedby'\t';导入数据到二级分区表语法loaddatalocalinpath'文件'intotablestupartition(mouth="01",day="07");partition()里面是对应的分区字段hive>loaddatalocalinpath'/root/student.txt'intotablestupartition(mouth="01",day="07");Loadingdatatotabletest.stupartition(mouth=01,day=07)Partitiontest.stu{mouth=01,day=07}stats:[numFiles=1,numRows=0,totalSize=21,rawDataSize=0]OKTimetaken:0.554seconds扩展三级分区、四级分区...都是一样的道理,但很没有必要

未分类

解压Hive的tar包进入/opt/software/目录cd/opt/software/解压tar包到/opt/module/目录tar-zxvfhive-0.13.1-cdh5.3.6.tar.gz-C/opt/module/配置环境变量vi/etc/profile加入环境变量#HiveexportHIVE_HOME=/opt/module/hive-0.13.1-cdh5.3.6exportPATH=$HIVE_HOME/bin:$PATH:更新环境变量source/etc/profile尝试进入Hive,再退出在进入之前需要删除一个文件删除$HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar文件删除后尝试进入hive,进去后退出exit;没有mysql密码的情况找到mysqld配置文件:my.cnf路径:/etc/my.cnf在[mysql]模块里面添加:skip-grant-tables保存退出;2.使配置生效重启mysql服务:servicemysqlrestart3.修改密码mysql-uroot-p//提示输入密码直接敲回车//进入mysql后//选择数据库usemysql;//修改密码updateusersetPassword=password('你需要设置的密码')whereUser='root';//退出4.去除免密登陆删除步骤一里面添加的语句:skip-grant-tables重启服务servicemysqlrestart现在登陆就用我们自己刚刚设置的密码来进行登陆了。以上四个步骤是不知道mysql密码的情况,如果知道就进行下面的操作。MySQL配置1、开启MySQL远程连接mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'密码';mysql>flushprivileges;2、创建一个数据库mysql>createdatabasehive;QueryOK,1rowaffected(0.00sec)配置Hive数据库为MySQL需要在$HIVE_HOME的conf目录下创建hive-site.xml文件注意使用标签把配置包裹起来。<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>自己的mysql密码</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property></configuration>初始化Hive数据库首先需要把MySQL驱动放入Hive的lib目录下scp/opt/software/mysql-connector-java-5.1.47.jarroot@master:/opt/module/hive-0.13.1-cdh5.3.6/lib/[root@masterconf]#schematool-dbTypemysql-initSchemaMetastoreconnectionURL:jdbc:mysql://192.168.176.65:3306/hiveMetastoreConnectionDriver:com.mysql.jdbc.DriverMetastoreconnectionUser:rootStartingmetastoreschemainitializationto1.2.0Initializationscripthive-schema-1.2.0.mysql.sqlInitializationscriptcompletedschemaToolcompleted(初始化完成)[root@masterconf]#启动Hive[root@masterhive]#hiveLogginginitializedusingconfigurationinjar:file:/usr/local/src/hive/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.propertieshive>

2020-1-6 866 0
未分类

区别X外部表内部表(管理表)创表关键字需要加external不需要加表被删除时数据不会被删除数据会被删除创建表的区别在创建外部表时需要加external关键字createexternaltablestud(idint,namestring)rowformatdelimitedfieldsterminatedby'\t';表被删除时表被删除时外部表使用showtables;查询不到,但数据还在。如果再按照原来的表格式创建表,内容会自动加载到表里。内部表被删除时,数据会跟着被删除。使用场景当有一份数据,可能使用它来分析的不止一个部门,还会有许多地方共享这份数据,所以不能在我分析完删除时,把元数据也删除了外部表与内部表的相互转换内部表改为外部表:altertable表名settblproperties('EXTERNAL'='TRUE');外部表改为内部表:altertable表名settblproperties('EXTERNAL'='FLASE');注意后面的tblproperties('EXTERNAL'='布尔值');是一定的,引号是单引号,布尔值要大写查看表的详细信息查询语句descformatted表名hive>descformattedstud;OK#col_namedata_typecommentidintnamestring#DetailedTableInformationDatabase:defaul#该表所在的数据库Owner:root#该表的用户CreateTime:MonJan0611:37:37CST2020LastAccessTime:UNKNOWNProtectMode:NoneRetention:0Location:hdfs://192.168.176.65:9000/user/hive/warehouse/studTableType:MANAGED_TABLE#说明表示管理表(内部表)TableParameters:COLUMN_STATS_ACCURATEtruenumFiles1totalSize21transient_lastDdlTime1578281909#StorageInformationSerDeLibrary:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDeInputFormat:org.apache.hadoop.mapred.TextInputFormatOutputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormatCompressed:NoNumBuckets:-1BucketColumns:[]SortColumns:[]StorageDescParams:field.delim\tserialization.format\tTimetaken:0.104seconds,Fetched:31row(s)

未分类

组件介绍Hive开启了hiveserver2才能远程连接到Hivehiveserver2:可以理解为一个服务端beeline:可以理解为一个客户端#它们在Hive的bin/目录下[root@masterbin]#ll总用量32-rwxr-xr-x.1rootroot10314月12017beelinedrwxr-xr-x.3rootroot409612月2616:43ext-rwxr-xr-x.1rootroot78444月12017hive-rwxr-xr-x.1rootroot19001月82016hive-config.sh-rwxr-xr-x.1rootroot8851月82016hiveserver2-rwxr-xr-x.1rootroot8321月82016metatool-rwxr-xr-x.1rootroot8841月82016schematool小测试搭建的是Hadoop伪分布式进行测试开启两个窗口,一个运行hiveserver2,另一个运行beeline运行hiveserver2当做服务端下图这样挂住就算开启另一个窗口执行beeline当做客户端,当然客户端不一定是beeline,还能是其他的一些客户端,但连接的地址、用户名、密码是一个道理连接Hive,进行查询连接地址:!connectjdbc:hive2://master:10000拓展beeline的所有命令0:jdbc:hive2://master:10000>help!addlocaldriverjarAdddriverjarfileinthebeelineclientside.!addlocaldrivernameAdddrivernamethatneedstobesupportedinthebeelineclientside.!allExecutethespecifiedSQLagainstallthecurrentconnections!autocommitSetautocommitmodeonoroff!batchStartorexecuteabatchofstatements!briefSetverbosemodeoff!callExecuteacallablestatement!closeClosethecurrentconnectiontothedatabase!closeallCloseallcurrentopenconnections!columnsListallthecolumnsforthespecifiedtable!commitCommitthecurrenttransaction(ifautocommitisoff)!connectOpenanewconnectiontothedatabase.!dbinfoGivemetadatainformationaboutthedatabase!describeDescribeatable!dropallDropalltablesinthecurrentdatabase!exportedkeysListalltheexportedkeysforthespecifiedtable!goSelectthecurrentconnection!helpPrintasummaryofcommandusage!historyDisplaythecommandhistory!importedkeysListalltheimportedkeysforthespecifiedtable!indexesListalltheindexesforthespecifiedtable!isolationSetthetransactionisolationforthisconnection!listListthecurrentconnections!manualDisplaytheBeeLinemanual!metadataObtainmetadatainformation!nativesqlShowthenativeSQLforthespecifiedstatement!nullemptystringSettotruetogethistoricbehaviorofprintingnullasemptystring.Defaultisfalse.!outputformatSettheoutputformatfordisplayingresults(table,vertical,csv2,dsv,tsv2,xmlattrs,xmlelements,anddeprecatedformats(csv,tsv))!primarykeysListalltheprimarykeysforthespecifiedtable!proceduresListalltheprocedures!propertiesConnecttothedatabasespecifiedinthepropertiesfile(s)!quitExitstheprogram!reconnectReconnecttothedatabase!recordRecordalloutputtothespecifiedfile!rehashFetchtableandcolumnnamesforcommandcompletion!rollbackRollbackthecurrenttransaction(ifautocommitisoff)!runRunascriptfromthespecifiedfile!saveSavethecurrentvariabesandaliases!scanScanforinstalledJDBCdrivers!scriptStartsavingascripttoafile!setSetabeelinevariable!shExecuteashellcommand!sqlExecuteaSQLcommand!tablesListallthetablesinthedatabase!typeinfoDisplaythetypemapforthecurrentconnection!verboseSetverbosemodeonComments,bugreports,andpatchesgoto???0:jdbc:hive2://master:10000>

未分类

本文说明在安装单机版之前需要安装好Hadoop可参考这个安装伪分布式单机安装解压配置环境变量#解压[root@masterhbase]#tar-zxvfhbase-1.2.0-bin.tar.gz[root@masterhbase]#pwd/usr/local/src/hbase#配置环境变量[root@masterhbase]#vi~/.bash_profile#追加到环境变量后面#HbaseexportHBASE_HOME=/usr/local/src/hbase/hbase-1.2.0exportPATH=$PATH:$HBASER_HOME/bin:[root@masterhbase-1.2.0]#source~/.bash_profile修改Hbase配置文件进入Hbase的conf/目录下修改hbase-site.xml文件#配置Hbase的文件存储路径#路径可以是本地,或者HDFS上<property><name>hbase.rootdir</name><value>file:///usr/local/src/hbase/tmp</value></property>修改hbase-env.sh文件#修改第一处加入JAVA_HOME#Thejavaimplementationtouse.Java1.7+required.#exportJAVA_HOME=/usr/java/jdk1.6.0/exportJAVA_HOME=/usr/local/src/java/jdk1.8.0_221#修改第二处加入HBASE_CLASSPATH就是conf路径#ExtraJavaCLASSPATHelements.Optional.#exportHBASE_CLASSPATH=exportHBASE_CLASSPATH=/usr/local/src/hbase/hbase-1.2.0/conf#修改第三处禁止Hbase启动或者关闭Zookeeper#TellHBasewhetheritshouldmanageit'sowninstanceofZookeeperornot.#exportHBASE_MANAGES_ZK=trueexportHBASE_MANAG_ZK=flase#关闭文件,更新[root@masterconf]#sourcehbase-env.sh启动Hbase和测试进入Hbase的bin/目录启动Hbase[root@masterbin]#start-hbase.shstartingmaster,loggingto/usr/local/src/hbase/hbase-1.2.0/logs/hbase-root-master-master.outJavaHotSpot(TM)64-BitServerVMwarning:ignoringoptionPermSize=128m;supportwasremovedin8.0JavaHotSpot(TM)64-BitServerVMwarning:ignoringoptionMaxPermSize=128m;supportwasremovedin8.0JavaHotSpot(TM)64-BitServerVMwarning:ignoringoptionPermSize=128m;supportwasremovedin8.0JavaHotSpot(TM)64-BitServerVMwarning:ignoringoptionMaxPermSize=128m;supportwasremovedin8.0安装测试jps节点#出现HMaster即安装成功[root@masterbin]#jps16275HMaster进入网页端查看IP:16010Hbase高可用部署参考Hbase1.2.0高可用集群安装

未分类

安装前说明版本说明组件版本下载地址Hadoop2.6.0点我下载ZooKeeper3.4.5点我下载机器分配机器IP机器名分配192.168.176.61masternamenode192.168.176.62slave1namenode192.168.176.63slave2其他修改机器名hostnamectlset-hostnamemasterhostnamectlset-hostnameslave1hostnamectlset-hostnameslave2修改IP与机器名的映射#修改的文件:vi/etc/hosts#追加192.168.176.61master192.168.176.62slave1192.168.176.63slave2配置免密登陆有namenode的机器能免密登陆其他机器#每台机器执行:ssh-keygen-trsa#在准备有namenode进程的机器上执行ssh-copy-id-i/root/.ssh/id_rsa.pub机器名#再把准备有namenode进程机器上的密钥发送给其他机器#master机器scp/root/.ssh/authorized_keysroot@slave1:/root/.ssh/scp/root/.ssh/authorized_keysroot@slave2:/root/.ssh/#slave1机器scp/root/.ssh/authorized_keysroot@master:/root/.ssh/scp/root/.ssh/authorized_keysroot@slave2:/root/.ssh/关闭每台机器的防火墙#关闭防火墙systemctlstopfirewalld.service#禁止防火墙开机自启systemctldisablefirewalld.service#查看防火墙状态firewall-cmd--state配置ZooKeeper解压ZooKeeper并配置环境变量[root@masterzookeeper]#tar-zxvfzookeeper-3.4.5.tar.gz[root@masterzookeeper]#pwd/usr/local/src/zookeeper#追加到环境变量[root@masterzookeeper]#vi~/.bash_profile#zookeeperexportZK_HOME=/usr/local/src/zookeeper/zookeeper-3.4.5exportPATH=$PATH:$ZK_HOME/bin:[root@masterzookeeper]#source~/.bash_profile配置ZooKeeper集群进入到ZooKeeper的conf/目录下#拷贝zoo_sample.cfg并重命名为zoo.cfg[root@masterconf]#cpzoo_sample.cfgzoo.cfg修改zoo.cfg文件#第一处修改如没有也可以自己加上这个路径需要自己创建好#examplesakes.dataDir=/usr/local/src/zookeeper/DataZk#在最后添加,指定myid集群主机及端口,机器数必须为奇数server.1=192.168.176.61:2888:3888server.2=192.168.176.62:2888:3888server.3=192.168.176.63:2888:3888进入DataZk目录添加Zookeeper用于识别当前机器的ID[root@masterDataZk]#echo1>myid[root@masterDataZk]#catmyid1#myid文件中为1,即表示当前机器为在zoo.cfg中指定的server.1分发配置到其他机器在/usr/local/src目录下执行[root@mastersrc]#pwd/usr/local/src[root@mastersrc]scp-rzookeeper/root@slave1:/usr/local/src/[root@mastersrc]scp-rzookeeper/root@slave2:/usr/local/src/修改其他机器的myid文件#在slave1上root@slave1src]#echo2>/usr/local/src/zookeeper/DataZk/myid#在slave2上root@slave2src]#echo3>/usr/local/src/zookeeper/DataZk/myid启动Zookeeper集群在Zookeeper的bin/目录下启动#分别在master、slave1、slave2执行./zkServer.shstart[root@masterbin]#./zkServer.shstartJMXenabledbydefaultUsingconfig:/usr/local/src/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfgStartingzookeeper...STARTED查看状态只有其中一个是leader,其他的都是follower注意:leader需要在其中的一个有namenode进程的机器上。#master查看状态[root@masterbin]#./zkServer.shstatusJMXenabledbydefaultUsingconfig:/usr/local/src/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfgMode:leader#slave1查看状态[root@slave1bin]#./zkServer.shstatusJMXenabledbydefaultUsingconfig:/usr/local/src/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfgMode:follower#slave2查看状态[root@slave2bin]#zkServer.shstatusJMXenabledbydefaultUsingconfig:/usr/local/src/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfgMode:follower修改Hadoop配置文件在Hadoop的etc/hadoop目录下修改core-site.xml文件<!--hdfs地址,ha模式中是连接到nameservice--><property><name>fs.defaultFS</name><value>hdfs://ns</value></property><!--这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录,也可以单独指定--><property><name>hadoop.tmp.dir</name><value>/usr/local/src/hadoop/tmp</value></property><!--指定ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点--><property><name>ha.zookeeper.quorum</name><value>master:2181,slave1:2181,slave2:2181</value></property>修改mapred-site.xml文件需要复制一份模板cpmapred-site.xml.templatemapred-site.xml<property><!--指定mapreduce运行在yarn上--><name>mapreduce.framework.name</name><value>yarn</value></property>修改hdfs-site.xml文件<!--执行hdfs的nameservice为ns,需要与core-site.xml中定义的fs.defaultFS一致--><property><name>dfs.nameservices</name><value>ns</value></property><!--ns下有两个namenode,分别是nn1、nn2--><property><name>dfs.ha.namenodes.ns</name><value>nn1,nn2</value></property><!--nn1的RPC通信地址--><property><name>dfs.namenode.rpc-address.ns.nn1</name><value>master:9000</value></property><!--nn1的http通信地址--><property><name>dfs.namenode.http-address.ns.nn1</name><value>master:50070</value></property><!--nn2的RPC通信地址--><property><name>dfs.namenode.rpc-address.ns.nn2</name><value>slave1:9000</value></property><!--nn2的http通信地址--><property><name>dfs.namenode.http-address.ns.nn2</name><value>slave1:50070</value></property><!--指定namenode的元数据在JournalNode上的存放位置,这样,namenode2可以从jn集群里获取最新的namenode的信息,达到热备的效果--><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://master:8485;slave1:8485;slave2:8485/ns</value></property><!--指定JournalNode存放数据的位置--><property><name>dfs.journalnode.edits.dir</name><value>/usr/local/src/hadoop/journal</value></property><!--开启namenode故障时自动切换--><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!--配置切换的实现方式--><property><name>dfs.client.failover.proxy.provider.ns</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!--配置隔离机制:通过秘钥隔离机制--><property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><!--配置隔离机制的ssh登录秘钥所在的位置--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!--配置namenode数据存放的位置,可以不配置,如果不配置,默认用的是core-site.xml里配置的hadoop.tmp.dir的路径--><property><name>dfs.namenode.name.dir</name><value>file:///usr/local/src/hadoop/tmp/namenode</value></property><!--配置datanode数据存放的位置,可以不配置,如果不配置,默认用的是core-site.xml里配置的hadoop.tmp.dir的路径--><property><name>dfs.datanode.data.dir</name><value>file:///usr/local/src/hadoop/tmp/datanode</value></property><!--配置block副本数量--><property><name>dfs.replication</name><value>3</value></property><!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件--><property><name>dfs.permissions</name><value>false</value></property>修改yarn-site.xml文件<!--开启YARNHA--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!--指定两个resourcemanager的名称--><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!--配置rm1,rm2的主机--><property><name>yarn.resourcemanager.hostname.rm1</name><value>master</value></property><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave1</value></property><!--开启yarn恢复机制--><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!--执行rm恢复机制实现类--><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property><!--配置zookeeper的地址--><property><name>yarn.resourcemanager.zk-address</name><value>master:2181,slave1:2181,slave2:2181</value><description>Formultiplezkservices,separatethemwithcomma</description></property><!--指定YARNHA的名称--><property><name>yarn.resourcemanager.cluster-id</name><value>yarn-ha</value></property><property><!--指定yarn的老大resoucemanager的地址--><name>yarn.resourcemanager.hostname</name><value>master</value></property><property><!--NodeManager获取数据的方式--><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>修改slaves文件指定datanode节点[root@masterhadoop]#catslavesmasterslave1slave2配置Hadoop和ZooKeeper环境为了方便执行命令,配置过就不用配置了[root@master/]#vi~/.bash_profile#追加到后面#hadoopexportHADOOP_HOME=/usr/local/src/hadoop/hadoop-2.6.0exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:#zookeeperexportZK_HOME=/usr/local/src/zookeeper/zookeeper-3.4.5exportPATH=$PATH:$ZK_HOME/bin:[root@master/]#source~/.bash_profile分发配置在/usr/local/src目录下执行#分发Hadoop文件scp-rhadoop/root@slave1:/usr/local/src/scp-rhadoop/root@slave2:/usr/local/src/#分发环境变量scp~/.bash_profileroot@slave1:~/scp~/.bash_profileroot@slave2:~/启动Zookeeper集群启动结果是leader需要在其中一个namenode上,如果不是,请杀死每台机器的QuorumPeerMain进程,重新启动#每台机器执行#启动命令zkServer.shstart#查询状态命令zkServer.shstatus格式化Zookeeper的leader节点hdfszkfc-formatZK启动Hadoop集群两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控editlog的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。启动journalNode集群,用于主备节点的信息同步在每台机器上都上输入hadoop-daemon.shstartjournalnode格式化Zookeeper的leader上的namenode进程在准备的namenode上还有leader的机器执行hdfsnamenode-format启动有leader的namenode进程作为活跃(active)在有namenode还有leader的机器执行hadoop-daemon.shstartnamenode设置另一个namenode作为备用(standby)在准备的另一个namenode上执行hdfsnamenode-bootstrapStandby启动备用(standby)的namenode进程备用(standby)上执行hadoop-daemon.shstartnamenode启动所有的datanode进程在活跃(active)机器上执行hadoop-daemons.shstartdatanode启动zkfc用于检测namenode的监控状态和选举在有namenode的机器上执行hadoop-daemon.shstartzkfc启动yarn资源管理在leader上执行start-yarn.sh下载主备切换依赖主备机器都要下载yuminstallpsmisc查看各个机器的进程活跃机器备用机器其他JpsJpsJpsDataNodeDataNodeDataNodeJournalNodeJournalNodeJournalNodeQuorumPeerMainQuorumPeerMainQuorumPeerMainNodeManagerNodeManagerNodeManagerResourceManagerResourceManagerDFSZKFailoverControllerDFSZKFailoverControllerNameNodeNameNodeHadoop高可用测试查看活跃机器查看备份机器现在杀死活跃机器的namenode进程,再查看备份机器的状态,发现主备切换了启动杀死namenode进程的机器,再查看两机器状态hadoop-daemon.shstartnamenode安装好后,启动HadoopHA集群首先启动Zookeeper的集群查看选举每台机器执行#启动命令zkServer.shstart#查询状态命令zkServer.shstatus#结果也是要选择一个leader在一个namenode上,不然杀死QuorumPeerMain进程,重新选举在一个namenode不是leader上启动全部进程[root@master~]#start-all.shThisscriptisDeprecated.Insteadusestart-dfs.shandstart-yarn.shStartingnamenodeson[masterslave1]slave1:startingnamenode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-namenode-slave1.outmaster:startingnamenode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-namenode-master.outslave1:startingdatanode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-datanode-slave1.outslave2:startingdatanode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-datanode-slave2.outmaster:startingdatanode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-datanode-master.outStartingjournalnodes[masterslave1slave2]slave1:startingjournalnode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-journalnode-slave1.outmaster:startingjournalnode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-journalnode-master.outslave2:startingjournalnode,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-journalnode-slave2.outStartingZKFailoverControllersonNNhosts[masterslave1]slave1:startingzkfc,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-zkfc-slave1.outmaster:startingzkfc,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/hadoop-root-zkfc-master.outstartingyarndaemonsstartingresourcemanager,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/yarn-root-resourcemanager-master.outslave1:startingnodemanager,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/yarn-root-nodemanager-slave1.outslave2:startingnodemanager,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/yarn-root-nodemanager-slave2.outmaster:startingnodemanager,loggingto/usr/local/src/hadoop/hadoop-2.6.0/logs/yarn-root-nodemanager-master.out

未分类

单机安装Spark的单机安装是很简单的解压安装包[root@masterspark]#tar-zxvfspark-2.0.0-bin-hadoop2.6.tgz[root@masterspark]#ll总用量0drwxr-xr-x.125005001937月202016spark-2.0.0-bin-hadoop2.6[root@masterspark]#pwd/usr/local/src/spark配置环境变量[root@masterspark]#vi~/.bash_profile#加入环境变量#SparkexportSPARK_HOME=/usr/local/src/spark/spark-2.0.0-bin-hadoop2.6exportPATH=$PATH:$SPARK_HOME/bin:[root@masterspark]#source~/.bash_profile安装测试Spark的shell命令[root@masterspark]#spark-shellUsingSpark'sdefaultlog4jprofile:org/apache/spark/log4j-defaults.propertiesSettingdefaultloglevelto"WARN".Toadjustlogginglevelusesc.setLogLevel(newLevel).20/01/0215:29:53WARNNativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable20/01/0215:29:55WARNUtils:Service'SparkUI'couldnotbindonport4040.Attemptingport4041.20/01/0215:29:55WARNSparkContext:UseanexistingSparkContext,someconfigurationmaynottakeeffect.SparkcontextWebUIavailableathttp://192.168.176.61:4041Sparkcontextavailableas'sc'(master=local[*],appid=local-1577950195083).Sparksessionavailableas'spark'.Welcometo______/__/__________//___\\/_\/_`/__/'_//___/.__/\_,_/_//_/\_\version2.0.0/_/UsingScalaversion2.11.8(JavaHotSpot(TM)64-BitServerVM,Java1.8.0_221)Typeinexpressionstohavethemevaluated.Type:helpformoreinformation.scala>启动后的控制台界面和web界面,这样就算安装成功Spark的集群安装在单机模式的安装上,再进行相应的配置修改slaves进入Spakr的conf/目录下,复制一个slaves模板#复制slaves模板[root@masterconf]#cpslaves.templateslaves#打开slaves[root@masterconf]#vislaves#加入节点机器的映射名称,映射在配置Hadoop集群的时候已经配置masterslave1slave2修改spark-env.shexportJAVA_HOME=/usr/lib/jvm/jdk8u191-b12exportSCALA_HOME=/home/modules/spark-2.3.0/examples/src/main/scalaexportHADOOP_HOME=/home/modules/hadoop-2.8.3exportHADOOP_CONF_DIR=/home/modules/hadoop-2.8.3/etc/hadoopexportSPARK_HOME=/home/modules/spark-2.3.0exportSPARK_DIST_CLASSPATH=$(/home/modules/hadoop-2.8.3/bin/hadoopclasspath)exportLD_LIBRARY_PATH=/home/modules/hadoop-2.8.3/lib/nativeexportYARN_CONF_DIR=/home/modules/hadoop-2.8.3/etc/hadoopexportSPARK_MASTER_IP=node1分发配置到其他机器上分发Sparkscp-rspark/root@slave1:/usr/local/src/scp-rspark/root@slave2:/usr/local/src/分发环境变量scp~/.bash_profileroot@slave1:~/.bash_profilescp~/.bash_profileroot@slave1:~/.bash_profile启动Spark集群进入Spark的sbin/目录下执行启动命令[root@mastersbin]#start-all.shorg.apache.spark.deploy.master.Masterrunningasprocess14018.Stopitfirst.master:org.apache.spark.deploy.worker.Workerrunningasprocess14365.Stopitfirst.slave1:org.apache.spark.deploy.worker.Workerrunningasprocess1952.Stopitfirst.slave2:org.apache.spark.deploy.worker.Workerrunningasprocess2616.Stopitfirst.启动测试个机器出现以下就是搭建成功masterslave1slave2NodeManagerNodeManagerNodeManagerJpsJpsJpsDataNodeDataNodeDataNodeWorkerWorkerWorkerNameNodeMasterSecondaryNameNodeResourceManagerSparkSubmitSparkSubmitSparkSubmit进入Master:8080查看集群模式网页

未分类

案例说明使用Flume监控一个本地目录,如果目录有新的文件产生,则会自动传到HDFS上配置本案例任务需要的Flume文件在Flume的conf/目录下创建,名称为spooldir-hdfs.properties#相当定义Flume的三个组件变量名agent1.sources=source1agent1.sinks=sink1agent1.channels=channel1#配置source组件agent1.sources.source1.type=spooldir#监控的本地路径agent1.sources.source1.spoolDir=/home/logs/agent1.sources.source1.fileHeader=false#配置拦截器agent1.sources.source1.interceptors=i1agent1.sources.source1.interceptors.i1.type=hostagent1.sources.source1.interceptors.i1.hostHeader=hostname#配置sink组件agent1.sinks.sink1.type=hdfsagent1.sinks.sink1.hdfs.path=hdfs://192.168.176.65:9000/locadir/flume_log/%y-%m-%d/%H-%Magent1.sinks.sink1.hdfs.filePrefix=eventsagent1.sinks.sink1.hdfs.maxOpenFiles=5000agent1.sinks.sink1.hdfs.batchSize=100agent1.sinks.sink1.hdfs.fileType=DataStreamagent1.sinks.sink1.hdfs.writeFormat=Textagent1.sinks.sink1.hdfs.rollSize=102400agent1.sinks.sink1.hdfs.rollCount=1000000agent1.sinks.sink1.hdfs.rollInterval=60#agent1.sinks.sink1.hdfs.round=true#agent1.sinks.sink1.hdfs.roundValue=10#agent1.sinks.sink1.hdfs.roundUnit=minuteagent1.sinks.sink1.hdfs.useLocalTimeStamp=true#Useachannelwhichbufferseventsinmemoryagent1.channels.channel1.type=memoryagent1.channels.channel1.keep-alive=120agent1.channels.channel1.capacity=500000agent1.channels.channel1.transactionCapacity=600#Bindthesourceandsinktothechannelagent1.sources.source1.channels=channel1agent1.sinks.sink1.channel=channel1任务命令说明下面命令是在FLume的根目录里执行的flume-ngagent-cconf-fconf/spooldir-hdfs.properties-nagent1-Dflume.root.logger=INFO,console参数作用实例conf或-c指定配置文件的地址,包含flume-env.sh和log4j的配置文件-cconf-conf-file或-f当前任务的配置文件地址-fconf-fileconf/spooldir-hdfs.properties-name或-nagent名称-nameagent1-zzookeeper连接的字符串-zzkhost:2181,zkhost1:2181-pzookeeper中的存储路径前缀-p/flume-Dflume启动日志打印到当前控制台-Dflume.root.logger=INFO,console测试任务开启两个窗口,其中一个进入监控的目录,查看HDFS上的目录另一个窗口运行命令,这样就运行成功在/home/logs目录下创建一个文件,就会发现该文件被自动上传到了HDFS上