Hadoop集群配置(最全面總結)

通常,集群里的一臺機器被指定為 NameNode,另一臺不同的機器被指定為JobTracker。這些機器是masters。余下的機器即作為DataNode作為TaskTracker。這些機器是slaves\

官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html)

1 先決條件

  1. 確保在你集群中的每個節點上都安裝了所有必需軟件:sun-JDK  ,ssh,Hadoop

  2. JavaTM1.5.x,必須安裝,建議選擇Sun公司發行的Java版本。

  3. ssh 必須安裝并且保證 sshd一直運行,以便用Hadoop 腳本管理遠端Hadoop守護進程。

2 實驗環境搭建

   2.1  準備工作

     操作系統:Ubuntu
     部署:Vmvare
     在vmvare安裝好一臺Ubuntu虛擬機后,可以導出或者克隆出另外兩臺虛擬機。
     說明:
    保證虛擬機的ip和主機的ip在同一個ip段,這樣幾個虛擬機和主機之間可以相互通信。
    為了保證虛擬機的ip和主機的ip在同一個ip段,虛擬機連接設置為橋連。

     準備機器:一臺master,若干臺slave,配置每臺機器的/etc/hosts保證各臺機器之間通過機器名可以互訪,例如:
     10.64.56.76 node1(master)   
     10.64.56.77 node2 (slave1)   
     10.64.56.78 node3 (slave2)
     主機信息:  

機器名   IP地址 作用
master 10.64.56.76 NameNode、JobTracker
Node1 10.64.56.76 NameNode、JobTracker
Node2 10.64.56.77 DataNode、TaskTracker
Node3 10.64.56.78 DataNode、TaskTracker

為保證環境一致先安裝好JDK和ssh:

2.2 安裝JDK

#安裝JDK
$ sudo apt-get install sun-java6-jdk1.2.3     
這個安裝,java執行文件自動添加到/usr/bin/目錄。
驗證 shell命令 :java -version 看是否與你的版本號一致。

2.3下載、創建用戶

$ useradd hadoop
$ cd  /home/hadoop

在所有的機器上都建立相同的目錄,也可以就建立相同的用戶,最好是以該用戶的home路徑來做hadoop的安裝路徑。
例如在所有的機器上的安裝路徑都是:/home/hadoop/hadoop-0.20.203,這個不需要mkdir,在/home/hadoop/下解壓hadoop包的時候,會自動生成)
(當然可以安裝/usr/local/目錄下,例如/usr/local/hadoop-0.20.203/
  chown -R hadoop /usr/local/hadoop-0.20.203/
  chgrp -R hadoop  /usr/local/hadoop-0.20.203/

(最好不要使用root安裝,因為不推薦各個機器之間使用root訪問 )

2.4 安裝ssh和配置

1) 安裝:sudo apt-get install ssh 

     這個安裝完后,可以直接使用ssh命令 了。
     執行$ netstat  -nat    查看22端口是否開啟了。
     測試:ssh localhost。
     輸入當前用戶的密碼,回車就ok了。說明安裝成功,同時ssh登錄需要密碼。
   (這種默認安裝方式完后,默認配置文件是在/etc/ssh/目錄下。sshd配置文件是:/etc/ssh/sshd_config): 

    注意:在所有機子都需要安裝ssh。

2)  配置

在Hadoop啟動以后,Namenode是通過SSH(Secure Shell)來啟動和停止各個datanode上的各種守護進程的,這就須要在節點之間執行指令的時候是不須要輸入密碼的形式,故我們須要配置SSH運用無密碼公鑰認證的形式。
以本文中的三臺機器為例,現在node1是主節點,他須要連接node2和node3。須要確定每臺機器上都安裝了ssh,并且datanode機器上sshd服務已經啟動。

