设为首页 收藏本站
查看: 532|回复: 0

[经验分享] linux网络配置、环境变量以及JDK安装(CentOS 6.5)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-28 17:37:29 | 显示全部楼层 |阅读模式
 由于需要搭建hadoop平台,但是苦于没有现成可用的linux服务器,只好自己下载了CentOS 6.5从头装起,安装过程中遇到了很多问题,比如网络配置、时钟同步、环境变量配置、以及各种服务的启停,还有jdk的安装等(虽然系统自带JDK,但是本人过于低端,自带的JDK的安装路径都搞不明白,就干脆自己装了一个),时间长了容易忘记,所以在这里写下来作为记录,顺便也分享给与我一样的菜鸟玩家,高手们可以退散了,当然了如果有批评指正小弟跪迎。

    新建用户

    新安装的linux一般只有root管理员用户,由于我要搭建hadoop平台,所以就创建一个名为hadoop的新用户:

    useradd hadoop

    passwd hadoop

    New password:

    根据提示设置用户密码就可以了,然后就会发现在 /home目录下多了一个hadoop目录,这个就是hadoop用户的工作目录了,当你切换用户到hadoop时,默认路径就会切换到/home/hadoop路径下。当然了,我们需要对系统中的各种参数进行配置,还需要在root用户下操作,因为普通用户并没有足够的权限去修改系统级别的配置文件,下文中如果没有特别说明,都是默认在root管理员用户下操作的。
    修改主机名
    linux在安装过程中都设置了主机名,如果感觉当时起名太仓促,想修改一下也很简单,在root用户下进入/etc/sysconfig目录下,修改network文件就可以了:

    vi /etc/sysconfig/network

    NETWORKING=yes
    HOSTNAME=master

    如上图中,只要修改HOSTNAME为你需要的名字就可以了,我的主机名为master。
    配置网络连接
    linux主机最重要的就是网络配置,我们进入/etc/sysconfig/network-scripts目录下,找到ifcfg-eth0文件,修改里面的内容如下:
   

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0
    HWADDR=00:1A:A0:9D:FA:34
    IPADDR=10.1.5.229
    NETMASK=255.255.255.0
    GATEWAY=10.1.5.254
    DNS1=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.com
    PING 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 ms
    64 bytes from 124.16.31.151: icmp_seq=2 ttl=49 time=7.45 ms
    64 bytes from 124.16.31.151: icmp_seq=3 ttl=49 time=8.77 ms
    64 bytes from 124.16.31.151: icmp_seq=4 ttl=49 time=9.54 ms

    这就表示网络已经通了,设置完毕。
    防火墙和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-prohibited
    COMMIT

   

    上图中可以看到,系统默认开放的端口22,21和20,而50030,50070和50010三个端口则是我指定开放的,保存配置后运行重启iptables服务的命令:

    service iptables restart

     
    sudo的安装及配置
    我们有时候希望能够在不切换到root用户的情况下,执行某些root权限的行为,这就需要用到sudo命令,sudo在CentOS的最小安装模式中是默认不安装的,我们需要先通过yum命令检查sudo安装与否:

    yum list installed | grep sudo

    sudo.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 anywhere
    root    ALL=(ALL)       ALL
    hadoop    ALL=(ALL)       ALL
    hadoop2    ALL=(ALL)       ALL

    其中变黄部分为我添加的一般用户hadoop和hadoop2,变更即时生效,无须重启系统。这样,我们就可以在hadoop用户下使用sudo命令启停servcie了:

    sudo service network restart
    [sudo]password for hadoop:

    只需要输入hadoop用户的密码就可以顺利执行。
    JDK的安装配置
    一般的linux系统都是自带JDK的,我们可以用命令检查一下JDK是否存在,并确认版本:

    java -version

    java 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.rpm

    cd /opt
    mv jdk1.7.0_51 jdk1.7

    其中红色的--prefix参数用于指定安装路径,上面指定为/opt目录,如果不指定安装路径,则默认安装在/usr目录中。进入opt目录,将安装目录改名为jdk1.7,方便以后引用。
    由于linux内置的jdk,所以我们安装新的jdk后还需要删除自带jdk的引用,并用新安装的jdk的引用来替换自带的jdk,否则新安装的jdk将完全不起作用:
   

    cd /usr/bin

    rm -f java
    rm -f javac
    rm -f javaws
    rm -f javadoc
    rm -f javap
    rm -f jps

   

    其中,/usr/bin目录为我们后期安装的软件的命令的引用存放路径,存放在该路径下的命令可以不带路径,直接在任何目录下执行。我们将新安装的jdk的命令的引用写入该目录:

    ln -s /opt/jdk1.7/java java
    ln -s /opt/jdk1.7/javac javac
    ln -s /opt/jdk1.7/javadoc javadoc
    ln -s /opt/jdk1.7/javaws javaws
    ln -s /opt/jdk1.7/javap javap
    ln -s /opt/jdk1.7/jps jps

    其中,ln命令用于创建链接,-s参数表示该链接为虚拟链接,类似于windows的快捷方式。
    环境变量的配置
    linux下的环境变量通常分为两种:系统环境变量和用户环境变量。其中系统环境变量就是所有用户通用的环境变量;而用户环境变量只对该单一用户有效,不同的用户可以配置不同的环境变量。系统环境变量需要在root用户下配置,配置文件为/etc/profile,配置的内容一般为通用参数,如JAVA_HOME、PATH、CLASSPATH等:

    vi /etc/profile

    export JAVA_HOME=/opt/jdk1.7
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib

    而用户环境变量则需要在相应的用户下配置,如我的hadoop用户的环境变量,配置文件存放在hadoop用户的工作目录下,/home/hadoop/.bash_profile,.bash_profile为隐藏文件,配置如下:
   

    export HADOOP_HOME=$HOME/hadoop2
    export 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/hadoop
    export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

    export HBASE_HOME=$HOME/hbase-0.98
    export HIVE_HOME=$HOME/hive
    export SQOOP_HOME=$HOME/sqoop
    export TOMCAT_HOME=$HOME/tomcat7
    export SOLR_HOME=$HOME/solr

    export MAVEN_HOME=$HOME/maven
    export JAVA_LIBRARY_HOME=$HOME/jlib

    PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$MAVEN_HOME/bin:/$SQOOP_HOME/bin:$TOMCAT_HOME/bin
    export CLASSPATH=$CLASSPATH:$HADOOP_HOME/share/hadoop:$HBASE_HOME/lib:$HIVE_HOME/lib:$SQOOP_HOME/lib:$TOMCAT_HOME/lib:$SOLR_HOME/dist:$JAVA_LIBRARY_HOME
    export PATH

   

    配置完成后,需要环境变量立刻生效还需要在相应的用户下执行source命令:

    [iyunv@master etc] # source profile

    [hadoop@master ~] $ source .bash_profile

     
    linux时钟同步
    我们在linux平台上搭建各种分布式集群,很多要求集群中每个节点做到时钟同步,否则无法正常启动。linux的时钟同步一般都是使用内置的ntp同步服务。首先使用rpm命令检查ntp服务软件是否已经安装:

    rpm -qa | grep ntp
    ntpdate-4.2.6p5-1.el6.centos.i686
    fontpackages-filesystem-1.41-1.1.el6.noarch
    ntp-4.2.6p5-1.el6.centos.i686

    若没有找到,则说明没有安装ntp包,通过下载ntp的rpm包自行安装,rpm包的安装命令上文已经提到过。安装完成后,在root用户下检查ntpd服务是否启动,没有启动则手动启动服务,并启动开机自启动ntpd服务:

    service ntpd status
    ntpd is stopped

    service ntpd start

    chkconfig ntpd on

    通过chkconfig命令可以检查是否已经开启服务的自启动,以ntpd为例:

    chkconfig --list | grep ntpd
    ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
    ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

    其中显示了ntpd服务为开机自启动的,为ntpdate没有开机自启动。

    暂时只能记得这么多,如果之后碰到别的问题,会继续补充。如果以上记录有什么不对的地方,欢迎拍砖指正,多谢!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-22815-1-1.html 上篇帖子: linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu ) 下篇帖子: CentOS--配置安装第三方源PRMforge--官方推荐 linux 网络
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表