導航:首頁 > 程序命令 > hadoop執行命令

hadoop執行命令

發布時間:2022-09-14 03:12:34

1. 剛在虛擬機安裝的hadoop啟動後,執行hadoop命令總是很慢

首先, 機器可能有問題, 你的電腦沒有8G 就不要玩hadoop 集群了, 再來, hadoop 底層運行原理問題,運行起來也就慢了. 尤其是偽集群,,最糟糕

2. hadoop中常用的命令

1、查看指定目錄下內容
hadoop dfs –ls [文件目錄]
eg: hadoop dfs –ls /user/wangkai.pt
2、打開某個已存在文件
hadoop dfs –cat [file_path]
eg:hadoop dfs -cat /user/wangkai.pt/data.txt
3、將本地文件存儲至hadoop
hadoop fs –put [本地地址] [hadoop目錄]
hadoop fs –put /home/t/file.txt /user/t
(file.txt是文件名)
4、將本地文件夾存儲至hadoop
hadoop fs –put [本地目錄] [hadoop目錄]
hadoop fs –put /home/t/dir_name /user/t
(dir_name是文件夾名)
5、將hadoop上某個文件down至本地已有目錄下
hadoop fs -get [文件目錄] [本地目錄]
hadoop fs –get /user/t/ok.txt /home/t
6、刪除hadoop上指定文件
hadoop fs –rm [文件地址]
hadoop fs –rm /user/t/ok.txt
7、刪除hadoop上指定文件夾(包含子目錄等)
hadoop fs –rm [目錄地址]
hadoop fs –rmr /user/t
8、在hadoop指定目錄內創建新目錄
hadoop fs –mkdir /user/t
9、在hadoop指定目錄下新建一個空文件
使用touchz命令:
hadoop fs -touchz /user/new.txt
10、將hadoop上某個文件重命名
使用mv命令:
hadoop fs –mv /user/test.txt /user/ok.txt (將test.txt重命名為ok.txt)
11、將hadoop指定目錄下所有內容保存為一個文件,同時down至本地
hadoop dfs –getmerge /user /home/t
12、將正在運行的hadoop作業kill掉
hadoop job –kill [job-id]

3. 大數據:Hadoop入門

