安裝/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-------------------
Note for Hadoop
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
阿里雲Ubuntu服務器搭建Javaweb開發環境
只修电脑不过夜
2018-08-27 20:03:20
Linux 系統下 CodeBlocks安裝與使用
花姑
2018-08-27 20:02:59
java 學習泛型遇到的問題
爱上学习
2018-08-27 20:04:12
JSP 中的2種包含(導入)
爱上学习
2018-08-27 20:03:43
HashMap部分源碼閱讀,主要是put方法相關的部分
HeiShuaiGuo
2018-08-27 20:03:32
public String(byte[] bytes, int offset, int length)
Myrkyn
2018-08-27 20:03:04
jstl標籤 fmt:formatDate 設置當前時間顯示星期幾
HaHa_Sir
2018-08-27 20:02:59
Java 反射,reflect
crossy
2018-08-27 20:02:58
JVM的內存區域劃分
相由心生fhy
2018-08-27 20:02:39
SpringMVC使用ajax 實現文件下載
HaHa_Sir
2018-08-27 20:02:23
java寫一個簡單的jdbc數據庫連接池
HaHa_Sir
2018-08-27 20:02:23
Servlet輸出JSON數據Servlet向瀏覽器返回JSON數據
HaHa_Sir
2018-08-27 20:02:22
原生Servlet文件上傳和下載Servlet多個文件上傳
HaHa_Sir
2018-08-27 20:02:22
GET和POST請求的區別
HaHa_Sir
2018-08-27 20:02:21
java Object 類中clone方法用法記錄
HaHa_Sir
2018-08-27 20:02:21