介绍:在Linux系统上安装分布式hadoop平台,副本数为2;
架构:centos6.5+ hadoop2.6.5+jdk1.8
配置:此次配置的用户为hadoop用户(无注明的步骤中均使用hadoop用户,防止权限过大,误操作影响系统安全)
master IP:192.168.125.201
slave1 IP:192.168.125.202
slave2 IP:192.168.125.203
安装步骤:
一、windows10下进行安装包下载:
1、下载安装包 jdk1.8(64位的系统需要装 64位的安装包)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2、下载安装包 hadoop2.6.5(64位的系统需要装 64位的安装包)
http://archive.apache.org/dist/hadoop/common/hadoop-2.6.5/
二、对linux系统进行配置(先配置master,salve直接克隆master):
1、创建/soft文件夹,存放应用程序(root用户)
sudo mkdir /soft
sudo chown hadoop:hadoop /soft
2、使用 rz,把windows下文件传到linux下
由于没有安装 rz,sz 包,无法使用命令 ,重新下载 rz,sz包
https://ohse.de/uwe/software/lrzsz.html
3、将两个文件放到 /soft目录下
4、配置sudo(root用户配置)
----临时借用root的权限执行命令,需要配置当前用户具有sudo的执行权利
vim /etc/sudoers
hadoop ALL =(ALL) ALL
关闭内核防火墙:
vim /etc/selinux/config
SELINUX=disabled
关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
5、先对master进行配置:
配置IP(root用户):
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.125.201
NETMASK=255.255.255.0
GATEWAY=192.168.125.1
DNS=192.168.125.1
配置主机名(root用户):
vim /etc/hosts
192.168.125.201 master
192.168.125.202 slave1
192.168.125.203 slave2
vim /etc/sysconfig/network
HOSTNAME=master
6、安装jdk包 (root用户,由于其他用户或者其他程序会用到JDK,所以JDK使用root用户进行安装,且目录为/usr/local/src)
1)解压(root用户)
cp /soft/jdk-8u191-linux-x64.tar.gz /usr/local/src/
cd /usr/local/src/
tar -zxvf jdk-8u191-linux-x64.tar.gz
2)配置环境变量(root用户);
vim ~/.bashrc #对root用户生效
export JAVA_HOME=/usr/local/src/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc (root用户)
vim /etc/profile #对所有用户生效 (root用户)
export JAVA_HOME=/usr/local/src/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile (root用户)
7、安装hadoop
tar -zxvf hadoop-2.7.2.tar.gz -C /soft/
8、创建符号链接,方便读取:
ln -s /soft/hadoop-2.7.2/ /soft/hadoop
9、配置HADOOP环境变量:
vim ~/.bashrc
export HADOOP_HOME=/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
10.对hadoop文件进行配置:
1)cd hadoop-2.6.5/etc/hadoop/
vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_172
2)vim yarn-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_172
3)修改配置文件 添加从节点主机名
vim slaves
slave1
slave2
4)vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name> #指定文件系统master
<value>hdfs://master</value>
</property>
<property>
<name>hadoop.tmp.dir</name> #指定节点的文件路径存放位置
<value>/soft/hadoop/tmp</value>
</property>
</configuration>
5)hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name> #指定辅助名称节点位置
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name> #指定名称节点的文件路径
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name> #指定数据节点的文件路径
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<property>
<name>dfs.replication</name> #指定副本个数
<value>2</value>
</property>
6) vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name> #使用yarn运行mapreduce程序
<value>yarn</value>
</property>
7) vim yarn-site.xml ##资源管理器节点--配置各种地址
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
8)创建上述配置的文件存放目录
mkdir /soft/hadoop/tmp
mkdir -p /soft/hadoop/tmp/dfs/data
mkdir -p /soft/hadoop/tmp/dfs/name
三、其他配置
1、虚拟机中克隆master 两台,作为slave1,slave2;
2、修改slave1,slave2的IP(root用户):
slave1:
IPADDR=192.168.125.202
slave2:
IPADDR=192.168.125.203
service network restart
修改主机名
slave1:
vim /etc/sysconfig/network
HOSTNAME=slave1
slave2:
vim /etc/sysconfig/network
HOSTNAME=slave2
3、配置免密登录:
配置ssh免密码登录(三台机器都安装)
192.168.125.201先配置密钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
传送到slave上去(无法操作的需要重启一次)
scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/authorized_keys
ssh进行测试 :
ssh slave1
ssh slave2
4、配置windows的Hosts名,方便主机名访问hadoop平台
网页控制台 (需要修改本地hosts文件 添加主机记录)
# Windows C:\Windows\System32\drivers\etc\hosts #没有可以新建文件
192.168.125.201 master
192.168.125.202 slave1
192.168.125.203 slave2
四、初始化节点与启动集群:
hadoop namenode -format
启动集群:/usr/local/src/hadoop-2.6.5/sbin/start-all.sh
查看进程:jps
浏览器访问 http://master:8088/cluster
----------------------------------------------
五:master增加两个脚本,用来同步文件和查看进程状态
创建好文件后,给予可执行命令,并将脚本放到/soft/hadoop/sbin/ 下
此时需要将java_home放到hadoop用户的.bashrc 配置文件中;
同步脚本:
xsync.sh
#!/bin/bash
if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi
##当传入文件传入时,通过取到文件的名,文件路径,然后用xsync同步到对应的slave路径下
p=$1 #传入的文件名,可带路径
#echo p=$p #文件名字
dir=`dirname $p` ##取文件文件夹路径
#echo dir=$dir
filename=`basename $p` ##文件去掉路径后的文件名
#echo filename=$filename
cd $dir #到文件的所处路径
fullpath=`pwd -P .` #找到当前位置
#echo fullpath=$fullpath
user=`whoami`
for (( i = 1 ; i <= 2 ; i = $i + 1 )) ; do
echo ======= slave$i =======
rsync -lr $p ${user}@slave$i:$fullpath
done ;
查看文件和进程;
xcall.sh
#!/bin/bash
params=$@
echo ============= master $params =============
ssh master "$params"
echo ============= slave1 $params=============
ssh slave1 "$params"
echo ============= slave2 $params=============
ssh slave2 "$params"
效果: