云计算实验1——CentOS中hadoop的安装

本文是对"云计算"课程学习中 hadoop安装实验 的实验步骤记录。若有错误,欢迎交流指正。

实验环境:3台CentOS 7虚拟机,均已配置Java 1.7.0_79

实验目的:安装hadoop(版本2.6.5)

目录

  • [1 虚拟机准备](#1 虚拟机准备)
  • [2 配置SSH无密码登录](#2 配置SSH无密码登录)
    • [2.1 配置hosts](#2.1 配置hosts)
    • [2.2 配置SSH无密码登录](#2.2 配置SSH无密码登录)
  • [3 hadoop的安装](#3 hadoop的安装)
    • [3.1 解压安装hadoop](#3.1 解压安装hadoop)
    • [3.2 修改配置文件](#3.2 修改配置文件)
      • [3.2.1 hadoop-env.sh](#3.2.1 hadoop-env.sh)
      • [3.2.2 core-site.xml](#3.2.2 core-site.xml)
      • [3.2.3 hdfs-site.xml](#3.2.3 hdfs-site.xml)
      • [3.2.4 配置masters和slaves](#3.2.4 配置masters和slaves)
    • [3.3 将hadoop复制到其他节点](#3.3 将hadoop复制到其他节点)
    • [3.4 配置环境变量](#3.4 配置环境变量)
    • [3.5 hadoop初始化](#3.5 hadoop初始化)
  • [4 启动hadoop进行测试](#4 启动hadoop进行测试)
    • [4.1 启动hadoop](#4.1 启动hadoop)
    • [4.2 浏览器测试](#4.2 浏览器测试)
    • [4.3 上传文件测试](#4.3 上传文件测试)

1 虚拟机准备

首先创建三台虚拟机,虚拟机网络配置为桥接模式,并根据自己PC的网络信息,在CentOS中分别配置各自的IP地址,使其和PC位于相同网段。

在windows中,使用ssh连接到三台虚拟机。

2 配置SSH无密码登录

2.1 配置hosts

首先使用以下命令修改三台机器的名字,我这里命名为node1、node2、node3。

bash 复制代码
hostnamectl set-hostname 主机名

然后配置hosts,三台机器均执行:vi /etc/hosts,添加三台机器对应的IP。注意IP和主机名之间使用tab键隔开。

配置好后,通过机器名称互相ping,测试可以联通。

2.2 配置SSH无密码登录

首先生成ssh密钥。在三台机器中执行此命令:

bash 复制代码
ssh-keygen -t dsa -P '' -f ~/.ssh/id_rsa

接下来分别将每台机器的公钥记录下来,并将node2和node3的公钥拷贝到node1中。
node1:

bash 复制代码
cd ~/.ssh
cat id_rsa.pub >> authorized_keys

node2:

bash 复制代码
cd ~/.ssh
cat id_rsa.pub >> authorized_keys1
scp authorized_keys1 root@node1:~/.ssh/


node3:

bash 复制代码
cd ~/.ssh
cat id_rsa.pub >> authorized_keys2
scp authorized_keys2 root@node1:~/.ssh/

在node1中,将node2和node3的公钥添加进authorized_keys中。
node1:

bash 复制代码
cat authorized_keys1 >> authorized_keys
cat authorized_keys2 >> authorized_keys

在node1中,将合并好的authorized_keys分发到node2和node3中。

bash 复制代码
scp authorized_keys root@node2:~/.ssh/
scp authorized_keys root@node3:~/.ssh/

在node2中进行测试,可以无密码登录node1。使用exit退出ssh会话。

3 hadoop的安装

以下命令均在node1中执行。node1中配置好hadoop后,将其拷贝到node2和node3即可。

3.1 解压安装hadoop

首先准备hadoop的安装包,放置到/usr目录中。

由于虚拟机此前配置过hadoop,所以首先删除原机已经有的hadoop

bash 复制代码
cd /usr
rm -rf hadoop

然后解压hadoop,并重命名

bash 复制代码
tar -xzvf hadoop-2.6.5.tar.gz
mv hadoop-2.6.5 /usr/hadoop

创建运行时需要的文件夹

bash 复制代码
mkdir /usr/hadoop/tmp 
mkdir /usr/hadoop/hdfs 
mkdir /usr/hadoop/hdfs/data 
mkdir /usr/hadoop/hdfs/name

3.2 修改配置文件

3.2.1 hadoop-env.sh

bash 复制代码
vi /usr/hadoop/etc/hadoop/hadoop-env.sh

找到如下内容:export JAVA_HOME=${JAVA_HOME}

将这行内容修改为:export JAVA_HOME=/usr/java/jdk1.7.0_79

3.2.2 core-site.xml

bash 复制代码
vi /usr/hadoop/etc/hadoop/core-site.xml

configuration标签之间加入以下内容

复制代码
<property>
		 <name>hadoop.tmp.dir</name>
		 <value>/usr/hadoop/cloud</value>
</property>
<property>
		 <name>fs.defaultFS</name>
		 <value>hdfs://node1:8020</value>
</property>

3.2.3 hdfs-site.xml

bash 复制代码
vi /usr/hadoop/etc/hadoop/hdfs-site.xml

configuration标签之间加入以下内容

复制代码
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>node2:50090</value>
</property>
<property>
	<name>dfs.namenode.secondary.https-address</name>
	<value>node2:50091</value>
</property>

3.2.4 配置masters和slaves

bash 复制代码
cd /usr/hadoop/etc/hadoop/

使用vi命令修改masters和slaves两个文件的内容:

bash 复制代码
vi slaves

slaves中,删除localhosts,添加node2、node3

bash 复制代码
vi masters

masters中,添加node1

3.3 将hadoop复制到其他节点

在node1中执行以下命令,将配置好的hadoop复制到node2和node3

bash 复制代码
scp -r /usr/hadoop root@node2:/usr/
scp -r /usr/hadoop root@node3:/usr/

3.4 配置环境变量

以下命令在所有机器中均需执行

bash 复制代码
vi /etc/profile

添加以下内容

bash 复制代码
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行以下命令使配置生效

bash 复制代码
source /etc/profile

3.5 hadoop初始化

在node1中执行以下命令

bash 复制代码
cd /usr/hadoop/bin
./hdfs namenode -format

4 启动hadoop进行测试

4.1 启动hadoop

在node1中执行命令,启动hadoop

bash 复制代码
cd /usr/hadoop/sbin
./start-dfs.sh

检查各节点状态,在各节点中分别执行命令jps

各节点应有的进程如下表所示

节点 进程
node1 ResourceManager、NameNode、Jps
node2 DataNode、SecondaryNameNode、Jps
node3 DataNode、Jps

4.2 浏览器测试

在node1虚拟机中,启动浏览器,地址栏输入node1:50070

选择datanodes,能看到node2和node3的信息。

若看不到其他datanode的信息,可排查防火墙状态。在学习过程中,可以直接关闭CentOS防火墙。

bash 复制代码
systemctl stop firewalld     # 本次停止
systemctl disable firewalld  # 停用防火墙服务

4.3 上传文件测试

向HDFS新建一个测试文件夹

bash 复制代码
hdfs dfs -mkdir /test

选择browse the file system

可以看到刚才新建的目录

再创建一个测试文件并上传

bash 复制代码
echo hello > hello.txt
hdfs dfs -put hello.txt /test

在test目录中可以看到上传的文件


实验至此结束,感谢阅读本文。

文中所有图片均添加水印,严禁任何方式盗用或转载本文及文中图片。

相关推荐
科技峰行者5 小时前
阿里云瓴羊发布企业级AI智能体服务平台AgentOne,成就AI时代的“超级公司”
人工智能·阿里云·ai·云计算·羚羊
zhuwei_clark5 小时前
Spring AI(七)Spring AI 的RAG实现集合火山向量模型+阿里云Tair(企业版)
人工智能·阿里云·云计算
董可伦6 小时前
Hadoop HA 集群安装配置
大数据·hadoop·分布式
学习中的阿陈6 小时前
Hadoop完全分布式配置
大数据·hadoop·分布式
字节跳动视频云技术团队8 小时前
字节跳动多媒体实验室联合ISCAS举办第五届神经网络视频编码竞赛
人工智能·云计算·音视频开发
奥尔特星云大使9 小时前
mysql重置管理员密码
linux·运维·数据库·mysql·centos
伊织code9 小时前
AWS Toolkit - 注册 AWS Builder ID 账号
云计算·aws
SkyXZ~9 小时前
AWS SageMaker SDK 完整教程:从零开始云端训练你的模型
人工智能·深度学习·云计算·aws·sagemaker·boto3
荣光波比9 小时前
Docker(二)—— Docker核心功能全解析:网络、资源控制、数据卷与镜像构建实战
运维·网络·docker·容器·云计算