使用微软云服务器搭建Hadoop集群

环境准备

3台CentOS 7.5服务器,部署在同一区域同一VNET中,详细信息如下:

序号主机名IP
1hadoop110.0.0.4
2hadoop210.0.0.5
3hadoop310.0.0.6

在这里插入图片描述
在3台机器上分别创建用户hadoop-twq,具体命令如下:
useradd hadoop-twq
passwd hadoop-twq

修改主机名

  1. 修改/etc/sysconfig/network文件,在3台机器上分别修改HOSTNAME=master,HOSTNAME=slave1,HOSTNAME=slave2
  2. 修改/etc/hosts文件,在3台机器上分别配置以下信息:
    10.0.0.4 master
    10.0.0.5 slave1
    10.0.0.6 slave2
  3. 重启3台虚拟机

Note:由于微软云的限制,虽然修改了HOSTNAME,但通过ssh连接时hostname显示还是之前的,但已生效。

配置无秘钥登录

master配置SSH免密码登录slave(对hadoop-twq用户进行设置)

  1. 保证每台机器中所在用户的所在用户的根目录下包含隐藏文件.ssh,如果没有的话需要创建一个(mkdir .ssh)
  2. 生成密钥:ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
  3. 将id_dsa.pub(公钥)追加到授权的key中:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  4. 将认证文件(authorized_keys)复制到其它节点上:
    scp ~/.ssh/authorized_keys hadoop-twq@slave1:~/.ssh
    scp ~/.ssh/authorized_keys hadoop-twq@slave2:~/.ssh
  5. 在每一个节点修改文件目录权限:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  6. ssh slave1试试,第一次连接需要输入yes确认即可,如果不需要密码就能登录成功的话,表明这步设置成功

下载并安装JDK

  1. 下载:https://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 上传:将jdk-8u221-linux-x64.tar.gz上传到master上的目录/usr/local/lib
  3. 解压:tar -zxvf jdk-8u221-linux-x64.tar.gz
  4. 将解压后的JDK目录拷贝到slave1和slave2上:(由于微软云上存在权限问题,无法直接copy,可以将安装包copy到slave上然后解压)
    scp -r jdk1.8.0_221 haiyu@slave1:/usr/local/lib
    scp -r jdk1.8.0_221 haiyu@slave2:/usr/local/lib
  5. 在3台机器上分别切换到hadoop-twq用户修改环境变量:vi ~/.bash_profile
    export JAVA_HOME=/usr/local/lib/jdk1.8.0_221
    PATH= P A T H : PATH: PATH:HOME/.local/bin: H O M E / b i n : HOME/bin: HOME/bin:JAVA_HOMT/bin
    export PATH
  6. 执行source .bash_profile让环境变量生效
  7. 执行java -version看是否生效

Java相关命令的讲解

  • javac:编译java源文件
  • java:运行java程序
  • jps:查看java进程
  • ps:查看进程
  • kill:杀掉进程

关闭3台机器的防火墙(微软云服务器上的防火墙默认是关闭的,此步可以跳过)

  • 查看防火墙状态:systemctl status firewalld
  • 停止防火墙:systemctl stop firewalld
  • 禁止防火墙:systemctl disable firewalld
  • 再次查看防火墙状态:systemctl status firewalld

三台机器通过ntp同步时间

Azure 主机与内部 Microsoft 时间服务器同步,这些服务器从 Microsoft 拥有的带 GPS 天线的 Stratum 1 设备获取时间。 Azure 中的虚拟机可以依赖其主机将准确时间(主机时间)传递给 VM,也可以直接从时间服务器中获取时间,或结合使用这两种方式。参考文档

安装Hadoop

  1. 下载链接: http://hadoop.apache.org/releases.html
  2. 创建目录:mkdir bigdata
  3. 将安装包上传到bigdata目录并解压:tar -zxvf ~/bigdata/hadoop-3.2.0.tar.gz
  4. 修改配置文件:cd ~/bigdata/hadoop-3.2.0/etc/hadoop
    (1)修改core-site.xml:
    <configuration>
         <property>
              <name>fs.defaultFS</name>
              <value>hdfs://master:9999</value>
              <description>表示HDFS的基本路径</description>
         </property>
    </configuration>
    
    (2)修改hdfs-site.xml
    <configuration>
        <property>
              <name>dfs.replication</name>
              <value>1</value>
              <description>表示数据块的备份数量,不能大于DataNode的数量</description>
        </property>
        <property>
              <name>dfs.namenode.name.dir</name>
              <value>/home/hadoop-twq/bigdata/dfs/name</value>
              <description>表示NameNode需要存储数据的地方</description>
        </property>
        <property>
              <name>dfs.datanode.data.dir</name>
              <value>/home/hadoop-twq/bigdata/dfs/data</value>
              <description>DataNode存放数据的地方</description>
        </property>
    </configuration>
    
    (3)在master上创建nameNode和dataNode需要的文件目录:
    mkdir -p ~/bigdata/dfs/name
    mkdir -p ~/bigdata/dfs/data
    (4)修改hadoop-env.sh:添加JAVA_HOME:
    export JAVA_HOME=/usr/local/lib/jdk1.8.0_221
    (5)修改~/bigdata/hadoop-3.2.0/etc/hadoop/workers,在workers文件中写入如下内容:
    slave1
    slave2
  5. 在slave1和slave2节点中的hadoop-twq用户主目录上创建bigdata目录并将master下的hadoop-3.2.0目录传输到slave1和slave2:
    mkdir bigdata
    scp -r hadoop-3.2.0 hadoop-twq@slave1:~/bigdata
    scp -r hadoop-3.2.0 hadoop-twq@slave2:~/bigdata
    scp -r dfs hadoop-twq@slave1:~/bigdata
    scp -r dfs hadoop-twq@slave2:~/bigdata
  6. 在master上配置环境变量:vi .bash/-profile
    export HADOOP_HOME=~/bigdata/hadoop-3.2.0
    PATH= P A T H : PATH: PATH:HOME/bin: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:HADOOP_HOME/bin:$HADOOP_HOME/sbin
    source .bash_profile
    which hdfs(看输出是否是~/bigdata/hadoop-3.2.0/bin/hdfs,如果不是可能需要退出xshell,重新登录)
  7. 运行hdfs
    (1)格式化:hdfs namenode -format
    (2)启动hdfs:运行start-dfs.sh
    (3)停止hdfs:运行stop-dfs.sh
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值