( 說明:hadoop@hadoop~]$ssh-keygen  -t  rsa
這個命令將為hadoop上的用戶hadoop生成其密鑰對,詢問其保存路徑時直接回車采用默認路徑,當提示要為生成的密鑰輸入passphrase的時候,直接回車,也就是將其設定為空密碼。生成的密鑰對id_rsa,id_rsa.pub,默認存儲在/home/hadoop/.ssh目錄下然后將id_rsa.pub的內容復制到每個機器(也包括本機)的/home/dbrg/.ssh/authorized_keys文件中,如果機器上已經有authorized_keys這個文件了,就在文件末尾加上id_rsa.pub中的內容,如果沒有authorized_keys這個文件,直接復制過去就行.)

3) 首先設置namenode的ssh為無需密碼的、自動登錄。

切換到hadoop用戶( 保證用戶hadoop可以無需密碼登錄,因為我們后面安裝的hadoop屬主是hadoop用戶。)

$ su hadoop
cd /home/hadoop
$ ssh-keygen -t rsa

然后一直按回車
完成后,在home跟目錄下會產生隱藏文件夾.ssh

$ cd .ssh

之后ls 查看文件

cp id_rsa.pub  authorized_keys

測試:

$ssh localhost

或者:

$ ssh node1

第一次ssh會有提示信息:

The authenticity of host ‘node1 (10.64.56.76)’ can’t be established.
RSA key fingerprint is 03:e0:30:cb:6e:13:a8:70:c9:7e:cf:ff:33:2a:67:30.
Are you sure you want to continue connecting (yes/no)?

輸入 yes 來繼續。這會把該服務器添加到你的已知主機的列表中

發現鏈接成功,并且無需密碼。

4 ) 復制authorized_keys到node2 和node3 上

為了保證node1可以無需密碼自動登錄到node2和node3,先在node2和node3上執行

$ su hadoop
cd /home/hadoop
$ ssh-keygen -t rsa

一路按回車.
然后回到node1,復制authorized_keys到node2 和node3 

[hadoop@hadoop .ssh]$ scp authorized_keys   node2:/home/hadoop/.ssh/
[hadoop@hadoop .ssh]$ scp authorized_keys   node3:/home/hadoop/.ssh/

這里會提示輸入密碼,輸入hadoop賬號密碼就可以了。
改動你的 authorized_keys 文件的許可權限

[hadoop@hadoop .ssh]$chmod 644 authorized_keys

測試:ssh node2或者ssh node3(第一次需要輸入yes)。
如果不須要輸入密碼則配置成功,如果還須要請檢查上面的配置能不能正確。

2.5 安裝Hadoop

#切換為hadoop用戶

su hadoop
wgethttp://apache.mirrors.tds.net//hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz

下載安裝包后,直接解壓安裝即可:

$ tar -zxvfhadoop-0.20.203.0rc1.tar.gz

1 ) 安裝Hadoop集群通常要將安裝軟件解壓到集群內的所有機器上。并且安裝路徑要一致,如果我們用HADOOP_HOME指代安裝的根路徑,通常,集群里的所有機器的     
     HADOOP_HOME路徑相同。
2 )  如果集群內機器的環境完全一樣,可以在一臺機器上配置好,然后把配置好的軟件即hadoop-0.20.203整個文件夾拷貝到其他機器的相同位置即可。
3 )  可以將Master上的Hadoop通過scp拷貝到每一個Slave相同的目錄下,同時根據每一個Slave的Java_HOME 的不同修改其hadoop-env.sh 。
4)   為了方便,使用hadoop命令或者start-all.sh等命令,修改Master上/etc/profile 新增以下內容: 
    export HADOOP_HOME=/home/hadoop/hadoop-0.20.203
    exportPATH=$PATH:$HADOOP_HOME/bin
   修改完畢后,執行source /etc/profile 來使其生效。  

6)配置conf/hadoop-env.sh文件

配置conf/hadoop-env.sh文件
#添加

export JAVA_HOME=/usr/lib/jvm/java-6-sun/
這里修改為你的jdk的安裝位置。
測試hadoop安裝:
Bin/hadoop jar hadoop-0.20.2-examples.jarwordcount  conf/   /tmp/out