什麼是大數據:
(1.)大數據是指在一定時間內無法用常規軟體對其內容進行抓取,管理和處理的數據集合,簡而言之就是數據量非常大,大到無法用常規工具進行處理,如關系型資料庫,數據倉庫等。這里「大」是一個什麼量級呢?如在阿里巴巴每天處理數據達到20PB(即20971520GB).
2.大數據的特點:
(1.)體量巨大。按目前的發展趨勢來看,大數據的體量已經到達PB級甚至EB級。
(2.)大數據的數據類型多樣,以非結構化數據為主,如網路雜志,音頻,視屏,圖片,地理位置信息,交易數據,社交數據等。
(3.)價值密度低。有價值的數據僅佔到總數據的一小部分。比如一段視屏中,僅有幾秒的信息是有價值的。
(4.)產生和要求處理速度快。這是大數據區與傳統數據挖掘最顯著的特徵。
3.除此之外還有其他處理系統可以處理大數據。
Hadoop (開源)
Spark(開源)
Storm(開源)
MongoDB(開源)
IBM PureDate(商用)
Oracle Exadata(商用)
SAP Hana(商用)
Teradata AsterData(商用)
EMC GreenPlum(商用)
HP Vertica(商用)
註:這里我們只介紹Hadoop。
二:Hadoop體系結構
Hadoop來源:
Hadoop源於Google在2003到2004年公布的關於GFS(Google File System),MapRece和BigTable的三篇論文,創始人Doug Cutting。Hadoop現在是Apache基金會頂級項目,「
Hadoop」一個虛構的名字。由Doug Cutting的孩子為其黃色玩具大象所命名。
Hadoop的核心:
(1.)HDFS和MapRece是Hadoop的兩大核心。通過HDFS來實現對分布式儲存的底層支持,達到高速並行讀寫與大容量的儲存擴展。
(2.)通過MapRece實現對分布式任務進行處理程序支持,保證高速分區處理數據。
3.Hadoop子項目:
(1.)HDFS:分布式文件系統,整個Hadoop體系的基石。
(2.)MapRece/YARN:並行編程模型。YARN是第二代的MapRece框架,從Hadoop 0.23.01版本後,MapRece被重構,通常也稱為MapRece V2,老MapRece也稱為 MapRece V1。
(3.)Hive:建立在Hadoop上的數據倉庫,提供類似SQL語音的查詢方式,查詢Hadoop中的數據,
(5.)HBase:全稱Hadoop Database,Hadoop的分布式的,面向列的資料庫,來源於Google的關於BigTable的論文,主要用於隨機訪問,實時讀寫的大數據。
(6.)ZooKeeper:是一個為分布式應用所設計的協調服務,主要為用戶提供同步,配置管理,分組和命名等服務,減輕分布式應用程序所承擔的協調任務。
還有其它特別多其它項目這里不做一一解釋了。
三:安裝Hadoop運行環境
用戶創建:
(1.)創建Hadoop用戶組,輸入命令:
groupadd hadoop
(2.)創建hser用戶,輸入命令:
useradd –p hadoop hser
(3.)設置hser的密碼,輸入命令:
passwd hser
按提示輸入兩次密碼
(4.)為hser用戶添加許可權,輸入命令:
#修改許可權
chmod 777 /etc/sudoers
#編輯sudoers
Gedit /etc/sudoers
#還原默認許可權
chmod 440 /etc/sudoers
先修改sudoers 文件許可權,並在文本編輯窗口中查找到行「root ALL=(ALL)」,緊跟後面更新加行「hser ALL=(ALL) ALL」,將hser添加到sudoers。添加完成後切記還原默認許可權,否則系統將不允許使用sudo命令。
(5.)設置好後重啟虛擬機,輸入命令:
Sudo reboot
重啟後切換到hser用戶登錄
安裝JDK
(1.)下載jdk-7u67-linux-x64.rpm,並進入下載目錄。
(2.)運行安裝命令:
Sudo rpm –ivh jdk-7u67-linux-x64.rpm
完成後查看安裝路徑,輸入命令:
Rpm –qa jdk –l
記住該路徑,
(3.)配置環境變數,輸入命令:
Sudo gedit /etc/profile
打開profile文件在文件最下面加入如下內容
export java_HOME=/usr/java/jdk.7.0.67
export CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH
export PATH=$ JAVA_HOME/bin:$PATH
保存後關閉文件,然後輸入命令使環境變數生效:
Source /etc/profile
(4.)驗證JDK,輸入命令:
Java –version
若出現正確的版本則安裝成功。
配置本機SSH免密碼登錄:
(1.)使用ssh-keygen 生成私鑰與公鑰文件,輸入命令:
ssh-keygen –t rsa
(2.)私鑰留在本機,公鑰發給其它主機(現在是localhost)。輸入命令:
ssh--id localhost
(3.)使用公鑰來登錄輸入命令:
ssh localhost
配置其它主機SSH免密登錄
(1.)克隆兩次。在VMware左側欄中選中虛擬機右擊,在彈出的快捷鍵菜單中選中管理---克隆命令。在克隆類型時選中「創建完整克隆」,單擊「下一步」,按鈕直到完成。
(2.)分別啟動並進入三台虛擬機,使用ifconfig查詢個主機IP地址。
(3.)修改每台主機的hostname及hosts文件。
步驟1:修改hostname,分別在各主機中輸入命令。
Sudo gedit /etc/sysconfig/network
步驟2:修改hosts文件:
sudo gedit /etc/hosts
步驟3:修改三台虛擬機的IP
第一台對應node1虛擬機的IP:192.168.1.130
第二台對應node2虛擬機的IP:192.168.1.131
第三台對應node3虛擬機的IP:192.168.1.132
(4.)由於已經在node1上生成過密鑰對,所有現在只要在node1上輸入命令:
ssh--id node2
ssh--id node3
這樣就可以將node1的公鑰發布到node2,node3。
(5.)測試SSH,在node1上輸入命令:
ssh node2
#退出登錄
exit
ssh node3
exit
四:Hadoop完全分布式安裝
1. Hadoop有三種運行方式:
(1.)單機模式:無須配置,Hadoop被視為一個非分布式模式運行的獨立Java進程
(2.)偽分布式:只有一個節點的集群,這個節點即是Master(主節點,主伺服器)也是Slave(從節點,從伺服器),可在此單節點上以不同的java進程模擬分布式中的各類節點
(3.)完全分布式:對於Hadoop,不同的系統會有不同的節點劃分方式。
2.安裝Hadoop
(1.)獲取Hadoop壓縮包hadoop-2.6.0.tar.gz,下載後可以使用VMWare Tools通過共享文件夾,或者使用Xftp工具傳到node1。進入node1 將壓縮包解壓到/home/hser目錄下,輸入命令: #進入HOME目錄即:「/home/hser」
cd ~
tar –zxvf hadoop-2.6.0.tar.gz
(2.)重命名hadoop輸入命令:
mv hadoop-2.6.0 hadoop
(3.)配置Hadoop環境變數,輸入命令:
Sudo gedit /etc/profile
將以下腳本加到profile內:
#hadoop
export HADOOP_HOME=/home/hser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存關閉,最後輸入命令使配置生效
source /etc/profile
註:node2,和node3都要按照以上配置進行配置。
3.配置Hadoop
(1.)hadoop-env.sh文件用於指定JDK路徑。輸入命令:
[hser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hser@node1 hadoop]$ gedit hadoop-env.sh
然後增加如下內容指定jDK路徑。
export JAVA_HOME=/usr/java/jdk1.7.0_67
(2.)打開指定JDK路徑,輸入命令:
export JAVA_HOME=/usr/java/jdk1.7.0_67
(4.)core-site.xml:該文件是Hadoop全局配置,打開並在元素中增加配置屬性如下:

fs.defaultFs hdfs://node1:9000 hadoop.tmp.dir file:/home/hser/hadoop/tmp 這里給出了兩個常用的配置屬性,fs.defaultFS表示客戶端連接HDFS時,默認路徑前綴,9000是HDFS工作的埠。Hadoop.tmp.dir如不指定會保存到系統的默認臨時文件目錄/tmp中。 (5.)hdfs-site.xml:該文件是hdfs的配置。打開並在元素中增加配置屬性。 (6.)mapred-site.xml:該文件是MapRece的配置,可從模板文件mapred-site.xml.template中復制打開並在元素中增加配置。 (7.)yarn-site.xml:如果在mapred-site.xml配置了使用YARN框架,那麼YARN框架就使用此文件中的配置,打開並在元素中增加配置屬性。 (8.)復制這七個命令到node2,node3。輸入命令如下: scp –r /home/hser/hadoop/etc/hadoop/ hser@node2:/home/hser/hadoop/etc/ scp –r /home/hser/hadoop/etc/hadoop/ hser@node3:/home/hser/hadoop/etc/ 4.驗證: 下面驗證hadoop是否正確 (1.)在Master主機(node1)上格式化NameNode。輸入命令: [hser@node1 ~]$ cd ~/hadoop [hser@node1 hadoop]$ bin/hdfs namenode –format (2)關閉node1,node2 ,node3,系統防火牆並重啟虛擬機。輸入命令: service iptables stop sudo chkconfig iptables off reboot (3.)輸入以下啟動HDFS: [hser@node1 ~]$ cd ~/hadoop (4.)啟動所有 [hser@node1 hadoop]$ sbin/start-all.sh (5.)查看集群狀態: [hser@node1 hadoop]$ bin/hdfs dfsadmin –report (6.)在瀏覽器中查看hdfs運行狀態,網址:http://node1:50070 (7.)停止Hadoop。輸入命令: [hser@node1 hadoop]$ sbin/stop-all.sh 五:Hadoop相關的shell操作 (1.)在操作系統中/home/hser/file目錄下創建file1.txt,file2.txt可使用圖形界面創建。 file1.txt輸入內容: Hello World hi HADOOP file2.txt輸入內容 Hello World hi CHIAN (2.)啟動hdfs後創建目錄/input2 [hser@node1 hadoop]$ bin/hadoop fs –mkdir /input2 (3.)將file1.txt.file2.txt保存到hdfs中: [hser@node1 hadoop]$ bin/hadoop fs –put -/file/file*.txt /input2/ (4.)[hser@node1 hadoop]$ bin/hadoop fs –ls /input2

4. 在命令行窗口輸入什麼命令可以啟動hadoop所有進程

執行start-all.sh

5. perl里怎麼執行hadoop命令

$Hadoop=`which hadoop`;
#這里加上一句
print "$Hadoop fs -get .....\n";
`$Hadoop fs -get ......`;
看看列印出來的命令是不是你想要的,如果是你想要的,就手動執行一遍。
有問題繼續追問。

6. hadoop常用shell命令怎麼用

一、常用的hadoop命令
1、hadoop的fs命令
#查看hadoop所有的fs命令

1

hadoop fs

#上傳文件(put與FromLocal都是上傳命令)

1
2

hadoop fs -put jdk-7u55-linux-i586.tar.gz hdfs://hucc01:9000/jdk
hadoop fs -FromLocal jdk-7u55-linux-i586.tar.gz hdfs://hucc01:9000/jdk

#下載命令(get與ToLocal都是下載命令)

1
2

hadoop fs -get hdfs://hucc01:9000/jdk jdk1.7
hadoop fs -ToLocal hdfs://hucc01:9000/jdk jdk1.7

