Hadoop集群安装



1. 虚拟机账号密码

  1. 账号: root或hadoop ,密码 123456

2. jdk

  1. jdk下载链接
  2. jdk-8u411-linux-aarch64.tar.gz
  3. sudo tar -zxvf jdk-8u181-linux-x64.tar.gz (解压.tar.gz包)
  4. sudo chmod -R 777 /usr/local/java

2.1 jdk的配置

1.sudo vim ~/.bashrc

2. 具体内容为:
#set oracle jdk environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_411  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  
  1. source ~/.bashrc (是环境变量生效)

3. hadoop配置

  1. sudo vim ~/.bashrc
  2. 内容为:
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. source ~/.bashrc (是环境变量生效)
  2. hadoop version 检查是否hadoop生效

4.集群规划

节点名称 节点ip 配置 配置
hadoop01 192.168.31.28 (主) 8CPU/8G NameNode、DataNode、ResourceManager,NodeManager
hadoop02 192.168.31.187 (从) 8CPU/8G NameNode、DataNode、ResourceManager,NodeManager
hadoop03 192.168.31.222 (从) 8CPU/8G NameNode、DataNode、ResourceManager,NodeManager

5. 网络设置

5.1 虚拟机的网络设置,共有三台虚拟机,配置时保证MAC地址不同即可

5.2 修改hostname 及在hosts中添加对应的节点ip,主机名映射。如下图

5.2.1 hadoop01

5.2.2 hadoop02

5.2.3 hadoop03

5.2.4 相关命令

修改hosts文件,ip与主机名映射关系
sudo vim /etc/hosts

192.168.31.28    hadoop01
192.168.31.187   hadoop02
192.168.31.222   hadoop03
5.2.5 修改对应的hostname
sudo vim /etc/hostname
5.2.6 三个节点,每台节点都需要去更改或添加。然后重启即

5.2.6.1 检查各个节点

  • ping hadoop01 -c 3
  • ping hadoop03 -c 3
  • 三个节点,分别去检查,ping通了即可,如下图

6. 免密设置

6.1 在主节点生成ssh密钥(192.168.31.28 主节点)

6.1.1 scp -r ~/.ssh/id_rsa.pub hadoop@192.168.31.187:/usr/local/hadoop/ (在192.168.31.28的主节点操作,注意空格)

6.1.2 将SSH公钥加入授权中,下图操作命令与截图等 (192.168.31.187(从) 里面操作****)

mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在,则忽略本命令
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub

6.1.3 另外一从节点同样操作,192.168.31.222(从)

6.1.4 在hadoop01(主节点也叫master节点) 无密码ssh登录其他节点

ssh hadoop02
ssh hadoop03

7. 配置集群

7.1 集群涉及的配置文件

  • 路径: /usr/local/hadoop/hadoop-3.3.5/etc/hadoop

  • Site-specific configuration - etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml 共有四个文件,下图是官网的截图,可参考官网的配置等

7.2 具体的配置文件

7.2.1 workers文件修改

7.2.2 core-site.xml 文件修改

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/hadoop/hadoop-3.3.5/tmp</value>
    <description>Abase for other temporary directories.</description>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:9000</value>
  </property>
</configuration>

7.2.3 hdfs-site.xml 文件修改

<configuration>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop01:50090</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/hadoop-3.3.5/tmp/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/hadoop-3.3.5/tmp/dfs/data</value>
  </property>
</configuration>

7.2.4 mapred-site.xml 文件修改


<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop01:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop01:19888</value>
  </property>
  <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.5</value>
  </property>
  <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.5</value>
  </property>
  <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.5</value>
  </property> 
</configuration>

7.2.5 yarn-site.xml 文件修改

<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop01</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

8. 启动集群等

8.1 格式化节点

hdfs namenode -format

8.2 启动集群命令

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

8.3 检查集群

  • hadoopo1(master节点) ,通过jps命令查看
  • hadoopo2(slave1节点),jps命令如下

  • hadoopo3(slave2节点),jps命令如下

  • 在hadoop01(master节点上),通过 hdfs dfsadmin -report 命令查看数据节点是否正常启动,如下图

9.执行分布式实例

9.1运行MapReduce作业

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+'

9.2具体执行可以参考单节点上执行教程,官方教程

  • 9.2.1 在hadoop01上运行

  • 9.2.2 运行结果

  • 9.2.2 打印结果

文章作者: coderpwh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 coderpwh !
  目录