Linuxクラスターサーバーの構築


Linuxクラスターサーバーの構築

  • 仮想マシンのクローン作成

    • シャットダウン状態の既存の仮想マシンのクローンを作成するには、フルクローンを使用する必要があります
    • フルクローンとは、2台のマシンの内容がまったく同じであることを意味しますが、同じではないものもあります
    • Linuxのすべてはファイルです 属性を変更する場合、最終的な変更はファイルの永続的な効果です。ファイルを変更する必要があります。
    #ip  /etc/sysconfig/network-scripts/ifcfg-eth0
    	1、删除mac地址:HWADDR
    	2、修改IP: IPADDR
    
    #网卡MAC地址
    	1、关机状态下,右键-->设置-->网络适配器-->高级-->生成一个新的mac地址
    	2、删除mac配置文件  该文件在下次重启的时候 如果不存在 系统就会根据设置自动重新生成一个
    	rm -rf /etc/udev/rules.d/70-persistent-net.rules
    	
    #主机名 hostname
    	vim /etc/sysconfig/network
    	hostname=node-2
    	
    reboot重启机器	
    
  • IP構成ファイルの詳細な説明

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

    DEVICE=eth0      #网卡的设备名称
    TYPE=Ethernet
    UUID=26e46d47-e806-4beb-918d-bee29df0b235
    ONBOOT=yes       #网卡服务是否开机启动  
    NM_CONTROLLED=yes
    BOOTPROTO=none   #ip配置方式   dhcp  static   none
    HWADDR=00:0C:29:9E:B4:51  #网卡的mac地址 此文件中该属性意义不大 可以删除
    IPADDR=192.168.227.151    #ip地址
    PREFIX=24                # 11111111  11111111 11111111 00000000  子网掩码
    						 # NETMASK=255.255.255.0
    GATEWAY=192.168.227.2    # 网关
    DNS1=192.168.227.2       # dns1 网关进行解析
    DOMAIN=114.114.114.114   # dns2 公网的dns进行解析
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPV6INIT=no
    NAME="System eth0"
    
  • Linuxサービスの開閉と自動起動の設定

    service 服务名   start|stop|status  启动|关闭|服务状态
    #service命令是单次控制服务状态  并不能影响下次开启是否启动
    
    chkconfig 服务名 on|off   开机自启|开机不启
    
  • ファイアウォール(3つのサーバーすべてを実行する必要があります)。

    #防火墙iptables
    service iptables stop  
    chkconfig iptables off
    
    #防火墙selinux   修改配置文件之后 在下次重启的时候生效
    vim /etc/selinux/config
    SELINUX=disabled
    
  • ホスト名ホストマッピング(ホストファイル)(3つのサーバーすべてを実行する必要があります)。

    • ホスト名またはドメイン名を入力すると、システムはまず、ローカルホストファイルに移動して、マッピング関係を見つけます 対応するIPが何であるかを確認してください

      マッピング関係がある場合は、対応するIPに従ってマシンにアクセスします

    • ローカルhostsファイルがマップされていない場合、システムは次のサイトにアクセスします。ドメイン名解決のためのDNSサーバー

      はいの場合、対応するIPに従ってアクセスします

    • 上記の2つの手順が解決されない場合は、IPを介してのみアクセスできることを意味します。

    #linux hosts文件: /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.227.151 node-1
    192.168.227.152 node-2
    192.168.227.153 node-3
    
    #windosws hosts文件  C:\Windows\System32\drivers\etc\hosts
    192.168.227.151 node-1
    192.168.227.152 node-2
    192.168.227.153 node-3
    
  • Linuxシステム間のパスワードなしのログイン

    • 知識ポイント:SSHプロトコル(一方向検証プロセス)
    • ツール:Linuxシステム組み込みソフトウェア:openSSH(sshd)
    #step1 在node-1上使用命令生成一对公钥和私钥
    ssh-keygen   四下回车
    
    #查看一下生成的公钥和私钥
    [root@node-1 .ssh]# ll
    total 12
    -rw------- 1 root root 1675 May 13 22:12 id_rsa      #私钥
    -rw-r--r-- 1 root root  393 May 13 22:12 id_rsa.pub  #公钥
    -rw-r--r-- 1 root root  404 May 13 22:05 known_hosts
    [root@node-1 .ssh]# pwd   #本地公钥保存的路径
    /root/.ssh
    
    
    #step2 在node-1上把公钥拷贝给其他机器 该机器就是你需要远程免密登录的机器
    ssh-copy-id node-2
    
    #step3  后续登录node-2就不需要输入密码了
    ssh node-2
    #如果退出返回本机 输入命令
    exit
    
    • 注:パスワードなしでログインする場合は、パスワードなしのログインも構成する必要があります。

      [root@node-1 ~]# ssh-copy-id node-1
      root@node-1's password: 
      
    • コースでは、少なくとも次の方向でパスワードなしのログインを通過する必要があります

      node-1----->node-1
      node-1----->node-2
      node-1----->node-3
      
  • リモートコピーファイル-scp

    • パスワードなしのログインが設定されていない場合は、scpの設定時にパスワードを入力する必要があります。パスワードなしのログインが設定されている場合、パスワードは省略されます。
    #把文件从本机文件系统拷贝到其他机器上
    	scp 1.txt root@node-2:/root/
    	scp -r test/ root@node-2:/root/
    
    #把文件从其他机器上拷贝到本机文件系统
    	scp root@node-2:/root/1.txt ./
    	
    #注意事项
    	1、之所以在scp的时候不需要输入密码  原因:是因为配置了机器间免密登录 否则的话是需要输入密码的
    	2、之所以在sco的时候可以写node-1 node-2主机名 原因:是以为我们配置了hosts文件。否则输入IP
    
  • Linuxの時刻同期の問題

    #查看linux系统当前时间
    date
    
    #使用命令把本机时间和国家授时中心的时间同步
    	#step1 使用yum命令在线安装
    	yum install -y ntpdate
    
    	#step2 和服务器进行时间同步
    	ntpdate ntp3.aliyun.com
    
    #阿里云免费的ntp授时地址
    https://eallion.com/aliyun-ntp/
    
    • 注意:時間同期には2つの形式があります:ntpdate ntpd

      ntpdate 是一种命令   需要自己手动的执行  跟服务器进行同步  后面如果有了偏差继续手动执行
      ntpd    是一种软件服务 配置好之后 可以跟服务器进行通信 不断修正时间 保持一致
      
    • 推奨事項:コースの時刻同期にはntpdateを使用します。時刻に一貫性がない場合、即時同期の効果が再度実行されます。

    • 実サーバーが企業内にある場合は、ntpdサービスを継続的に実行して時刻を修正するように構成することを検討できます。


