步骤一:环境准备
在Hadoop安装与配置之前,需要准备的环境:虚拟机、Linux系统、配置JDK环境变量。
若以上还没准备,请查询vmware虚拟机linux安装以及linux安装jdk以及配置环境变量,这里不说jdk和虚拟机了。
先安装一台centos即可,后续直接克隆,所有机器的配置文件就不用一个一个修改了。
配置环境变量
1:命令:vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144
export HADOOP_HOME=/usr/hadoop/hadoop-2.6.5
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
生效修改 :source /etc/profile
检查环境变量是否配好
hadoop version
2:根据自己IP修改hosts创建ip别名:vi /etc/hosts
IP地址 master
IP地址 slave1
IP地址 slave2
生效修改 :source /etc/hosts
3:配置master访问slave免密码登陆
执行 以下安装命令 生成秘钥文件
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
如有必要 可以对 .ssh 文件 和 赋权
chmod 700 .ssh
chmod 600 .ssh/*
将密钥发给slaves服务器
scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys
测试 ssh slave1 只要不让输入密码即代表成功
这个就可以正常启动了 不需要输入密码了
4:虚拟机需要关闭防火墙,
注意不同CentOs版本关闭防火墙的指令不同。
systemctl stop firewalld.service
关闭防火墙;
禁止自动启动就用
systemctl disable firewalld.service
就可以了
步骤二:下载
首先我们需要到Apache官网下载我们需要的Hadoop版本,Apache产品官网是:https://www.apache.org/dist/hadoop/common 如下图所示,我们可以看到有很多种产品,这里我们需要的是Hadoop因此我们点击hadoop。
这里我选择的2.6.5版本
步骤三:上传并解压
1.在/usr/src/目录下为hadoop创建个目录:mkdir hadoop
2.下载完成后利用xftp工具将解压包导入linux中。
3.解压:tar -zxvf hadoop-2.6.5.tar.gz -C /usr/src/hadoop
步骤四:分析解压的hadoop目录
如下图所示:
bin文件夹中存放的是一些可执行的脚本(我们用到的比较多的是hadoop、hdfs、yarn);
etc存放的是hadoop的配置文件,这个etc跟linux根目录下的etc是不一样的;
include存放的是本地库的一些头文件;
lib存放的是本地库的文件其所依赖的jar包在share目录下;
sbin里面存放的是关于启动和停止相关的内容(如 start-all.sh、start-dfs.sh、stop-all.sh、stop-dfs.sh等);
步骤五:修改5个配置文件
接下来我们开始修改5个配置文件了,首先我们进入/usr/src/hadoop/hadoop-2.6.5/etc/hadoop的配置文件目录(如下图所示),我们可以看到有很多配置文件。
1.修改配置文件 hadoop-env. sh
输入命令vi hadoop-env. sh,按回车,我们可以看到该文件的内容,如下图所示,其中有一行是配置JAVA环境变量的,初始值默认是${JAVA_HOME},我们需要把它改成具体的jdk所在的目录。查看jdk安装路径 echo $JAVA_HOME
2.修改配置文件core-site.xml
添加的内容在当中,需要说明的是,第一个property配置的是HDFS的NameNode的地址(主机名:端口号),第二个property配置的内容用来指定Hadoop运行时产生的文件的存放目录(初始化的tmp目录,后面格式化时会自动生成tmp文件)。添加完后按ESC键退出编辑模式,输入:wq保存并退出当前配置页面。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9090</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/src/hadoop/data</value>
</property>
</configuration>
3.修改配置文件hdfs-site.xml
该文件是Hadoop的底层存储配置文件。
第一个key|value键值对表示:key表示namenode存储hdfs名字的空间的元数据文件;value表示自己指定的目录(不创建也会自动生成)。
第二个key|value键值对表示:key表示datanode上的一个数据块的物理的存储位置文件;value表示自己指定的目录(不创建也会自动生成)。
第三个key|value键值对表示:用来指定HDFS保存数据副本的数量(现在是伪分布式,所以数量是1,将来的集群副本数量默认是3)
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/src/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/src/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4.修改配置文件mapred-site.xml
我们在hadoop目录下发现文件列表中只有mapred-site.xml.template而没有mapred-site.xml,因此我们需要先把mapred-site.xml.template的后缀.template去掉(即重命名)
mv mapred-site.xml.template mapred-site.xml
然后
vi mapred-site.xml
该配置告诉Hadoop以后mapreduce(MR)运行在YARN上。(表示MapReduce使用yarn框架)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5.修改配置文件yarn-site.xml
需要说明的是,第一个property配置的内容是NodeManager获取数据的方式shuffle,第二个property配置的内容是指定YARN的ResourceManager的地址。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
6.补充:如搭建伪分布式修改配置文件slaves
并修改第六个配置文件:slaves文件,里面写上从节点所在的主机名字
至此关闭虚拟克隆slave
选择虚拟机找到管理的克隆,只需要记住克隆时需要创建一个完整的系统就可以了。
启动所有虚拟机
进入:cd /usr/src/hadoop/hadoop-2.6.5/sbin
格式化namenode
hadoop namenode -format
hdfs namenode -format
启动hadoop :
./start-all.sh
测试hadoop是否可用 第一命令后如没有错误查看是否创建成功执行第二个命令
hadoop fs -mkdir /aaa
hadoop fs -ls /
如有,hadoop集群搭建完成。
本人刚学大数据,以后准备找这方面的工作,如上面配置有问题请高手解答,自测可用。