链接:https://pan.baidu.com/s/1F7Ke7RHBjYCz3ISKuGPRTQ
提取码:y7t2
本教程由centos7加hadoop2.7.5加jdk1.7构成:
一、网络文件设置 (涉及ifcfg-ens33、hostname、hosts)
克隆三个虚拟机分别命名为 master slave1 slave2
修改网卡配置文件:gedit /etc/sysconfig/network-scripts/ifcfg-ens33
然后分别修改:
master:
#添加以下内容 为虚拟机ip配置,可自定义
IPADDR=192.168.11.111
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
#修改为静态ip
BOOTPROTO=static
#设置网卡自动开启
ONBOOT=yes
#如果没有MAC地址,则添加
HWADDR=本机mac地址(通过ifconfig查看)
如此 slave1和slave2这样操作 分别配置为192.168.11.112 192.168.11.113
修改网络名文件: gedit /etc/hostname
删掉原来的内容 分别修改为 master slave1 slave2
修改域名解析文件: gedit /etc/hosts
#添加
master 192.168.11.111
slave1 192.168.11.112
slave2 192.168.11.113
(三个文件同时这样添加)
最后 重启网卡 systemctl restart network
二、配置ssh免密登录
分别在三台电脑上建立新用户 hadoop,并修改密码
useradd hadoop
passwd hadoop
然后配置sudo文件,让他们可以使用sudo命令
visudo
#找到root ALL=(ALL) ALL这一行,在下面添加
Hadoop ALL=(ALL) ALL
#顺便把这一行的#号去掉。去掉了就不用管了
#%wheel ALL=(ALL) ALL
Centos7默认集成着ssh服务
保证由master主机能够免密码登录到slave节点上
# master 生成公钥(三台都要配置)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
复制 master 公钥到 slave节点
# 复制 master 主机公钥到 slave节点的 /tmp 目录
scp ~/.ssh/id_rsa.pub [email protected]:/tmp/authorized_keys
scp ~/.ssh/id_rsa.pub [email protected]:/tmp/authorized_keys
追加 /tmp/authorized_keys 到 ~/.ssh/authorized_keys
cat /tmp/authorized_keys >> ~/.ssh/authorized_keys
注意:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
三、配置基础环境
基础环境包括java环境和hadoop基础配置,从百度云连接上提取jdk和hadoop源码,通过tools,共享文件夹,u盘传输等方式,拷贝到虚拟机内。
配置java环境
cd /usr
mkdir lo
cd lo
mkdir java
mkdir hadoop
cd 桌面
sudo tar -zxvf jdk-1.7.tar.gz -C /usr/lo/
sudo tar -zxvf hadoop-2.7.5.tar.gz -C /usr/lo/
cd /usr/lojdk1.7.0_80
pwd #这个是java环境的工作路径
cd /usr/lo/hadoop-2.7.5
pwd #这个是hadoop的工作路径
cd /usr
sudo chown hadoop -R lo
#到目前为止,解压完成,以下开始配置环境
sudo gedit /etc/profile
#修改JAVA_HOME为当前工作路径
export JAVA_HOME=(pwd时输出的路径)
#然后添加
export HADOOP_HOME=(pwd时输出的路径)
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
#在PATH里面加上hadoop的路径
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
#保存并关闭
刷新文件
source /etc/profile
java -version
hadoop
运行这两条命令时,出现这个,代表配置成功
接下来开始配置hadoop四文件:这四个文件都在hadoop安装目录下的etc/hadoop
第一个文件 core-site.xml:
<configuration>
<!--指定namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!--用来指定使用hadoop时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lo/tmp</value>
</property>
</configuration>
第二个文件hdfs-site.xml:
<configuration>
<!--指定hdfs保存数据的副本数量-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--指定SecondayNameNode的端口号-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<!--指定hdfs中namenode的存储位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/lo/tmp/name</value>
</property>
<!--指定hdfs中datanode的存储位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/lo/tmp/data</value>
</property>
</configuration>
第三个文件mapred-site.xml
<configuration>
<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--配置MapReduce历史服务器-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
第四个文件yarn-site.xml
<configuration>
<!--nomenodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn的老大(ResourceManager)的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<configuration>
然后修改 hadoop-env.sh
把里面的JAVA_HOME 修改成profile中的JAVA_HOME路径。
接着修改 slaves
把 192.168.11.112 192.168.11.113 添加到里面
然后 把整个配置好的hadoop目录和java目录打包,发给其他slave节点机
cd /usr
tar -zcvf lo.tar.gz lo
发送
(这里需要提前在两个子节点建立属主为hadoop用户的文件例如/usr/tmp1)
scp /usr/lo.tar.gz [email protected]:/usr/tmp1
scp /usr/lo.tar.gz [email protected]:/usr/tmp1
持一致格式化文件系统
hdfs namenode -format
启动文件服务
start-dfs.sh
start-yarn.sh
在hadoop—env.sh中 添加export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"