hadoop常用命令彙總
命令彙總
網路配置:
hostname
檢視主機名
vi /etc/sysconfig/network
設定主機名
ifconfig
檢視ip情況
vi /etc/sysconfig/network-scripts/ifcfg-eth0
設定網路
DEVICE=
“eth0” 介面名(裝置,網絡卡)
BOOTPROTO=STATIC IP
的配置方法(static:固定IP,dhcpHCP,none:手動)
ONBOOT=yes
系統啟動的時候網路介面是否有效(yes/no)
IPADDR=192.168.1.2 IP
網址
GETEWAY=192.168.1.0
閘道器
DNS1=202.113.112.55 DNS
伺服器
service network restart
重啟網絡卡服務
service network start
開始網絡卡服務
service network stop
停止網絡卡服務
ifconfig eth0 up|down
關閉和啟用指定的網絡卡
ifconfig
檢視配置的ip資訊是否生效
vi /etc/ hosts
設定主機名和ip的對映關係
192.168.1.2 master
192.168.1.3 slave1
192.168.1.4 slave2
ping master
service iptables stop
關閉防火牆
chkconfig iptables off
關閉自啟動服務
配置SSH
rpm -qa | grep openssh
檢視是否安裝了ssh服務
rpm -qa | grep rsync
檢視是否安裝了rsync服務
yum install ssh
安裝ssh協議
yum install rsync rshnc
是一個遠端資料同步工具
service sshd restart
啟動sshd服務
ssh-keygen -t rsa -P ‘’
生成無密碼金鑰對(存放路徑是
/home/Hadoop/.ssh
)
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
將id_rsa.pub追加
到授權的Key中
chmod 600 ~/.ssh/authorized_keys
授予讀寫的許可權
vi /etc/ssh/sshd_config
修改sshd服務的配置檔案
RSAAuthentication yes # 啟用 RSA 認證
PubkeyAuthentication yes # 啟用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰檔案路徑(和上面生成的檔案同)
service sshd restart
重啟sshd服務,使修改生效
ssh master
驗證ssh登入(第一次會要求輸入一次密碼)
單點對多點的SSH無密碼登入
ssh-keygen
ssh-copy-id [email protected]
格式是“ssh-copy-id 使用者名稱@主機名”
ssh-copy-id [email protected]
將本機的公鑰複製到遠端機器的
authorized_keys
檔案中
多點對多點的ssh無密碼登入
操作起來比較複雜,建議使用指令碼語言實現。
每個機器上生成自己的公鑰和私鑰,並把自己的公鑰追加到
authorized_keys
檔案
安裝JDK
root
使用者登入
mkdir /usr/java
建立/usr/java目錄
cp /root/Downloads/jdk-6u31-linux-i584.bin /usr/java
複製
chmod +x jdk-6u31-linux-i584.bin
賦予執行的許可權
./jdk-6u31-linux-i584.bin
解壓過bin檔案
rm -rf jdk-6u31-linux-i584.bin
刪除jdk安裝檔案
vim /etc/profile
在尾部新增如下內容:
# set java environment
exportJAVA_HOME=/usr/java/jdk1.6.0_31/
exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile
使profile的配置檔案生效
java –version
驗證jdk是否安裝成功
安裝剩餘機器:
scp /usr/java/jdk1.6.0_31/ [email protected]:
/usr/java/
使用shell指令碼安裝:
for i in $(seq 1 100);
do echo slave$i;
scp /usr/java/jdk1.6.0_31/ [email protected]$i:
/usr/java/;
done
profile
環境變數的配置檔案也可以配置好後一次傳送所有叢集中。
Hadoop
叢集的安裝
以root使用者登入
cp /root/Downloads/Hadoop-1.0.0.tar.gz /usr
cd /usr
tar -zxvf Hadoop-1.0.0.tar.gz
解壓tar.gz的安裝包
mv Hadoop-1.0.0 hadoop
資料夾重新命名
chown -R Hadoop:Hadoop Hadoop hadoo
檔案的屬主重新分配,-R是遞迴,hadoop資料夾分配給hadoop組下的hadoop使用者
rm –rf Hadoop-1.0.0.tar.gz
刪除安裝檔案(-r是遞迴,-f是強制)
配置hadoop的環境變數
vi /etc/profile
export HADOOP_HOME=/usr/Hadoop
export PATH=$PATH:$HADOOP_HOME/bin
sourcr /etc/profile
使配置生效
配置hadoop
1.
配置hadoop-env.sh
檔案位於“/usr/Hadoop/conf”
vi /usr/Hadoop/conf/Hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_31
2.
配置core-site.xml檔案
mkdir /usr/Hadoop/tmp
建立資料夾tmp,用來儲存hadoop臨時資料
vi /usr/Hadoop/conf/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
(備註:請先在 /usr/hadoop 目錄下建立 tmp 資料夾,預設採用系統的臨時目錄:/tmp/Hadoop-hadoop。而這個目錄每次重啟都會被幹掉,必須重新執行format才行,否則會出錯。)
<description>A base for other temporary directories.</description>
</property>
<!--file system properties ,配置NameNode的訪問地址-->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.2:9000</value>
</property>
</configuration>
3.
配置hdfs-site.xml檔案
修改hadoop中的hdfs的配置,配置的備份方式預設是3
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
(備註:replication 是資料副本數量,預設為3,salve少於3臺就會報錯)
</property>
<configuration>
4.
配置mapred-site.xml檔案
修改hadoop中mapreduce的配置檔案,配置的jobTracker的地址和埠
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.1.2:9001</value>
</property>
</configuration>
5.
配置masters檔案
修改/usr/Hadoop/conf/masters檔案,指定master機器的主機名
vi /usr/Hadoop/conf/masters
192.168.1.2
(或者是master)
6.
配置slaves檔案
vi /usr/Hadoop/conf/slaves
slave1
slave2
注意:單機啟動的時候,conf/slaves中一定不能為空。沒有其他機器,就指定自己。
叢集環境下,slave機器上可以不配置slaves
7.
在叢集中的其他機器上重複此配置
建議在普通使用者hadoop下通過scp複製到其他機器的對應目錄下。
其中第6步是master機器上特有的
使用shell指令碼:
for i in $(seq1 100);
do echo slave$i;
scp /usr/hadoop [email protected]$i:
/usr;
scp /etc/profile [email protected]ave$i:/etc;
done
複製檔案後可能會發現hadoop目錄是root許可權
chown -R hadoop:Hadoop Hadoop
授權給hadoop使用者
Hadoop
啟動相關命令:
Hadoop namenode -format
在master機器上格式化namenode
只需要執行一次,如果要重新執行,一定要先刪掉配置檔案core-site.xml中配置的
hadoop.tmp.dir對應路徑下的檔案
service iptables stop
關閉叢集中所有機器防火牆
For iin (seq 1 100 );
Do ssh node$i “hostname;
service iptable stop;
chkconfig iptables off;
service iptables status
”; done
start-all.sh
啟動hadoop的所有服務,包含(hdfs和mapreduce的相關服務)
可以通過以下啟動日誌看出,首先啟動namenode 接著啟動datanode1,datanode2,…,然後啟動secondarynamenode。再啟動jobtracker,然後啟動tasktracker1,tasktracker2,…。
啟動 hadoop成功後,在 Master 中的 tmp 資料夾中生成了 dfs 資料夾,在Slave 中的 tmp 資料夾中均生成了 dfs 資料夾和 mapred 資料夾。
jps
檢視程序
在master上的結果是:
jobTracker
NameNode
jps
SecondaryNameNode
在slave上的結果是:
TaskTracker
DataNode
jps
Hadoop dfsadmin -report
檢視hadoop叢集的狀態
Hadoop dfsadmin -safemode leave
關閉hdfs的安全模式
http:192.168.1.2:50030
訪問mapreduce對應網頁
http:192.168.1.2:50070
訪問hdfs的對應網頁
服務一直啟動不了的終極解決辦法:
1.刪除叢集中所有機器上的/usr/Hadoop/tmp檔案
2.刪除叢集中所有機器上的pid檔案。預設存放在/tmp目錄下。這裡我重新設定到了/bigdata/hadoop/pids,記得要授權給hadoop使用者
3.重新執行stop-all.sh,把能關的服務先都關掉。
4.執行ps -ef | grep java| grep hadoop命令,查詢是否還有hadoop相關程序才執行,如果有,執行kill -9 程序號 命令殺掉
5.重新格式化主機master
Hadoopnamenode -format
6.執行start-all.sh啟動hadoop
7.發現沒有報錯,執行 Hadoopdfsadmin –report 命令檢視hadoop執行狀態
出現如圖所示:
發現只啟動了一個節點。可能是還存在安全模式。
8.執行hadoop dfsadmin –safemodeleave,關閉主機上的安全模式
9.再次執行hadoop dfsadmin –report
解決“no datanode to stop”問題?
原因:
每次namenode format會重新建立一個namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的資料,但是沒有清空datanode下的資料,導致啟動時失敗,所要做的就是每次fotmat前,清空tmp一下的所有目錄。
第一種方法:
刪除master上的tmp資料夾
rm -rf /usr/Hadoop/tmp
建立/usr/Hadoop/tmp資料夾
mkdir /usr/Hadoop/tmp
刪除“/tmp”一下的“hadoop”開標頭檔案
rm -rf /tmp/Hadoop*
重新格式化hadoop的master
Hadoop namenode -format
啟動hadoop
start-all.sh
使用第一種方案,有種不好處就是原來叢集上的重要資料全沒有了。假如說Hadoop叢集已經運行了一段時間。建議採用第二種。
第二種方法:(推薦)
1)修改每個Slave的namespaceID使其與Master的namespaceID一致。
或者
2)修改Master的namespaceID使其與Slave的namespaceID一致。
該"namespaceID"位於"/usr/hadoop/tmp/dfs/data/current/VERSION"檔案中,前面藍色的可能根據實際情況變化,但後面紅色是不變的。
建議採用第二種,這樣方便快捷,而且還能防止誤刪。
解決Exceeded MAX_FAILED_UNIQUE_FETCHES問題
出現錯誤如下:
Shuffle Error: ExceededMAX_FAILED_UNIQUE_FETCHES; bailing-out
程式裡面需要開啟多個檔案,進行分析,系統一般預設數量是1024,(用ulimit -a可以看到)對於正常使用是夠了,但是對於程式來講,就太少了。
執行ulimit -a 檢視檔案限制數量
vim /etc/security/limits.conf
新增:
soft nofile 102400
soft nofile 409600
vim /etc/pam.d/login
新增:
session required /lib/security/pam_limits.so
相關推薦
hadoop常用命令彙總
命令彙總 網路配置: hostname 檢視主機名 vi /etc/sysconfig/network 設定主機名 ifconfig 檢視ip情況 vi /etc/sysconfig/networ
Hadoop常用命令
hadoop常用指令網絡配置hostname 查看珠璣名vim /etc/sysconfig/network 設置主機名ifconfig 查看ip情況vim /etc/sysconfig/network-scripts/ifcfg-eth0 設置網絡DEVICE="eth0" 接口名(設
大數據之---hadoop常用命令大全終極篇
大數據 Hadoop 軟件環境 RHEL6.8 hadoop2.8.1 apache-maven-3.3.9findbugs-1.3.9 protobuf-2.5.0.tar.gz jdk-8u45(操作環境root安裝啟動的hadoop)hadoop fs == hdfs dfs 將文件上傳至ha
Hadoop常用命令總結
結構 換行 表示 hdf 幫助 需要 創建 data deny 一、前述 分享一篇hadoop的常用命令的總結,將常用的Hadoop命令總結如下。 二、具體 1、啟動hadoop所有進程start-all.sh等價於start-dfs.sh + start-yarn.
Kafka常用命令彙總
Kafka常用命令彙總: 1、列出叢集裡的所有主題。 kafka-topics.sh --zookeeper localhost:2181 --list [[email protected] ~]$ kafka-topics.sh --zookeeper localhost:218
Vim常用命令彙總
三種模式 命令模式 編輯模式 底線命令模式 常用命令 切換到編輯模式 i:游標處插入 I:該行首插入 A:該行末插入 o:開闢下一行並插入 O:開闢上一行並插入 移動游標 $:行末 ^:行首
linux部署專案常用命令彙總
啟動tomcat:./startup.sh 停止tomcat:shutdown.sh 檢視是否啟動:ps -ef | grep tomcat 檢視通tomcat實時日誌:tail -f catalina.out 殺死程序:kill -9 5144 根據文字搜尋關鍵字:grep O
github常用命令彙總
創立版本庫 mkdir Baidu cd Baidu git init SSH ssh-keygen -t -rsa -C “[email protected]” (在github上new SSH,內容為id_rsa.pub) 新增遠端庫 (github上新建git倉庫
Android中的常用命令彙總
工欲善其事必先利其器,在Android開發過程中,為了開發除錯,查詢問題的需要,必須掌握一些常用的命令的用法,這裡總結了一些在Android開發中經常會用到的命令,一共15個。 1、ps 列出所有的程序 這個命令是Android除錯和問題查詢的時候經常會用到的一個命令,在不帶引數的情況下
git使用中常用命令彙總
git init:初始化當前目錄為git倉庫 git clone 倉庫地址:下載一份git倉庫到本地(clone下來的倉庫的預設名為origin,而且下載的是主分支,主分支一般是master) git status:檢查本地是否有更新。 git status -s:和g
git常用命令彙總
比較不同 git diff 比較本地和快取區的不同 git diff --cached 比較快取區和分支的不同 刪除和還原 rm test.txt 刪除本地檔案 git rm test.txt 刪除git檔案 撤銷修改和刪除: 1
Hadoop常用命令引數介紹
常用命令 - help 功能:輸出這個命令引數手冊 - ls 功能:顯示目錄資訊 示例:hadoop fs -ls hdfs://hadoop-hello/ 備註:這些引數中,所有的hdfs路徑都可以簡寫–>hadoop fs -ls /等同於上一條命令效果 - mkdir 功能:在h
conda常用命令彙總
conda --version 檢測conda版本 conda update conda 升級conda版本 conda create -n [名稱] python=2.7/3.5 建立一個python環境,版本為python引數設定的 python --vers
MySQL常用命令彙總(偏向運維管理)
MySQL常用命令彙總(偏向運維管理) 基礎部分 1. select @@version; ##查詢當前mysql的版本. 2. show variables like 'port';##檢視mysql例項的埠。 3. show variables like 'socket';##檢
git 常用命令彙總
1 獲取git的版本 git --version 2 初始化倉庫 git init 初始化一個本地倉庫 git --version 獲取git的版本 git config --global user.name "yourname" git
Linux/Unix常用命令彙總
Linux/Unix常用命令彙總 Linux中最常用的命令,應熟練使用 ls:檢視檔案資訊 clear:清屏 cd:切換工作目錄 pwd:顯示當前路徑 mkdir:建立目錄 rm:刪除檔案 cp:拷貝
redis部分常用命令彙總
redis命令有很多,一般包括伺服器命令和一些具體資料結構的操作命令,這裡介紹了一些常用命令彙總,主要是通過查閱資料和結合個人總結,方便自己也方便他人查閱,如有不對之處還請多多指教。 啟動 redis 客戶端 開啟終端或在redis檔案路徑開啟命令列並輸入命令 redis-cli。該命令會連
ROS常用命令彙總
ROS系統也是通過命令列操作,總結了下平時工作中使用的命令工具,以後使用多會陸續新增. 檢視ROS_PACKAGE_PATH環境變數 $ echo $ROS_PACKAGE_PATH /home/saneri/catkin_ws/src:/opt/ros/kinetic/share
Linux系統運維常用命令彙總
netstat -na | grep 7651 檢視本機7651埠在和誰通訊 ps aux | grep 7651 檢視本機7651程序的相關資訊 md5sum 檔名 用於檢視檔案的md5值,常用於檢查檔案是否一致 ps aux --sort -rss 顯示各個程
linux vi(vim)常用命令彙總(轉)
前言 首先介紹一下 vim vi 是 unix/linux 下極為普遍的一種文字編輯器, 大部分機器上都有 vi 有各種變種, 在不同的機器上常用不同的變種軟體 其中 vim 比較好用也用得比較廣泛 vim 是 Vi IMproved 的縮寫, 表示更好的 vi 本文就說些其中比較有用, 比較常用的命令,