3. 集群配置(所有節點相同)

3.1配置文件:conf/core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<configuration>
<property>
 <name>fs.default.name</name>
  <value>hdfs://node1:49000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
 <value>/home/hadoop/hadoop_home/var</value>
</property>
</configuration>

1)fs.default.name是NameNode的URI。hdfs://主機名:端口/
2)hadoop.tmp.dir :Hadoop的默認臨時路徑,這個最好配置,如果在新增節點或者其他情況下莫名其妙的DataNode啟動不了,就刪除此文件中的tmp目錄即可。不過如果刪除了NameNode機器的此目錄,那么就需要重新執行NameNode格式化的命令。

3.2配置文件:conf/mapred-site.xml

<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>node1:49001</value>
</property>
<property>
  <name>mapred.local.dir</name>
 <value>/home/hadoop/hadoop_home/var</value>
</property>
</configuration>

1)mapred.job.tracker是JobTracker的主機(或者IP)和端口。主機:端口。

3.3配置文件:conf/hdfs-site.xml

<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name1, /home/hadoop/name2</value> #hadoop的name目錄路徑
<description>  </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data1, /home/hadoop/data2</value>
<description> </description>
</property>
<property>
  <name>dfs.replication</name>
  <!-- 我們的集群又兩個結點,所以rep兩份 -->
  <value>2</vaue>
</property>
</configuration>

1)   dfs.name.dir是NameNode持久存儲名字空間及事務日志的本地文件系統路徑。 當這個值是一個逗號分割的目錄列表時,nametable數據將會被復制到所有目錄中做冗余備份。
2)   dfs.data.dir是DataNode存放塊數據的本地文件系統路徑,逗號分割的列表。 當這個值是逗號分割的目錄列表時,數據將被存儲在所有目錄下,通常分布在不同設備上。
3)dfs.replication是數據需要備份的數量,默認是3,如果此數大于集群的機器數會出錯。

注意:此處的name1、name2、data1、data2目錄不能預先創建,hadoop格式化時會自動創建,如果預先創建反而會有問題。

3.4配置masters和slaves主從結點

配置conf/masters和conf/slaves來設置主從結點,注意最好使用主機名,并且保證機器之間通過主機名可以互相訪問,每個主機名一行。

vi masters:
輸入:

node1

vi slaves:

輸入:
node2
node3

配置結束,把配置好的hadoop文件夾拷貝到其他集群的機器中,并且保證上面的配置對于其他機器而言正確,例如:如果其他機器的Java安裝路徑不一樣,要修改conf/hadoop-env.sh 

$ scp -r /home/hadoop/hadoop-0.20.203 root@node2: /home/hadoop/

4 hadoop啟動

4.1 格式化一個新的分布式文件系統

先格式化一個新的分布式文件系統

$ cd hadoop-0.20.203
$ bin/hadoop namenode -format

成功情況下系統輸出:

12/02/06 00:46:50 INFO namenode.NameNode:STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = ubuntu/127.0.1.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.203.0
STARTUP_MSG:   build =http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203-r 1099333; compiled by 'oom' on Wed May 4 07:57:50 PDT 2011
************************************************************/
12/02/0600:46:50 INFO namenode.FSNamesystem: fsOwner=root,root
12/02/06 00:46:50 INFO namenode.FSNamesystem:supergroup=supergroup
12/02/06 00:46:50 INFO namenode.FSNamesystem:isPermissionEnabled=true
12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.
12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name1 has been successfully formatted.
12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.
12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted.
12/02/06 00:46:50 INFO namenode.NameNode:SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode atv-jiwan-ubuntu-0/127.0.0.1
************************************************************/

查看輸出保證分布式文件系統格式化成功
執行完后可以到master機器上看到/home/hadoop//name1和/home/hadoop//name2兩個目錄。在主節點master上面啟動hadoop,主節點會啟動所有從節點的hadoop。

4.2 啟動所有節點

