Note for Hadoop

4 篇文章 0 订阅
1 篇文章 0 订阅
安装/bin/hadoop namenode -format
查看进程 /usr/bin/jps
拷贝到hdfs   bin/hadoop dfs -put ../../grid/input in
从hdfs拷贝到linux  bin/hadoop dfs -get abc  ./xyz
删除  bin/hadoop dfs -rmr abc
查看文件内容  bin/hadoop dfs -cat ./in/abc
查看目录 bin/hadoop dfs -ls ./in/*
         bin/hadoop dfs -ls ./out
查看统计信息 bin/hadoop dfsadmin -report
         
运行样例:bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out
http查看namenod:50070端口    http://192.168.0.2:50070/dfshealth.jsp
http查看jobtracker:50030端口  http://192.168.0.2:50030/jobtracker.jsp
http查看日志    http://192.168.0.2:50030/logs   http://192.168.0.2:50070/logs
http设置日志级别  http://192.168.0.2:50070/logLevel
HDFS文件操作:
命令方式:
        启动:start-all.sh
        停止:stop-all.sh
        查看 bin/hadoop dfs -ls
        存入 bin/hadoop dfs -put 源文件 目标文件
        存入 bin/hadoop dfs -copyFromLocal 源文件 目标文件
        取出 bin/hadoop dfs -get 源文件 目标文件
        删除 bin/hadoop dfs -rmr 源文件夹
        删除 bin/hadoop dfs -rm  源文件
        查看 bin/hadoop dfs -cat 源文件
        查看 bin/hadoop dfs -text 源文件
        查看 bin/hadoop dfs -tail 源文件
        创建目录 bin/hadoop dfs -mkdir /user/xxx
        创建文件 bin/hadoop dfs -touchz /user/xxx
        重命名 bin/hadoop dfs -mv /user/xxx user/xxx
        合并文件 bin/hadoop dfs -getmerge /user/home/xxx
        关闭作业 bin/hadoop job -kill [job-id]
        查看整个系统报告   bin/hadoop dfsadmin -report  #检查HDFS块状态,包括DN信息
        查看是否安全模式:bin/hadoop dfsadmin -safemode get
        打开安全模式:bin/hadoop dfsadmin -safemode enter
        关闭安全模式:bin/hadoop dfsadmin -safemode leave
        启动节点上的datanode: hadoop-daemon.sh start datanode
        启动节点上的tasktracker: hadoop-daemon.sh start tasktracker
        进行数据负载均衡: start-balancer.sh
        启动namenote(start dfs daemons):bin/start-dfs.sh --config $HADOOP_CONF_DIR
        启动MapReduce(start mapred daemons):bin/start-mapred.sh --config $HADOOP_CONF_DIR
        启动负载均衡:bin/star-balancer.sh  #平衡集群文件
        并行拷贝:hadoop distcp hdfs://a:8020/xxx hdfs://b:8020/// 
        
        列出正在运行的Job :hadoop job -list
        kill job:hadoop job -kill <job_id>
        检查HDFS块状态,是否损坏:hadoop fsck /
        删除损坏块:hadoop fsck / -delete
        并行copy:hadoop distcp hdfs://ZeroHostName:8020/xxx hdfs://OtherHostName:8020///
        
        
                             
API方式:http://hadoop.apache.org/docs/r0.23.6/api/index.html
package cn.forey.hadoop.hdsf
static FileSystem get(Configuration conf)
operator(){
//step 1
得到Configuration对象
//step 2
得到FileSystem对象
//step 3
进行文件操作
}
  hadoop jar /home/ZeroUserName/temp/hdfsmkdir.jar cn.forey.hadoop.hdfs.HdfsMkdir
hadoop-0.20.2-examples.jar是hadoop-0.20.2自带的一些案例:
1.aggregatewordcount 计算输入文件中文字个数的基于聚合的MapReduce程序;
2.aggregatewordlist  生成输入文件中文字个数的统计图的基于聚合的MapReduce程序;
3.grep 计算输入文件中匹配正则表达式的文字个数的MapReduce程序;
4.join 合并排序的平均分割的数据库的作业;
5.pentomino 解决五格拼板问题的分块分层的MapReduce程序;
6.pi 使用蒙地卡罗法计算pi的MapReduce程序;
7.Randomtextwriter 在一个节点上写10G随机文本的MapReduce程序;
8.randomwriter 在每个节点上写10G随机数据的MapReduce程序;
9.sleep 在每个Map和Reduce作业中休憩的程序;
10.sort 排序随机写入器生成的数据的MapReduce程序;
11.sudoku 一个九宫格游戏的解决方案;
12.wordcount 在输入文件中统计文字个的统计器。

写MapReduce程序的步骤:
 1、把问题转化为MapReduce模型
 2、设置运行的参数
 3、写map类
 4、写reduce类
 




第三方工具:Ganglia     Chukwa       Openstack
运行jar文件:bin/hadoop jar /home/.../xxx.jar  /home/../input /home/.../output


---------------Hbase------------------
此数据库适用场景:成熟的分析主题,已确立查询模式;高速插入,大量读取;操作简单 key-value
            优势:天生面向时间戳查询;基于行键的查询异常快;分布式化解负荷。
1、安装步骤:
      单机模式:1>下载解压Hbase安装包 mirror.bjtu.edu.cn/apache/hbase/hbase-0.90.5/
                                      mirror.bit.edu.cn/apache/hbase/ 
                2>修改conf/hbase-env.sh脚本,设置环境变量
                3>编辑hbase-site.xml进行配置  在hbase-env.sh加上export JAVA_HOME=/usr
                                              在hbase-site.xml中加上
                                              <configuration>
                                              <property>
                                              <name>hbase.rootdir</name>
                                              <value>file:///home/hadoop/database</value>
                                              </property>
                                              </configuration>
                4>启动Hbase  bin/start-hbase.sh
                5>验证Hmaster已经启动  /usr/bin/jps
                6>进入shell  bin/hbase shell
                
        伪分布模式: 1>在单点模式的基础上继续
        2>编辑hbase-env.sh增加HBASE_CLASSPATH环境变量 export HBASE_CLASSPATH=/home/hadoop/hadoop-0.20.2/conf
        3>编辑hbase-site.xml打开分布模式
                                              <configuration>
                                              <property>
                                              <name>hbase.rootdir</name>
                                              <value>file:///home/hadoop/database</value>
                                              </property>
                                              <proerty>
                                              <name>hbase.cluster.distributed</name>
                                              <value>true</value>
                                              </property>
                                              </configuration>
        4>覆盖hadoop核心jar包  主要目的是防止hbase和hadoop版本不同出现兼容性问题,造成hmaster启动异常。、
             在hbase的lib目录中$mv hadoop-core-0.20-append-r1056497.jar hadoop-core-0.20-append-r1056497.sav
                               $ls ../../hadoop-0.20.2/
                               $cp ../../hadoop-0.20.2/hadoop-0.20.2-core.jar .
                               $ls 
        5>启动hbase bin/start-hbase.sh
        6>验证启动  /usr/bin/jps
         
        完全分布模式  1>配置hosts,确保涉及的主机名均可以被解析为ip
           2>编辑hbase-env.xml
           3>编辑hbase-site.xml
           4>编辑regionservers文件
           5>把Hbase复制到其他节点
           6>启动Hbase
           7>验证启动  
         
2、Web管理界面  192.168.0.2:60010/master.jsp


3、操作数据库:1)HQL:$.\hbase shell
                  A、帮助  >help
                  B、查询数据库状态 >status
                  C、查询数据库版本 >version
                  D、创建表 >create 'member','member_id','address','info'
                  E、查看表信息 >list
                                >describe 'member'
                  F、删除列族  >disable 'member'  //首先需要离线该表
                               >alter 'member',{NAME=>'member_id',METHOD=>'delete'}
                               >enbale 'member'
                  G、删除表   >disable 'member'
                              >drop 'member'
                  H、查询一个表是否存在  >exists 'member'
                  I、判断表是否在线 >is_enabled 'member'
                                 or >is_disabled 'member'
                  J、插入记录   >put 'member','Jack','info:age','24'
                                >put 'member','Jack','info:birthday','1987-06-17'
                                >put 'member','Jack','info:company','alibaba'
                                >put 'member','Jack','address:country','China'
                                >put 'member','Jack','address:province','Zhejiang'
                                >put 'member','Jack','address:city','hangzhou'   
                  K、查询,获取一个行键的所有数据        >get 'member','Jack'
                           获取行键、列族(列键)所有数据  >get 'member','Jack','info'
                  L、更新一条记录  >put 'member','Jack','info:age','99'
                                   >get 'member','Jack','info:age'
                  M、全表扫描      >scan 'member'
                  N、删除指定行键的字段  >delete 'member','temp','info:age'
                                         >get 'member','temp'
                  O、删除整行  >deleteall 'member','temp'   
                  P、查询表的行数  >count 'member'               
                  Q、清空表  >truncate 'member'
                                                                                
            2)API: http://hbase.apache.org/apidocs/index.html


4、模式设计  
           A、场景:浏览商品记录
               1)行键 userid
               2)列族和列 book:bookid
               3)为了充分利分布式,可以用reverse key、hash等技巧改造行键    
           
           B、场景:推荐商品
              1)两个表:u-t,t-u
              2)U-t:行键 userid,列族和列 thread:threadid
              3)T-u:行键 threadid,列族和列 user:userid
              4)查询,t-u:threadid-->userid             
                      u-t: userid-->threadid,                      
                      在程序中实现去重和统计功能。
                      
           C、场景:学生表(学号,身份证号,姓名,性别,系,年龄)在学号或身份证事情上查询
                   主表:行键学号,列族为学生,下面的列是身份证号,姓名,性别,系,年龄
                   辅助(索引)表:行键为身份号,列族和列为学号。
                   
            D、复合行键设计:<userid>:<colfam>:<messageid>:<timestamp>:<email-message>
                             <userid>-<messageid>:<colfam>:<qualifief>:<timestamp>:<email-message>
                             好处:便于分布,便于多条件伸缩查询。
                             
                             
-------------------pig------------------
1、可以看作hadoop的客户端软件,使用类似SQL的面向数据流的pig latin进行数据处理,
   可以进行排序、过滤、求和、分组、关联等常用操作,可以自定义函数,
   可以看作是pig lation到map-reduce的映射器,
   pig latin面向数据分析处理的轻量级脚本语言。
   
2、安装pig   1)下载并解压pig安装包 http://pig.apache.org/  
                                   http://mirror.bjtu.edu.cn/apache/pig/pig-0.9.2/
             2)设置环境变量  用户的.bash_profile文件:
                                           PATH=$PATH:$HOME/bin:/home/hadoop/pig-0.9.2/bin
                                           JAVA_HOME=/usr
                                           export JAVA_HOME           
             3)进入grunt shell验证  pig -x local
             
3、pig工作模式   1)本地模式 所有文件和执行过程都在本地,一般用于测试程序
                 2)Mapreduce模式:实际工作模式 
                                 a、配置pig的map-reduce模式
                                           设置PATH,增加指向hadoop/bin
                                                PATH=$PATH:$HOME/bin:/home/hadoop/pig-0.9.2/bin:/home/hadoop/hadoop-0.20.2/bin
                                                JAVA_HOME=/usr
                                                PIG_CLASSPATH=/home/hadoop/hadoop-0.20.2/conf/
                                                
                                                export PIG_CLASSPATH
                                                export JAVA_HOME
                                                export PATH
                                           设置PIG_CLASSPATH环境变量
                                           修改hosts文件 vi /etc/hosts
                                           启动pig


4、pig的运行方法    
      a.脚本
      b.Grunt  
          自动补全机制,只能对命令补全
          autocomplete文件
          eclipse插件PigPen
          备注: 一般linux的命令可直接用,如cat ls cd 
                  copyeToLocal example2  ttt
                  运行linux的命令:如 sh /usr/bin/jps
                  Grunt shell命令:cat fs sh cd cp copyFromLocal copyToLocal dump
                                   describe aliases explain help kill ls mv mkdir
                                   pwd quit register rm rmf set illustrate run exec
                                   scriptDone
      c.嵌入式


5.pig数据模型 
    Bag:表
    Tuple:行,记录
    Field:属性
    Pig:不要求同一个bag里面的各个tuple有相同数量或相同灰型的field


6.pig lation常用语句
    LOAD:载入数据的方法
    FOREACH:逐行扫描进行某种处理
    FILTER:过滤行
    DUMP:把结果显示到屏幕
    STORE:把结果保存到文件
       grunt>records = LOAD 'input/ncdc/micro-tab/sample.txt'
               >>AS (year:chararray,temperature:int,quality:int);
       grunt>DUMP records;
       grunt>DESCRIBE records;
       grunt>filtered_records = FILTER records BY temperature != 9999 AND (quality == 0 OR quality == 1 OR quality == 4 OR quality == 5 OR quality == 9);
       grunt>DUMP filtered_records;
       grunt>grouped_records = GROUP  filtered_records BY year;
       grunt>DUMP grouped_records;
       grunt>max_temp = FOREACH grouped_records GENERATE group,
             >>MAX(filtered_records.temperature);
       grunt>DUMP max_temp;
       
7.LOAD,FOREACH,STORE三部曲  
        pig
        A = LOAD 'csdn.txt' USING PigStorage('#') AS (id,pw,em);
        B = FOREACH A GENERATE em;
        STORE B INTO '/home/ZeroUserName/temp/email.txt' USING PigStorage();
       
      














   
-------------------hive-------------------
     
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值