1. 程式人生 > >hadoop常用命令彙總

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 是資料副本數量,預設為3salve少於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 接著啟動datanode1datanode2,然後啟動secondarynamenode。再啟動jobtracker,然後啟動tasktracker1tasktracker2

  啟動 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下的idnamenode 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)修改每個SlavenamespaceID使其與MasternamespaceID一致。

  或者

2)修改MasternamespaceID使其與SlavenamespaceID一致。

  該"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 本文就說些其中比較有用, 比較常用的命令,