集群Hadoop实验(虚拟机模拟)centOS
选择一台作为Master,其余的作为Slave结点。
三台虚拟机的用户名都是qinphy
官网下载Hadoop3.1.3(https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz )
ssh网络配置
三台虚拟机都需要做的
# 卸载安装中途都默认yes
$ sudo yum remove openssh-server
$ sudo yum install openssh-server
$ sudo vi /etc/ssh/sshd_config
Port=22 PermitRootLogin=yes PasswordAuthentication=yes
# 启动ssh服务
$ sudo systemctl start sshd.service
$ sudo vi /etc/hosts
hosts文件需要添加的内容(每台机器的IP地址和自定义的结点名称)
192.168.165.132 Master 192.168.165.130 Slave1 192.168.165.131 Slave2
# 测试映射和连接,在Master上:
$ ping Slave1 -c 3
$ ping Slave2 -c 3
# 有时间显示,连接正常
# 测试本地连接
$ ssh localhost
password:
$ exit
Master结点要做的
$ cd ~/.ssh
$ ssh-keygen -t rsa
# 一直回车即可
$ cat ./id_rsa.pub >> ./authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ ssh localhost
# 这里不用输入密码
$ exit
$ ssh-copy-id qinphy@Slave1
yes
password:
$ ssh-copy-id qinphy@Slave2
yes
password:
安装JAVA环境
JAVA选择的是JDK1.8版本,提前下载到了windows里面
这里采用手动安装:
# 三台虚拟机都需要安装JAVA环境
# 创建~/Downloads文件夹,把外来的软件包放这里
$ mkdir ~/Downloads
$ cd ~/.Downloads
# 安装了lrzsz就用rz上传
$ rz
# 创建jvm文件夹,这里是JAVA环境的安装位置
$ cd /usr/lib
$ sudo mkdir jvm
# 解压安装JDK
$ cd ~/Downloads
$ sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm
# 设置JAVA环境变量
$ vim ~/.bashrc
JAVA环境变量:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162 export JRE_HOME=${JAVA_HOME}/jre export CLAsspATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
# 使环境变量生效
$ source ~/.bashrc
# 验证是否安装成功
$ java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
安装Hadoop只在Master上
- 解压安装Master
- 授权给qinphy用户
$ cd ~/Downloads
# 用lrzsz上传也可以使用Xshell自带的文件传输
$ rz
$ sudo tar -zxf ./hadoop-3.1.3.tar.gz -C /usr/local
$ cd /usr/local
# 更改文件夹名称
$ sudo mv ./hadoop-3.1.3/ ./hadoop
$ sudo chown -R qinphy ./hadoop
$ cd /usr/local/hadoop
$ ./bin/hadoop version
hadoop-2.7.1
...
Hadoop集群配置
配置环境变量
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
$ sudo vi ~/.bashrc
$ source ~/.bashrc
- 配置分布式环境
$ cd /usr/local/hadoop/etc/hadoop
$ sudo vi workers
# Hadoop-2.7.1方法: $ sudo vi slaves
slaves文件配置
# 删除localhost # localhost Slave1 Slave2
$ sudo vi core-site.xml
core-site.xml 文件配置:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://Master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> </configuration>
$ sudo vi hdfs-site.xml
hdfs-site.xml文件配置:
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>Master:50090</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
$ sudo vi mapred-site.xml
# 安装Hadoop-2.7.1如下方法: $ sudo mv mapred-site.xml.template mapred-site.xml $ sudo vi mapred-site.xml
mapred-site.xml配置文件:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>Master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>Master:19888</value> </property> </configuration>
$ sudo vi yarn-site.xml
yarn-site.xml配置文件:
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>Master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
Slave结点的配置
# Master结点上的压缩转移
$ cd /usr/local
$ tar -zcf ~/hadoop.master.tar.gz ./hadoop
$ cd ~
$ scp ./hadoop.master.tar.gz Slave1:/home/qinphy
password:
$ scp ./hadoop.master.tar.gz Slave2:/home/qinphy
password:
# 在Salve结点上:
$ sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
$ sudo chown -R qinphy /usr/local/hadoop
Master结点的启动
# 初始化Namenode,只在第一次运行时需要
$ hdfs namenode -format
注意:CentOS需要关闭防火墙:
$ systemctl stop firewalld.service $ systemctl disable firewalld.service
启动结点:
$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver
# 以上语句等同于:
$ start-all.sh
# 在Master上验证:
$ jps
# 在Slave上验证
$ cd /usr/local/hadoop
$ jps
Master验证结果:
Slave1上验证结果:
Slave2上验证结果:
Master还有一个重要的report验证:
$ hdfs dfsadmin -report
结果是(出现Live datanode != 0):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。