#將本地一個或者多個文件追加到hdfs文件中(appendToFile)

1

hadoop fs -appendToFile install.log /words

#查詢hdfs的所有文件(ls)

1

hadoop fs -ls /

#幫助命令(help)

1

hadoop fs -help fs

#查看hdfs文件的內容(cat和text)

1
2

hadoop fs -cat /words
hadoop fs -text /words

#刪除hdfs文件(rm)

1

hadoop fs -rm -r /words

#統計hdfs文件和文件夾的數量(count)

1

hadoop fs -count -r /

#合並hdfs某個文件夾的文件,並且下載到本地(getmerge)

1

hadoop fs -getmerge / merge

#將本地文件剪切到hdfs,相當於對本地文件上傳後再刪除(moveFormLocal)

1

hadoop fs -moveFromLocal words /

#查看當前文件系統的使用狀態(df)

1

hadoop fs -df

二、常用的hdfs命令(這個用的比較多)
用法跟hadoop命令一樣,推薦2.0之後使用hdfs命令

1

hdfs dfs

7. hadoop 常用命令、參數

注意:與mapred.min.split.size、mapred.max.split.size、block_size和minSplitSize幾個值有關。

如果只設置mapred.min.split.size,計算方式可以簡化為:

如果不進行任何設置,默認的map個數是和blcok_size相關的。 default_num = total_size / block_size

可以通過參數mapred.map.tasks來設置程序員期望的map個數,但是這個個數只有在大於default_num的時候,才會生效。 goal_num = mapred.map.tasks

可以通過mapred.min.split.size 設置每個task處理的文件大小,但是這個大小隻有在大於block_size的時候才會生效。

通過公式 compute_map_num = min(split_num, max(default_num, goal_num)) 可以計算出 map 數。除了這些配置以外,maprece還要遵循一些原則。 maprece的每一個map處理的數據是不能跨越文件的,也就是說min_map_num >= input_file_num。 所以,最終的map個數應該為: final_map_num = max(compute_map_num, input_file_num)

實際上只設置 mapred.map.tasks 和 mapred.min.split.size 這兩個參數,如果想增加map個數,則設置mapred.map.tasks 為一個較大的值,如果想減少 map 數,則設置mapred.min.split.size 為一個較大的值。

8. 把hadoop/bin添加到path下 以後隨便什麼地方都可以直接執行start-all,sh具體

設置臨時環境變數(只在單個終端 內起作用)
1、首先設置HADOOPHOME環境變數,執行命令:export HADOOPHOME=/../hadoop/hadoop-2.5.2/bin (後面參數為Hadoop安裝位置下的bin目錄)---刪除環境變數的命令為 unset HADOOPHOME
2、把HADOOPHOME添加到PATH變數中,執行命令:PATH=$PATH:$HADOOPHOME(當然可以省略第一步,直接把路徑添加到PATH中也可以)至此可以在任何位置操作Hadoop的命令了
設置永久環境變數
通過修改 /etc/profile 文件來修改環境變數
修改位置如下:
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
pathmunge /sbin after
pathmunge /home/hadoop/hadoop-2.5.2/bin
fi

其中 pathmunge /home/hadoop/hadoop-2.5.2/bin為要添加的,
然後執行命令:source /etc/profile 使其生效
執行命令:echo $PATH 查看就會多出/home/hadoop/hadoop-2.5.2/bin這個路徑,就可以在任意地址下執行Hadoop的命令了

閱讀全文

與hadoop執行命令相關的資料

熱點內容
安卓系統怎麼轉入平板 瀏覽:421
安卓手機相機怎麼提取文字 瀏覽:217
如何查看伺服器映射的外網地址 瀏覽:975
圖片刺綉演算法 瀏覽:663
阿里雲伺服器沒有實例 瀏覽:605
綿陽有沒有什麼app 瀏覽:848
怎麼用游俠映射伺服器 瀏覽:919
為什麼無意下載的app無法刪除 瀏覽:306
word2007打開pdf 瀏覽:117
php正則class 瀏覽:737
怎麼在文件夾查找一堆文件 瀏覽:544
核酸報告用什麼app 瀏覽:791
u8怎麼ping通伺服器地址 瀏覽:994
安卓什麼手機支持背部輕敲調出健康碼 瀏覽:870
程序員抽獎排行 瀏覽:745
扭蛋人生安卓如何下載 瀏覽:724
什麼app文檔資源多好 瀏覽:924
黑馬程序員APP 瀏覽:148
掌閱小說是哪個app 瀏覽:48
如何把u盤的軟體安裝到安卓機 瀏覽:1000