啟動方式1

$ bin/start-all.sh (同時啟動HDFS和Map/Reduce)
系統輸出:
starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-ubuntu.out
node2: starting datanode, loggingto /usr/local/hadoop/logs/hadoop-hadoop-datanode-ubuntu.out
node3: starting datanode, loggingto /usr/local/hadoop/logs/hadoop-hadoop-datanode-ubuntu.out
node1: starting secondarynamenode,logging to /usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-ubuntu.out
starting jobtracker, logging to/usr/local/hadoop/logs/hadoop-hadoop-jobtracker-ubuntu.out
node2: starting tasktracker,logging to /usr/local/hadoop/logs/hadoop-hadoop-tasktracker-ubuntu.out
node3: starting tasktracker,logging to /usr/local/hadoop/logs/hadoop-hadoop-tasktracker-ubuntu.out
As you can see in slave's output above, it will automatically format it's storage directory(specified by dfs.data.dir) if it is not formattedalready. It will also create the directory if it does not exist yet.

執行完后可以到master(node1)和slave(node1,node2)機器上看到/home/hadoop/hadoopfs/data1和/home/hadoop/data2兩個目錄。

啟動方式2

啟動Hadoop集群需要啟動HDFS集群和Map/Reduce集群。

在分配的NameNode上,運行下面的命令啟動HDFS:

$ bin/start-dfs.sh(單獨啟動HDFS集群)
bin/start-dfs.sh腳本會參照NameNode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動DataNode守護進程。

在分配的JobTracker上,運行下面的命令啟動Map/Reduce:

$bin/start-mapred.sh (單獨啟動Map/Reduce)
bin/start-mapred.sh腳本會參照JobTracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動TaskTracker守護進程。

4.3 關閉所有節點

從主節點master關閉hadoop,主節點會關閉所有從節點的hadoop。

$ bin/stop-all.sh 
Hadoop守護進程的日志寫入到 ${HADOOP_LOG_DIR} 目錄 (默認是 ${HADOOP_HOME}/logs).
${HADOOP_HOME}就是安裝路徑.

5 .測試

1)瀏覽NameNode和JobTracker的網絡接口,它們的地址默認為:

NameNode – http://node1:50070/
JobTracker – http://node2:50030/

3)   使用netstat  –nat查看端口49000和49001是否正在使用。

4)  使用jps查看進程

要想檢查守護進程是否正在運行,可以使用 jps 命令(這是用于 JVM 進程的ps 實用程序)。這個命令列出 5 個守護進程及其進程標識符。

5)將輸入文件拷貝到分布式文件系統:

$ bin/hadoop fs -mkdir input
$ bin/hadoop fs -put conf/core-site.xml input

運行發行版提供的示例程序:

$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'

6.補充
Q: bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+' 什么意思???
A: bin/hadoop jar(使用hadoop運行jar包) hadoop-0.20.2_examples.jar(jar包的名字) grep (要使用的類,后邊的是參數)input output 'dfs[a-z.]+'
整個就是運行hadoop示例程序中的grep,對應的hdfs上的輸入目錄為input、輸出目錄為output。 
Q: 什么是grep?
A: A map/reduce program that counts the matches of a regex in the input.

查看輸出文件:

將輸出文件從分布式文件系統拷貝到本地文件系統查看:

