Hadoop3.1.1——全分布式安装以及配置

2019/01/03

利用实验室的服务器以及一台主机搭建一个全分布式hadoop雏形。

步骤
1.时间同步
2.修改主机名。
3.配置静态IP
4.添加hadoop用户
5.ssh免密登陆设置
6.安装配置JDK
7.安装Hadoop配置文件

  • 时间同步(每个节点)
    主节点和分节点之间,时间同步很重要。这里是通过控制时区来实现。
    • date -R查看当前系统时间
      在这里插入图片描述
    • 运行tzselect
      依次选择Asia China Beijing
    • 复制文件到/etc下
      sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    • 以上是修改时区,下面也可以手动修改日期时间
      sudo date -s MM/DD/YY
      sudo date -s hh:mm:ss
      之后再修改硬件的时间(很重要的)
      sudo hwclock --systohc
  • 修改主机名(每个节点)
    • sudo vim /etc/hostname
      直接修改,主节点就修改成master,分节点slave1(博主这次只用了两个节点)
    • 修改/etc/hosts文件,把节点名称、ip全部填进去,使节点间能够相互ping
      sudo vim /etc/hosts
      Hadoop3.1.1——全分布式安装以及配置_第1张图片
      添加节点信息,且注释掉第二行。
      Hadoop3.1.1——全分布式安装以及配置_第2张图片
  • 重启系统生效sudo reboot
  • 静态IP设置(每个节点)
    • 先分别用ifconfigroute -n找到主机所拥有的IP、网卡接口、子网掩码和网关Gateway
      Hadoop3.1.1——全分布式安装以及配置_第3张图片
      Hadoop3.1.1——全分布式安装以及配置_第4张图片
    • 修改文件interface vim /etc/network/interfaces
      Hadoop3.1.1——全分布式安装以及配置_第5张图片
      把除了第一行取消注释就行,相应位置添上自己主机的配置。之后执行sudo /etc/init.d/networking restart重启网络。
    • 但是之后会发现,只能ping通内网,还是出不去。是因为DNS问题。设置DNS据博主目前所知有3种方法:
      1.sudo vim /etc/network/interfaces,在最后加上dns-nameserver x.x.x.x或者dns-nameservers x.x.x.x y.y.y.y
      一般来说,域名8.8.8.8(Google)和223.5.5.5(阿里)就行
      2.sudo vim /etc/systemd/resolved.conf
      DNS后面加上需要的地址Hadoop3.1.1——全分布式安装以及配置_第6张图片
      重启。
      3.sudo vim /etc/resolvconf/resolv.conf.d/head
      Hadoop3.1.1——全分布式安装以及配置_第7张图片
      在下面直接加上nameserverserver x.x.x.x有两个就再加一行。之后sudo resolvconf -u更新/etc/resolv.conf。操作时候会发现/etc/resolvconf/resolv.conf.d/里面有另外一个文件base,理论上这个和head是一样的,只要修改一个就行。
    • 此时静态IP设置完毕。
  • 添加Hadoop用户(每个节点)
    • 为hadoop集群专门设置一个用户组及用户,设置hadoop用户组命令:
      sudo groupadd hadoop
    • 添加一个had_user用户,此用户属于hadoop用户组。
      sudo useradd –s /bin/bash –d /home/had_user –m had_user –g hadoop
    • 设置用户had_user登录密码
      sudo passwd had_user
      输入一次再次确认。
    • 将had_user用户分配到sudo组下,使之拥有sudo命令权限。(不过似乎没有什么用)
      sermod -G sudo had_user
    • 切换到had_user用户中,之后的操作基本都是在该用户下进行
      su had_user
      cd ~
  • ssh免密设置(每个节点)
    • 首先安装ssh
      sudo apt-get install ssh
    • 生成公钥、私钥(用rsa,不用dsa),这一步是每个节点均运行后才执行下面的操作。
      ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    • ssh-copy-id -i ~/.ssh/id_rsa.pub master此步需输入hadoop用户密码
      ssh-copy-id -i ~/.ssh/id_rsa.pub slave1此步需输入hadoop用户密码
      chmod 0600 ~/.ssh/authorized_keys
    • 此时,免密登陆已经完成,测试是否可以登陆连接
      ssh slave1以及ssh master
      exit退出。
  • 安装配置JDK、Hadoop环境变量
    • 先在/home/hadoop/下创建locol文件夹,里面存放下载好的jdk1.8.0包和hadoop3.1.1包。
      Hadoop3.1.1——全分布式安装以及配置_第8张图片
      Hadoop3.1.1——全分布式安装以及配置_第9张图片
      修改其owner(had_user)和group(hadoop)
    • 解压tar -zxvf jkd-8u181-linux-x64.tar.gz
    • 解压tar -zxvf hadoop-3.1.1.tar.gz
    • 配置jdk,注意此时有两种方法可选,一是修改/etc/profile,这是全局的对所有用户有效。二是修改~/.bashrc,这里面只针对had_user,而且hadoop的变量配置也在这里面。在。.bashrc最后加上以下内容:
      export JAVA_HOME=/home/had_user/local/jdk1.8.0_191 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_HOME=/home/had_user/local/hadoop-3.1.1 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • source ~/.bashrc,使配置生效。
    • CHECK一下:
      java -version
      在这里插入图片描述
      hadoop version
      Hadoop3.1.1——全分布式安装以及配置_第10张图片
  • 配置Hadoop
    • 要修改的是~/etc/hadoop/里面的几个配置文件,其实具体配置可参考官方给出的:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/ClusterSetup.html
    • 这里给出博主配置的内容:
      • vim workers
        里面理论上只有一行localhost
        我们在下面加上slave1就行。
        Hadoop3.1.1——全分布式安装以及配置_第11张图片
    • vim core-

你可能感兴趣的:(linux,basical,bigdata)