Linuxで一般的に使用されるソフトウェアのインストール

  • JDK(3台のマシンがインストールされています)。

    #Centos系统自带了OpenJDK  把其卸载  安装Oracle JDK(甲骨文)
    
    #step1:从已经安装的rpm包中找出jdk相关的包
    [root@node-2 ~]# rpm -qa |grep java
    java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
    tzdata-java-2016j-1.el6.noarch
    java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
    
    #step2:卸载openJDK相关的rpm包
    rpm -e --nodeps  java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
    
    
    #step3:统一制定安装软件的相关目录
    mkdir -p /export/servers    #软件安装
    mkdir -p /export/software   #安装包
    mkdir -p /export/data       #数据存放
    
    #step4: 安装oraclejdk 上传安装包到/export/servers
    
    jdk-8u65-linux-x64.tar.gz  #要求JDK必须是1.8版本
    
    涉及多台机器安装同一个软件 常见的做法是在一台机器安装配置 然后scp安装包给其他机器。
    
    #step5:解压安装包到当前路径下
    tar -zxvf jdk-8u65-linux-x64.tar.gz
    
    #step6:配置jdk的环境变量
    vim /etc/profile
    
    export JAVA_HOME=/export/servers/jdk1.8.0_65
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    #step7:使用source命令加载环境变量文件  让其立即生效  也可以重启生效
    source /etc/profile
    
    #step8:把jdk安装包从node-1 scp给其他机器
    scp -r /export/servers/jdk1.8.0_65/ root@node-2:/export/servers/
    scp -r /export/servers/jdk1.8.0_65/ root@node-3:/export/servers/
    
    #step9:别忘了其他机器上也需要配置jdk的环境变量
    scp /etc/profile root@node-2:/etc/
    source /etc/profile
    
    #最终验证是否安装成功
    [root@node-2 servers]# java -version
    java version "1.8.0_65"
    Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
    Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
    [root@node-2 servers]#
    
  • mysql(ノード1にインストール)。

    ユーザー名:rootパスワード:hadoop

    #在线安装mysql
    yum install -y mysql mysql-server mysql-devel 
    
    #首次启动mysql
    /etc/init.d/mysqld start
    
    #登录mysql的控制台 初始化设置root用户的密码 授予远程登录的权限
    mysql
    
    mysql>; USE mysql; 
    
    mysql>; UPDATE user SET Password=PASSWORD('hadoop') WHERE user='root';
    
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
    
    mysql>; FLUSH PRIVILEGES; 
    
    #以后mysql的启动关闭 使用下述命令
    service mysqld  start|stop|status
    
    #建议:把mysqld服务设置为开机自启动
    chkconfig mysqld on
    
    #在大数据中 不需要特意把mysql的编码改为utf-8 后面涉及软件  谁需要中文支持 给其创建对应的数据库 支持utf-8
    

