Hoadoop 虚拟机环境搭建 vm 11.2 、liunx 版本 centos 7、jdk 版本1.8 、操作系统 mac
一、 liunx虚拟安装好,之后需要配置网络环境,使用root用户进行设置
1、编辑network文件,讲HOSTNAME值修改为新的主机名,具体操作如下:
su -l root
vi /etc/sysconfig/network
改写成
HOSTNAME = Master001
2、设置静态ip,通过编辑ifcfg-ens33文件,设置IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改:
BOOTPROTO=“static”
ONBOOT = “yes”
添加:
IPADDR=192.168.239.101
NETMASK=255.255.255.0
GATEWAY=192.168.239.2
DNS1=192.168.239.2
DNS2=114.114.114.114
具体如下图所示:
3、设置resolv.conf,具体操作如下:
vi /etc/resolv.conf
添加:
nameserver 192.168.239.2
nameserver 114.114.114.114
如下图所示:
4、设置hosts,具体操作如下:
vi /etc/hosts
添加:
192.168.239.101 Master001
192.168.239.201 Slave001
192.168.239.202 Slave002
如下图所示:
5、使设置生效,如下操作:
service network restart
6、从新启动虚拟机:reboot
7、启动成功,验证设置是否成功:
[root@localhost ~] 变成了[root@Master001 ~]
8、ifconfig 查看网络,如下图所示:
9、验证外网是否联通:ping www.baidu.com,如下图所示,表示成功
二、liunx 创建用户
1、创建hadoop普通用户:adduser hadoop,如下图所示:
2、给hadoop用户指定密码(liuhongchun):password,如下图所示:
3、验证用户是否创建成功:切换到hadoop用户下:su -l hadoop
三、安装jdk
1、查看系统原来的jdk,卸载原来的jdk,
rpm -qa | grep jdk #查看原有的JDK
rpm -e --nodeps java-XXX #卸载JDK
2、官网下载jdk-8u201-linux-x64.tar.gz,
解压 tar -zxvf jdk-8u201-linux-x64.tar.gz
设置环境变量,vim /etc/profile
export JAVA_HOME=/opt/rh/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效 source /etc/profile
检验JAVA安装 java -version
3、关闭防火墙
systemctl start firewalld #启动防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机禁用
systemctl enable firewalld #开机启用
4、配置ssh免密登录,切换到 su -l hadop 账户下
(1)、生成密钥 :ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
(2)、对所有节点进行免密:
ssh-copy-id Master001
ssh-copy-id Slave001
ssh-copy-id Slave002
5、安装hadoop 版本 hadoop-3.1.2
官网下载:hadoop-3.1.2.tar.gz
解压:tar -zxvf hadoop-3.1.2.tar.gz 到 /opt/rh/目录中
创建下面tmp、hdfs、hdfs/data、hdfs/name 文件夹,创建操作如下:
[root@Master001 hadoop-3.1.2]# mkdir /opt/rh/hadoop-3.1.2/tmp
[root@Master001 hadoop-3.1.2]# mkdir /opt/rh/hadoop-3.1.2/hdfs
[root@Master001 hadoop-3.1.2]# mkdir /opt/rh/hadoop-3.1.2/hdfs/data
[root@Master001 hadoop-3.1.2]# mkdir /opt/rh/hadoop-3.1.2/hdfs/name
设置环境变量 切换到su -l root
打开 vi /etc/profile
将如下:hadoop 目录对应如下环境配置到文件中
export HADOOP_HOME="/opt/rh/hadoop-3.1.2"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
配置完成后执行 source /etc/profile 然后环境变量生效
6、分别配置hadoop 目下/opt/rh/hadoop-3.1.2/几个文件
(1)、配置 vi /opt/rh/hadoop-3.1.2/etc/hadoop/hadoop-env.sh 文件,增加jdk
查看jdk路径: echo $JAVA_HOME 如下图
export JAVA_HOME=/opt/rh/jdk1.8.0_201 #配置自己的jdk路径
(2)、配置 vi /opt/rh/hadoop-3.1.2/etc/hadoop/core-site.xml 文件
<!-- 指定HDFS(namenode)的通信地址 默认8020端口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master001:8020/</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/rh/hadoop-3.1.2/tmp</value>
</property>
如图所示:
(3)、配置vi /opt/rh/hadoop-3.1.2/etc/hadoop/hdfs-site.xml 文件
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/rh/hadoop-3.1.2/data/tmp</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/rh/hadoop-3.1.2/tmp/data/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
如图 所示:
(4)、分别配置在 vi /opt/rh/hadoop-3.1.2/sbin/start-dfs.sh 和 vi /opt/rh/hadoop-3.1.2/sbin/stop-dfs.sh 文件
中头部添加如下:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
(5)、分别配置在 vi /opt/rh/hadoop-3.1.2/sbin/start-yarn.sh 和 vi /opt/rh/hadoop-3.1.2/sbin/stop-yarn.sh 文件
中头部添加如下:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
(6)、配置vi /opt/rh/hadoop-3.1.2/etc/hadoop/mapred-site.xml 文件
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master001:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master001:19888</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>5120</value>
</property>
<property>
<name>mapreduce.reduce.input.buffer.percent</name>
<value>0.5</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
如图所示:
(7)、配置/opt/rh/hadoop-3.1.2/etc/hadoop/yarn-site.xml文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>/opt/rh/hadoop-3.1.2/etc/hadoop:/opt/rh/hadoop-3.1.2/share/hadoop/common/lib/*:/opt/rh/hadoop-3.1.2/share/hadoop/common/*:/opt/rh/hadoop-3.1.2/share/hadoop/hdfs:/opt/rh/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/opt/rh/hadoop-3.1.2/share/hadoop/hdfs/*:/opt/rh/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/opt/rh/hadoop-3.1.2/share/hadoop/mapreduce/*:/opt/rh/hadoop-3.1.2/share/hadoop/yarn:/opt/rh/hadoop-3.1.2/share/hadoop/yarn/lib/*:/opt/rh/hadoop-3.1.2/share/hadoop/yarn/*</value>
</property>
如图所示:
注意如上图中 classpath,用hadoop classpath获取自己的环境的 classpath目录
编辑yarn-site.xml
添加如下内容
<configuration>
<property>
<name>yarn.application.classpath</name>
<value>输入刚才返回的Hadoop classpath路径</value>
</property>
(8)、分别将/opt/rh/hadoop-3.1.2 复制到其他服务器:
scp -r opt/rh/hadoop-3.1.2 root@192.168.239.201:opt/rh/hadoop-3.1.2
scp -r opt/rh/hadoop-3.1.2 root@192.168.239.201:opt/rh/hadoop-3.1.2
(9)、配置以上这些之后启动
(1)第一次启动hdfs需要格式化,之后启动就不需要的:
先切换到 cd /opt/rh/hadoop-3.1.2目录,在执行./bin/hdfs namenode -format
格式化完成之后在执行启动命令/opt/rh/hadoop-3.1.2/sbin/start-all.sh
启动完成之后分别查看三台机器:
root@Master001 执行jps
root@Slave001 执行jps
root@Slave002 执行jps
如以上所示,表示hadoop搭建成功。
systemctl stop firewalld #关闭防火墙
访问如下web界面,看到
http://192.168.239.101:50070/dfshealth.html#tab-overview
http://192.168.239.101:8088/cluster