$ bin/hadoop fs -get output output 
$ cat output/*

或者

在分布式文件系統上查看輸出文件:

$ bin/hadoop fs -cat output/*

統計結果:
root@v-jiwan-ubuntu-0:~/hadoop/hadoop-0.20.2-bak/hadoop-0.20.2#bin/hadoop fs -cat output/part-00000
3       dfs.class
2       dfs.period
1       dfs.file
1      dfs.replication
1       dfs.servers
1       dfsadmin

7. HDFS常用操作

hadoopdfs -ls 列出HDFS下的文件
hadoop dfs -ls in 列出HDFS下某個文檔中的文件
hadoop dfs -put test1.txt test 上傳文件到指定目錄并且重新命名,只有所有的DataNode都接收完數據才算成功
hadoop dfs -get in getin 從HDFS獲取文件并且重新命名為getin,同put一樣可操作文件也可操作目錄
hadoop dfs -rmr out 刪除指定文件從HDFS上
hadoop dfs -cat in/* 查看HDFS上in目錄的內容
hadoop dfsadmin -report 查看HDFS的基本統計信息,結果如下
hadoop dfsadmin -safemode leave 退出安全模式
hadoop dfsadmin -safemode enter 進入安全模式

8.添加節點

可擴展性是HDFS的一個重要特性,首先在新加的節點上安裝hadoop,然后修改$HADOOP_HOME/conf/master文件,加入 NameNode主機名,然后在NameNode節點上修改$HADOOP_HOME/conf/slaves文件,加入新加節點主機名,再建立到新加節點無密碼的SSH連接

運行啟動命令:

start-all.sh

然后可以通過http://(Masternode的主機名):50070查看新添加的DataNode

9負載均衡

start-balancer.sh,可以使DataNode節點上選擇策略重新平衡DataNode上的數據塊的分布

結束語:遇到問題時,先查看logs,很有幫助。

10 SHell自動安裝腳本

  1. /bin/bash  
      
    #validate user or group  
    validate() {  
     if [ 'id -u' == 0 ];then  
       echo "must not be root!"  
       exit 0  
     else  
       echo "---------welcome to hadoop---------"  
     fi  
    }  
      
    #hadoop install  
    hd-dir() {  
     if [ ! -d /home/hadoop/ ];then  
       mkdir /home/hadoop/  
     else  
       echo "download hadoop will begin"  
     fi  
    }  
      
    download-hd() {  
     wget -c http://archive.apache.org/dist/hadoop/core/stable/hadoop-1.0.4.tar.gz -O /home/hadoop/hadoop-1.0.4.tar.gz  
     tar -xzvf /home/hadoop/hadoop-1.0.4.tar.gz -C /home/hadoop  
     rm /home/hadoop/hadoop-1.0.4.tar.gz  
     Ln -s /home/hadoop/hadoop-1.0.4 /home/hadoop/hadoop1.0.4  
    }  
      
    #hadoop conf  
    hd-conf() {  
     echo "export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386" >> /home/hadoop/hadoop1.0.4/conf/hadoop-env.sh  
     echo "#set path jdk" >> /home/hadoop/.profile  
     echo "export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386" >> /home/hadoop/.profile  
     echo "#hadoop path" >> /home/hadoop/.profile  
     echo "export HADOOP_HOME=/home/hadoop/hadoop1.0.4" >> /home/hadoop/.profile  
     echo "PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin" >> /home/hadoop/.profile  
     echo "HADOOP_HOME_WARN_SUPPRESS=1" >> /home/hadoop/.profile  
    #hadoop core-site.xml  
     echo "<configuration>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "<property>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "<name>fs.default.name</name>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "<value>hdfs://hadoop-master:9000" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "</property>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "<property>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "<name>hadoop.tmp.dir</name>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "<value>/home/hadoop/tmp</value>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "</property>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
     echo "</configuration>" >> /home/hadoop/hadoop1.0.4/conf/core-site.xml  
    #hadoop hdfs-site.xml  
      
     echo "<configuration>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<property>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<name>dfs.name.dir</name>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<value>/home/hadoop/name</value>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "</property>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<property>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<name>dfs.data.dir</name>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<value>/home/hadoop/data</value>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "</property>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<property>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<name>dfs.replication</name>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "<value>1</value>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "</property>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
     echo "</configuration>" >> /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml  
    # hadoop mapred-site.xml  
      
     echo "<configuration>" >> /home/hadoop/hadoop1.0.4/conf/mapred-site.xml  
     echo "<property>" >> /home/hadoop/hadoop1.0.4/conf/mapred-site.xml  
     echo "<name>mapred.job.tracker</name>" >> /home/hadoop/hadoop1.0.4/conf/mapred-site.xml  
     echo "<value>hadoop-master:9001</value>" >> /home/hadoop/hadoop1.0.4/conf/mapred-site.xml  
     echo "</property>" >> /home/hadoop/hadoop1.0.4/conf/mapred-site.xml  
     echo "</configuration>" >> /home/hadoop/hadoop1.0.4/conf/mapred-site.xml  
    #hadoop master  
     echo "hadoop-master" >> /home/hadoop/hadoop1.0.4/conf/masters  
      
    #hadoop slaves  
     echo "hadoop-master" >> /home/hadoop/hadoop1.0.4/conf/slaves  
    source /home/hadoop/.profile  
    }  
      
    hd-start() {  
    hadoop namenode -format  
    }  
      
      
    yes-or-no() {  
      echo "Is your name $* ?"  
      while true  
      do  
         echo -n "Enter yes or no: "  
         read x  
         case "$x" in  
         y | yes ) return 0;;  
         n | no ) return 1;;  
         * ) echo "Answer yes or no";;  
       esac  
      done  
    }  
      
    echo "Original params are $*"  
      
    if yes-or-no "$1"  
    then  
      echo "HI $1,nice name!"  
      validate  
      hd-dir  
      download-hd  
      hd-conf  
    else  
      echo "Never mind!"  
    fi

轉自:http://blog.csdn.net/hguisu/article/details/7237395

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/3110

(0)
s19930811s19930811
上一篇 2015-04-13
下一篇 2015-04-14

相關推薦

  • 文本三劍客之AWK

    文本三劍客—-awk(3) awk簡介 awk是一個強大的文本分析工具,與grep(查找)、sed(編輯)一并稱為“文本處理三劍客”。awk最強大的功能是對數據分析并生成報告。 awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk是AWK的GNU版本。 awk其名稱得自于它的創始人 Alfred Aho 、P…

    2017-07-17
  • 馬哥教育網絡班21期第11周課程練習

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 發送方Bob:自上至下 1、生成數據 2、Bob用單向加密算法對數據提取特征碼 3、Bob用自己的私鑰加密特征碼,并附加在數據后面 4、Bob使用對稱加密算法生成臨時會話密鑰加密特征碼和數據 5、Bob用Alice的公鑰加密臨時會話密鑰,并附加在數據后 接收方Alice:自下至上 1、Alice收到Bob數據,…

    Linux干貨 2016-10-31
  • mongodb數據庫切分

    前言:  相信維護過有大數據的MySQL的運維人員一定對sharding這個非常了解,MySQL數據庫切分自身沒有工具需要借助第三方工具進行;MySQL切片是一件非常頭疼而又難做的一件事,一旦切分錯誤,不僅不能優化數據庫,反而會加劇數據庫負載;mongodb相對于MySQL來說,數據庫切分是mongodb與生俱來的功能,mongodb會自動切分數據…

    Linux干貨 2015-09-05
  • 網絡管理之多網卡bond,mode1

    一.概述 Bonding     就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 Bonding的工作模式     Mode…

    Linux干貨 2016-09-15
  • Linux基本命令

    前言 今天學習了Linux下的一些基本命令,在此歸納總結一下這些命令的基本用法。 Linux命令幫助的獲取     在拿到一個命令后不知道其用法,我們可以通過命令幫助來查看它的用法,但linux下內部命令和外部命令獲取幫助的方法是有差別的。     內部命令:help command &n…

    Linux干貨 2016-10-14
  • bash腳本編程之select語法詳解

    shell編程之select select控制結構(在tcsh中不可用)基于Korn Shell中的控制結構 select語句首先顯示一個菜單,然后根據用戶的選擇給變量賦予相應的值,最后執行一系列命令 其語法如下: select varname in list do commands done select 表達式是一種bash的擴展應用,動作包括: 自動用…

    Linux干貨 2016-08-24
欧美性久久久久