0x01 要用的文件列表
0x02 提示说明
VM和centos7的环境安装就略过
0x03 配置Vmware网络配置选项
这里主要设置的是网关
0x04 Centos网络服务配置
Centos7默认不会打开网络得自己手动打开
# 文件在 /etc/sysconfig/network-scripts/ 下的名为ifcfg-ens** *是数字随机生成的
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#将ONBOOT=NO
改为
ONBOOT=yes
然后输入 service network restart
重启网络服务就好
0x05 DNS解析 修改主机名
直接在命令行里面输入三个就好 #这个可以不写但要你要每次都输入IP
echo '192.168.238.128 one' >>/etc/hosts
echo '192.168.238.129 two' >>/etc/hosts
echo '192.168.238.130 three' >>/etc/hosts
在 /etc/resolv.conf 里面添加DNS
vi /etc/resolv.conf
添加
search localdomain
nameserver DNS # DNS是上面网关IP
修改主机名
vi /etc/sysconfig/newtwork
添加
NETWORKING=yes
HOSTNAME=one
修改完后再 命令行输入
hostname one
0x06 复制机子作为节点机子
右键复制机子–>管理–>克隆
0x07 节点机子设置DNS和修改主机名
操作步骤和0x05步骤一样就不重复步骤了
0x08 设置免密登录
分别在所有机子中设置生成密钥
ssh-keygen -t rsa
全部回车不需要设置多余的
然后在one中进行一下操作
生成公钥并发给各个节点
生成公钥并发给各个节点
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keysscp /root/.ssh/id_rsa.pub root@node2:/root/.ssh/authorized_keysscp /root/.ssh/id rsa.pub root@node3:/root/.ssh/authorized_keys如果发现authorized_keys不存在就创建这个文件touch /root/.ssh/authorized_koeys
然后再把所有子节点的机子上的authorized_keys添加权限
chmod 644 /root/.ssh/authorized_keys
在主机上测试免密登录
ssh root@two
0x09 安装JDK
用FTP功能这直接上传
个人推荐:MobaXterm
以root用户登录的默认放在/root
文件夹下面
tar -xzvf jdk-8u201-liunx-x64.tar.gz -C /usr/local #-C 解压到目标目录
配置环境变量PATH
vi /etc/profile #在里面末尾加上下面两句
export JAVA_HOME=/usr/local/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
接着测试环境
source /etc/profile
java -version
出现就表示JDK配置完成了
0x10 安装Hadoop
上次主机并解压
tar -xzvf hadoop-3.1.2.tar.gz -C /usr/local/hadoop/
配置环境变量
vi /etc/profile #在里面末尾加上下面两句
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
同样测试环境
source /etc/profile
0x11 配置Hadoop
创建数据存储目录
cd /usr/local/hadoopmkdir tmp var dfs dfs/name dfs/data
设置节点主机
vi workers删除localhost添加twothree
配置hadoop-en.sh
vi /usr/local/hadoop/etc/hadoop/hadoop-en.sh
在# JAVA_HOME=/usr/java/testing hdfs dfs -ls 一行下面添加如下代码
export JAVA_HOME=/usr/local/java/jdk1.8.201
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
配置Core-site.xml
vi /usr/local/hadoop/etc/hadoop/Core-site.xml
#内容写在<Configuration>这里</Configuration>
<configuration>
#用来指定HDFS文件系统的命名空间
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.85.101:9000</value>
</property>
#用来指定临时数据文件存放的地址
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
#配置操作HDFS的缓存大小
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>
配置hdfs-site.xml
vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
# 指定hdfs保存数据的副本数量
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
# 块大小
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
#HDFS的元数据存储位置
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
#HDFS的数据存储位置
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
#HDFS的namenode的内部通信地址
<property>
<name>dfs.namenode.http-address</name>
<value>one:50070</value>
</property>
#HDFS的SNN的web ui地址
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>one:50090</value>
</property>
#是否启用HDFS的权限(acl)
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
配置yarn-site.xml
在配置yarn-site.xml之前我们得找到Hadoop的环境变量
在命令行输入hadoop classpath
获取导环境变量后复制
vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
# 指定Yarn的主机(ResourceManager)的地址
<property>
<name>yarn.resourcemanager.hostname</name>
<value>one</value>
</property>
# nomenodeManager获取数据的方式是shuffle
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
# 指定rm的内部通信地址
<property>
<name>yarn.nodemanager.address</name>
<value>one:8032</value>
</property>
# 指定rm的scheduler内部通信地址
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>one:8030</value>
</property>
# 指定rm的resource-tracker内部通信地址
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>one:8031</value>
</property>
# 指定rm的admin内部通信地址
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>one:8033</value>
</property>
# 指定rm的web ui监控地址
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>one:8099</value>
</property>
</configuration>
配置mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>one:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/usr/local/hadoop/var</value>
</property>
# 指定mapreduce运行框架
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
#历史服务的通信地址
<property>
<name>mapreduce.jobhistory.address</name>
<value>one:10020</value>
</property>
#历史服务的Web ui地址
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>one:19888</value>
</property>
0x12 复制配置文件到各个子机上
在主机上运行
scp -r /usr/local/java two:/usr/local/java
scp -r /usr/local/hadoop two:/usr/local/hadoop
scp -r /etc/profile two:/etc/
scp -r /usr/local/java three:/usr/local/java
scp -r /usr/local/hadoop three:/usr/local/hadoop
scp -r /etc/profile three:/etc/
在各个子机上使用source /etc/profile
0x13 运行Hadoop
在运行之前得格式化各个节点
hdfs namenode -format
在运行完后就可以运行hadoop集群
start-all.sh
最后输入jps