首页 Hadoop使用指引

Hadoop使用指引

举报
开通vip

Hadoop使用指引Hadoop使用指引 1.​ hadoop常用命令介绍 ssh登陆到hadoop服务器,使用linux命令su – hdfs切换到hdfs用户 hadoop fs 查看Hadoop HDFS支持的所有命令 hadoop fs –ls 列出目录及文件信息 hadoop fs –lsr 循环列出目录、子目录及文件信息 hadoop fs –put test.txt /user/sunlightcs 将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下 hadoop fs –ge...

Hadoop使用指引
Hadoop使用指引 1.​ hadoop常用命令介绍 ssh登陆到hadoop服务器,使用linux命令su – hdfs切换到hdfs用户 hadoop fs 查看Hadoop HDFS支持的所有命令 hadoop fs –ls 列出 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 及文件信息 hadoop fs –lsr 循环列出目录、子目录及文件信息 hadoop fs –put test.txt /user/sunlightcs 将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下 hadoop fs –get /user/sunlightcs/test.txt 将HDFS中的test.txt复制到本地文件系统中,与-put命令相反 hadoop fs –cat /user/sunlightcs/test.txt 查看HDFS文件系统里test.txt的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 hadoop fs –tail /user/sunlightcs/test.txt 查看最后1KB的内容 hadoop fs –rm [-r] /user/sunlightcs/test.txt 从HDFS文件系统删除test.txt文件,选项-r删除/user/sunlightcs目录以及所有子目录 hadoop fs –copyFromLocal test.txt /user/sunlightcs/test.txt 从本地文件系统复制文件到HDFS文件系统,等同于put命令 hadoop fs –copyToLocal /user/sunlightcs/test.txt test.txt 从HDFS文件系统复制文件到本地文件系统,等同于get命令 hadoop fs –chgrp [-R] /user/sunlightcs 修改HDFS系统中/user/sunlightcs目录所属群组,选项-R递归执行,跟linux命令一样 hadoop fs –chown [-R] /user/sunlightcs 修改HDFS系统中/user/sunlightcs目录拥有者,选项-R递归执行 hadoop fs –chmod [-R] MODE /user/sunlightcs 修改HDFS系统中/user/sunlightcs目录权限,MODE可以为相应权限的3位数或+/-{rwx},选项-R递归执行 hadoop fs –count [-q] PATH 查看PATH目录下,子目录数、文件数、文件大小、文件名/目录名 hadoop fs –cp SRC [SRC …] DST 将文件从SRC复制到DST,如果指定了多个SRC,则DST必须为一个目录 hadoop fs –du [-s] [-h] PATH 显示该目录中每个文件或目录的大小 hadoop fs –touchz PATH 创建长度为0的空文件 hadoop fs –text PATH 显示文件的内容,当文件为文本文件时,等同于cat,文件为压缩格式(gzip以及hadoop的二进制序列文件格式)时,会先解压缩 hadoop fs –help ls 查看某个[ls]命令的帮助文档 备注:绿色字体的命令最为常用 2.​ 使用hive/impala访问hadoop文件 Hive与impala是类数据库客户端工具,使用该工具对hadoop文件建立元数据,即可像普通数据库一样,能使用大部分sql语句对hadoop里的文件 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 进行查询,大大简化查询数据的难度 使用hive建表 操作步骤 1)​ 在hadoop服务器上su – hdfs切换到hdfs用户 2)​ 输入hive命令登陆到hive环境 Hive的常用操作命令: show tables 查看hive里的所有表 drop t1 删除表t1 3)​ 创建外部表管理hdfs文件 例:现hdfs目录/external/test下有文件test.txt 内容如下: 1|aaa|300000000000000 2|bbb|33012313123123123 3|ccc|2341243143141243124 在hive环境下执行建表语句 create external table test ( id int, name string, value bigint ) partitioned by (dt string) row format delimited fields terminated by '|' stored as textfile location '/external/test '; 要点: (1)​ 关键字external表示所建的表test是外部表,管理/external/test下的所有文件,当表test被drop时,存放在/external/test下的文件不会被删除,只要重建外部表即可再次对目录下的文件进行访问。建表时不加关键字external,表示所建表test被drop时,存放在/external/test下的文件同时被删除 (2)​ 常用字段类型有int,string,bigint,float (3)​ 建立表分区使用partitioned by (dt string),dt(分区字段名称、类型自定义)为分区字段,这里的分区字段表示文件按时间分区,定义分区后,需要在/external/test下建立相应的分区目录,如/external/test/20131101,把文件存放到该目录下,数据即属于分区20131101。访问分区数据还需执行语句alter table test add if not exists partition(dt='20131101') location '/external/test/20131101'。Hive支持多级分区,多级分区用“,”分隔,如:按时间,地区分区partitioned by (dt string,area string) (4)​ 字段分隔符只支持单字符 (5)​ stored as textfile表示数据以txt格式存储,文件必须是txt格式才能正确访问,hadoop默认只支持utf-8字符集,所以要正确显示中文必须要以utf-8编码。 扩展:使用lzo压缩格式存储文件 Hive要使用lzo格式存储的数据,在建表时需指明hive是否压缩,即压缩格式 SET hive.exec.compress.output=true; SET mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec; create external table test ( id int, name string, value bigint ) partitioned by (dt string) row format delimited fields terminated by '|' STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' location '/external/test '; 使用impala建表 操作步骤 1)​ 在hadoop服务器上su – hdfs切换到hdfs用户 2)​ 输入impala-shell命令登陆到impala环境 3)​ 建表 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 与hive的建表方法相同 要点: 使用hive建表后,如果想使用Impala访问,在impala环境下执行命令invalidate metadata;同步hive的元数据即可访问 查询文件记录 在hive或impala环境下查询记录与RMDB类似 一般查询 Select id,name,value from test; 关联查询 Select /*+ MAPJOIN(test1) */ a.name, a.value, b.area from test a left out join test1 b on (a.id =b.id) 当表test1数据量较少时,可以使用关键字/*+ MAPJOIN( tablename) */,把表的内容存放在内存中,使查询时能快速关联 数据统计 大数据统计推荐使用hive Hive中有个非常好的特性Multi-group by可以提供数据统计效率 Multi-group by是Hive的一个非常好的特性,它使得Hive中利用中间结果变得非常方便。例如, FROM ( SELECT a.status, b.school, b.gender FROM status_updates a JOIN profiles b ON (a.userid = b.userid) ) subq1 INSERT OVERWRITE TABLE gender_summary SELECT subq1.gender, COUNT(1) GROUP BY subq1.gender INSERT OVERWRITE TABLE school_summary SELECT subq1.school, COUNT(1) GROUP BY subq1.school 上述查询语句使用了Multi-group by特性连续group by了2次数据,使用不同的group by key。这一特性可以减少一次MapReduce操作。Hive支持常用的sql语法,如:sum,max,distinct, count(*),count(distinct a)等 Hive不支持where子句中的子查询,SQL常用的exist in子句需要改写。这一改写相对简单。考虑以下SQL查询语句: SELECT a.key, a.value FROM a WHERE a.key in (SELECT b.key FROM B); 可以改写为 SELECT a.key, a.value FROM a LEFT OUTER JOIN b ON (a.key = b.key) WHERE b.key <> NULL; 一个更高效的实现是利用left semi join改写为: SELECT a.key, a.val FROM a LEFT SEMI JOIN b on (a.key = b.key); left semi join是0.5.0以上版本的特性。 3.​ Hadoop文件存储到hbase 1)​ 在hadoop服务器上su – hdfs切换到hdfs用户 2)​ 输入hbase shell命令登陆到hbase环境 3)​ 创建hbase表 create 't1', { NAME => 'f1',COMPRESSION => 'snappy',VERSIONS => 1, BLOCKCACHE => true }, {SPLITS => ['01', '02', '03', '04']} 表名:t1,列族:f1,压缩方式:snappy,数据保留的版本数:1 SPLITS的作用就是在创建表的时候,默认给表分N个Region 以上例子表t1会在创建的时候分5个region, Rowkey按字典序分区 Rowkey小于"01",分到region1 Rowkey大于等于"01", 小于"02",分到region2 Rowkey大于等于"02", 小于"03",分到region3 Rowkey大于等于"03", 小于"04",分到region4 Rowkey大于等于"04",分到region5 假设执行以下命令 put 't1','00101','f1:c1','hello' put 't1','00201','f1:c1','hello' put 't1','01101','f1:c1','hello' put 't1','02101','f1:c1','hello' put 't1','02201','f1:c1','hello' put 't1','03101','f1:c1','hello' put 't1','03201','f1:c1','hello' put 't1','04101','f1:c1','hello' 00101和00201会分到region1,因为字典序00101和00201的left(2)小于"01",以此类推 01101分到region2 02101和02201分到region3 03101和03201分到region4 04101分到region5 要点: Rowkey的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 是否能使数据足够散列是决定数据能否快速生成hfile的关键因素 4)​ 使用ImportTsv生成hfile文件,用法如下: 在普通linux环境下执行 hadoop jar /usr/lib/hbase/hbase.jar importtsv -Dimporttsv.separator="#" -Dimporttsv.bulk.output=输出hfile文件路径 -Dimporttsv.columns=HBASE_ROW_KEY, f1:c1, f1:c2……. Hbase表名 输入文件路径 例: hadoop jar /usr/lib/hbase/hbase.jar importtsv -Dimporttsv.separator="#" -Dimporttsv.bulk.output=hdfs://data2.kt:8020/tmp/hfile/20131029 -Dimporttsv.columns=HBASE_ROW_KEY,cf1:i_mptype_value,cf1:i_day_id,cf1:i_time_id,cf1:i_acc_status,cf1:i_roam_type,cf1:i_pay_type,cf1:s_mdn,cf1:s_imsi,cf1:s_esn,cf1:s_meid,cf1:s_src_ip,cf1:s_server_pdsn_ip,cf1:s_server_pcf_ip,cf1:s_bsid,cf1:s_sub_net,cf1:i_service_option,cf1:i_up_byte,cf1:i_down_byte,cf1:i_busitimes,cf1:i_err_cause,cf1:i_session_end_cause,cf1:s_h_mdn,cf1:s_mac_nbr,cf1:i_card_option,cf1:i_service_type,cf1:i_busi_flows_b,cf1:s_hm_prov_name,cf1:s_hm_city_name,cf1:s_fcty_name,cf1:s_trml_type,cf1:i_modl_genr,cf1:s_tm_os,cf1:s_vst_prov_name,cf1:s_vst_city_name,cf1:i_cell_id,cf1:s_cell_name,cf1:s_cell_id T_3A_CDR_LIST_HBASE /external/T_3A_CDR_LIST/20131029/ 5)​ hfile批量导入到hbase 在普通linux环境下执行 hadoop jar /usr/lib/hbase/hbase.jar completebulkload hfile路径 hbase表名 例: hadoop jar /usr/lib/hbase/hbase.jar completebulkload hdfs://data2.kt:8020/tmp/hfile/20131029 T_3A_CDR_LIST_HBASE 6)​ 删除表 disable ‘t1’ drop ‘t1’
本文档为【Hadoop使用指引】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_451413
暂无简介~
格式:doc
大小:75KB
软件:Word
页数:7
分类:互联网
上传时间:2014-03-29
浏览量:68