rpm、yum

  • rpm

    • RPMは、ソフトウェアの表示、インストール、およびアンインストールを担当するRHパッケージマネージャーです。

    • 最大の欠点:最初にrpmパッケージをダウンロードし、手動でインストールします。ソフトウェア間の依存関係を自分で解決する必要があります。

      如果某个软件有依赖 需要先把依赖安装好 再安装本软件。
      
    • この方法は、企業でソフトウェアのインストールに使用されることはめったにありません。オンラインインストールにはyumを使用することをお勧めします。

    • コマンドを使用する

      #查看rpm包的安装信息
      rpm -qa |grep 软件名称
      rpm -qi rpm包名
      [root@node-1 ~]# rpm -qi mysql-server-5.1.73-8.el6_8.x86_64
      
      #rpm的安装
      rpm -ivh rpm包名
      
      #rpm的卸载  忽略依赖卸载 只卸载自己本身
      rpm -e --nodeps rpm包名
      
  • ヤム

    • 前書き

      Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
      
    • 利点:依存関係を解決するための自動インストール

    • この機能を実現するにはどうすればよいですか?

      #yum是否强大取决于yum源。
      	1、有很多rpm包
      	2、rpm包之间的依赖
      #yum源分类
      	1、公网免费开源的yum源。 不需要配置  Centos中内置了yum源镜像列表。 联网就可以搜索到国内免费yum源。  断网就凉凉。
      	2、自己配置本地yum源。
      
    • yumコマンド

      #安装软件
      yum install -y 软件名 #-y表示不提示自动直接安装
      
      #其他命令
      yum remove -y 软件名 #卸载
      yum repolist all  #查看当前可用的yum源信息
      yum clean all #清楚yum缓存信息
      
  • ローカルのyumソースを作成します(原則を理解してください、あなたはそれを自分で構築することはできません)。

    • 原材料が必要:rpmパッケージ、rpmパッケージ間の依存関係

    • CentOSのインストールイメージ内

      • パッケージがあります----->パッケージ
      • パッケージの依存関係があります----> repodata

      ミラーファイルを使用して、ローカルのyumソースを一時的に作成できます。

    #创建一个文件夹 用于存放rpm包和依赖
    mkdir /dev/centios     #挂载路径 用于解析光驱中的数据
    mkdir /mnt/local_yum   #本地yum源的文件夹
    
    #挂载光驱中的镜像文件 挂载到/dev/centios
    mount -o loop  /dev/cdrom /dev/centios  
    
    #把挂载之后的文件复制到本地yum源文件中
    cp -r /dev/centios/* /mnt/local_yum/
    
    #修改yum的配置文件
    cd /etc/yum.repos.d/    #在这个路径下 所有.repo结尾的文件都是yum有效配置文件 里面记录了yum源地址
    rename .repo .repo.bak    *.repo
    cp CentOS-Media.repo.bak CentOS-Local.repo
    
    vim  CentOS-Local.repo
    
    [local]
    name=this is my local yum yuan
    baseurl=file:///mnt/local_yum/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    

    注:演習後、ネットワークyumソースの構成を復元することを忘れないでください。

     rename .repo.bak .repo  *.bak
    
  • 拡張:ローカルLANyumソースの作成

    • コア:1台のマシンでyumソースを作成することは、このマシンのニーズを満たすことしかできません。ローカルエリアネットワーク内の他のマシンは、使用する前にインターネットに接続する必要があります。Webサーバーを使用してhttpプロトコルを介してローカルのyumソースを公開し、LAN内の他のマシンもアクセスできるようにします。
    #安装web服务器  httpd(Apache Server 轻量级web服务器)  注意把防火墙关了
    yum install -y httpd
    
    #启动
    service httpd start
    
    #httpd 项目根目录/var/www/html
    ln -s /mnt/local_yum/  /var/www/html/local
    
    
    #在其他的机器上配置的yum文件
    [local]
    name=this is my local yum yuan
    baseurl=http://node-2/local/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
  • 仮想マシンに新しいディスクを追加します(理解します)

    软件右键选择增加一个新的磁盘  确定大小
    分区
    格式化
    挂载
    
    详细步骤可以参考附件资料。
    
  • crontabのスケジュールされたスケジューリング

    • これは、指定されたシェルスクリプトを定期的に実行するのに役立つLinuxガジェットです。
    #语法
    crontab 
    	-e  编辑定时任务
    	-l  查看定时任务
    	-r  删除定时任务
    	-u  指定给哪个用户配置  如果不指定 给自己配置
    	
    [root@node-1 ~]# crontab -l
    no crontab for root	   #当前root用户没有定时任务
    
    *  *   *  *  *   shell command
    分 时  日 月  周   待调度的shell命令或脚本  
    
    * * * * * date >> /root/cron.txt  #每隔一分钟执行后面的脚本或者命令
    
    • スケジュールされたタスクは、ビッグデータプロジェクトに関与することになります。通常、タスクのスケジューリングには成熟したオープンソースのスケジューリングソフトウェアを使用します。
    Apache oozie、 azkaban
    

おすすめ

転載: blog.csdn.net/qq_36382679/article/details/114838291