linux網路設定、環境變數以及JDK安裝(CentOS 6.5)

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   os   strong   

  由於需要搭建hadoop平台,但是苦於沒有現成可用的linux伺服器,只好自己下載了CentOS 6.5從頭裝起,安裝過程中遇到了很多問題,比如網路設定、時鐘同步、環境變數配置、以及各種服務的啟停,還有jdk的安裝等(雖然系統內建JDK,但是本人過於低端,內建的JDK的安裝路徑都搞不明白,就乾脆自己裝了一個),時間長了容易忘記,所以在這裡寫下來作為記錄,順便也分享給與我一樣的菜鳥玩家,高手們可以退散了,當然了如果有批評指正小弟跪迎。

  1. 建立使用者

    新安裝的linux一般只有root管理使用者,由於我要搭建hadoop平台,所以就建立一個名為hadoop的新使用者:

    useradd hadooppasswd hadoop
    New password:

    根據提示設定使用者密碼就可以了,然後就會發現在 /home目錄下多了一個hadoop目錄,這個就是hadoop使用者的工作目錄了,當你切換使用者到hadoop時,預設路徑就會切換到/home/hadoop路徑下。當然了,我們需要對系統中的各種參數進行配置,還需要在root使用者下操作,因為普通使用者並沒有足夠的許可權去修改系統層級的設定檔,下文中如果沒有特別說明,都是預設在root管理使用者下操作的。

  2. 修改主機名稱
    linux在安裝過程中都設定了主機名稱,如果感覺當時起名太倉促,想修改一下也很簡單,在root使用者下進入/etc/sysconfig目錄下,修改network檔案就可以了:
    vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=master

    如中,只要修改HOSTNAME為你需要的名字就可以了,我的主機名稱為master。

  3. 配置網路連接
    linux主機最重要的就是網路設定,我們進入/etc/sysconfig/network-scripts目錄下,找到ifcfg-eth0檔案,修改裡面的內容如下:
    vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0HWADDR=00:1A:A0:9D:FA:34IPADDR=10.1.5.229NETMASK=255.255.255.0GATEWAY=10.1.5.254DNS1=202.106.0.20

    其中,GATEWAY網關地址跟主機所處的網路有關,不同的網路網段不同;而IPADDR為原生ip地址,是根據GATEWAY的網段來隨意填寫的,一般來說末位為2~254,只要不與別的主機ip地址衝突就可以了;NETMASK子網路遮罩一般為255.255.255.0;而DNS伺服器一般國內設定為202.106.0.20就可以了。該設定檔設定完成後使用如下命令重啟網路服務就可以了:

    service network restart

    然後應該就試一試網路服務了,比如ping一下百度:

    ping www.baidu.comPING www.baidu.com (124.16.31.151) 56(84) bytes of data.64 bytes from 124.16.31.151: icmp_seq=1 ttl=49 time=8.22 ms64 bytes from 124.16.31.151: icmp_seq=2 ttl=49 time=7.45 ms64 bytes from 124.16.31.151: icmp_seq=3 ttl=49 time=8.77 ms64 bytes from 124.16.31.151: icmp_seq=4 ttl=49 time=9.54 ms

    這就表示網路已經通了,設定完畢。

  4. 防火牆和selinux
    防火牆iptables和selinux都是linux系統內建的安全系統,由於種種安全限制,導致我們很多系統的訪問被限制而運行失敗,雖然按道理來說不應該這樣做,但是我們一般都會禁用iptables和selinux,先來禁用selinux:
    vi /etc/sysconfig/selinux# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=enabled# SELINUXTYPE= can take one of these two values:#     targeted - Targeted processes are protected,#     mls - Multi Level Security protection.SELINUXTYPE=targeted SELINUX=disabled

    將SELINUX的參數改成disable就可以了。
    然後禁用iptables稍微複雜,首先,關閉防火牆服務iptables:

    service iptables stop

    這樣還沒完,因為每次你重啟伺服器的時候,系統是預設自啟動iptables服務的,所以還要關閉自動啟服務:

    chkconfig iptables off

    這樣就徹底關閉了防火牆和selinux服務,防止了以後系統中由於連接埠訪問不了造成的異常情況。
    研究了一點防火牆的過濾配置,也就是不關閉iptables服務的情況下,單獨開放某些連接埠,比如系統預設開放了22,21和20連接埠,配置如下:

    vi /etc/sysconfig/iptables# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 50030 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 50010 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT

    中可以看到,系統預設開放的連接埠22,21和20,而50030,50070和50010三個連接埠則是我指定開放的,儲存配置後運行重啟iptables服務的命令:

    service iptables restart

     

  5. sudo的安裝及配置
    我們有時候希望能夠在不切換到root使用者的情況下,執行某些root許可權的行為,這就需要用到sudo命令,sudo在CentOS的最小安裝模式中是預設不安裝的,我們需要先通過yum命令檢查sudo安裝與否:
    yum list installed | grep sudosudo.i686               1.8.6p3-12.el6    @anaconda-CentOS-201311271240.i386/6.5

    以上說明了系統已經內建了sudo程式,可以直接使用。如果沒有安裝則自行安裝:

    yum install sudo
    隨後,我們需要添加一般使用者進sudo名單,我們需要切換到root使用者,使用visudo 命令,會自動開啟 /etc/sudoer 檔案:
    visudo## Allow root to run any commands anywhereroot    ALL=(ALL)       ALLhadoop    ALL=(ALL)       ALLhadoop2    ALL=(ALL)       ALL

    其中變黃部分為我添加的一般使用者hadoop和hadoop2,變更即時生效,無須重啟系統。這樣,我們就可以在hadoop使用者下使用sudo命令啟停servcie了:

    sudo service network restart[sudo]password for hadoop:

    只需要輸入hadoop使用者的密碼就可以順利執行。

  6. JDK的安裝配置
    一般的linux系統都是內建JDK的,我們可以用命令檢查一下JDK是否存在,並確認版本:
    java -versionjava version "1.7.0_51"Java(TM) SE Runtime Environment (build 1.7.0_51-b13)Java HotSpot(TM) Server VM (build 24.51-b03, mixed mode)

    如上顯示說明,jdk版本為1.7.0_51。手動安裝JDK的基本步驟是這樣的,首先下載jdk的rpm安裝包,jdk-7u51-i586.rpm,選擇版本時需要根據自己的作業系統,本人的系統為CentOS 6.5 - i586,也就是32位系統,所以選擇該版本;如果為64位系統,則選擇jdk-7u51-linux-x86-64.rpm。使用rpm安裝命令進行安裝:

    rpm -ivh --prefix=/opt jdk-7u51-linux-i586.rpmcd /optmv jdk1.7.0_51 jdk1.7

    其中紅色的--prefix參數用於指定安裝路徑,上面指定為/opt目錄,如果不指定安裝路徑,則預設安裝在/usr目錄中。進入opt目錄,將安裝目錄改名為jdk1.7,方便以後引用。
    由於linux內建的jdk,所以我們安裝新的jdk後還需要刪除內建jdk的引用,並用新安裝的jdk的引用來替換內建的jdk,否則新安裝的jdk將完全不起作用:

    cd /usr/binrm -f javarm -f javacrm -f javawsrm -f javadocrm -f javaprm -f jps

    其中,/usr/bin目錄為我們後期安裝的軟體的命令的引用存放路徑,存放在該路徑下的命令可以不帶路徑,直接在任何目錄下執行。我們將新安裝的jdk的命令的引用寫入該目錄:

    ln -s /opt/jdk1.7/java javaln -s /opt/jdk1.7/javac javacln -s /opt/jdk1.7/javadoc javadocln -s /opt/jdk1.7/javaws javawsln -s /opt/jdk1.7/javap javapln -s /opt/jdk1.7/jps jps

    其中,ln命令用於建立連結,-s參數表示該連結為虛擬連結,類似於windows的捷徑。

  7. 環境變數的配置
    linux下的環境變數通常分為兩種:系統內容變數和使用者環境變數。其中系統內容變數就是所有使用者通用的環境變數;而使用者環境變數只對該單一使用者有效,不同的使用者可以配置不同的環境變數。系統內容變數需要在root使用者下配置,設定檔為/etc/profile,配置的內容一般為通用參數,如JAVA_HOME、PATH、CLASSPATH等:
    vi /etc/profileexport JAVA_HOME=/opt/jdk1.7export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib

    而使用者環境變數則需要在相應的使用者下配置,如我的hadoop使用者的環境變數,設定檔存放在hadoop使用者的工作目錄下,/home/hadoop/.bash_profile,.bash_profile為隱藏檔案,配置如下:

    export HADOOP_HOME=$HOME/hadoop2export HADOOP_MAPRED_HOME=${HADOOP_HOME}export HADOOP_COMMON_HOME=${HADOOP_HOME}export HADOOP_HDFS_HOME=${HADOOP_HOME}export YARN_HOME=${HADOOP_HOME}export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport HADOOP_LOG_DIR=${HADOOP_HOME}/logsexport HBASE_HOME=$HOME/hbase-0.98export HIVE_HOME=$HOME/hiveexport SQOOP_HOME=$HOME/sqoopexport TOMCAT_HOME=$HOME/tomcat7export SOLR_HOME=$HOME/solrexport MAVEN_HOME=$HOME/mavenexport JAVA_LIBRARY_HOME=$HOME/jlibPATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$MAVEN_HOME/bin:/$SQOOP_HOME/bin:$TOMCAT_HOME/binexport CLASSPATH=$CLASSPATH:$HADOOP_HOME/share/hadoop:$HBASE_HOME/lib:$HIVE_HOME/lib:$SQOOP_HOME/lib:$TOMCAT_HOME/lib:$SOLR_HOME/dist:$JAVA_LIBRARY_HOMEexport PATH

    配置完成後,需要環境變數立刻生效還需要在相應的使用者下執行source命令:

    [[email protected] etc] # source profile[[email protected] ~] $ source .bash_profile

     

  8. linux時鐘同步
    我們在linux平台上搭建各種分布式叢集,很多要求叢集中每個節點做到時鐘同步,否則無法正常啟動。linux的時鐘同步一般都是使用內建的ntp同步服務。首先使用rpm命令檢查ntp服務軟體是否已經安裝:
    rpm -qa | grep ntpntpdate-4.2.6p5-1.el6.centos.i686fontpackages-filesystem-1.41-1.1.el6.noarchntp-4.2.6p5-1.el6.centos.i686

    若沒有找到,則說明沒有安裝ntp包,通過下載ntp的rpm包自行安裝,rpm包的安裝命令上文已經提到過。安裝完成後,在root使用者下檢查ntpd服務是否啟動,沒有啟動則手動啟動服務,並啟動開機自啟動ntpd服務:

    service ntpd status
    ntpd is stopped

    service ntpd startchkconfig ntpd on

    通過chkconfig命令可以檢查是否已經開啟服務的自啟動,以ntpd為例:

    chkconfig --list | grep ntpdntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:offntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

    其中顯示了ntpd服務為開機自啟動的,為ntpdate沒有開機自啟動。

  9. 暫時只能記得這麼多,如果之後碰到別的問題,會繼續補充。如果以上記錄有什麼不對的地方,歡迎拍磚指正,多謝!

    轉載請註明出處:http://www.cnblogs.com/bxljoy/p/3868494.html 

     

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.