一、虚拟机环境搭建
虚拟机:VMWare12+
操作系统:CentOS6.5
CentOS6.5安装
打开VMWare,将CentOS6.5的iso添加进去,一路下一步,但是在新建虚拟机的时候需要注意:
- 处理器最好是2个以上,具体按照自己的电脑能力分配
- 内存分配多一些,这个就看自己机器的情况了
- 网络设置为NAT,我们先本机测试,前期先不桥接出去
CentOS6.5配置网络环境
- 进入Linux,右击网络->edit connection->双击你的网卡进行ip配置
ipv4setting->manual->add->address network gateway分别为虚拟机上面的编辑->虚拟网络编辑器->第二个NAT模式中的各种网络配置;我的网络为192.168.32.100 255.255.255.0 192.168.32.2
- 命令行输入ifconfig,查看当前虚拟机的IP,若IP为192.168.32.100且执行ping 192.168.32.2有正常的网络通信为配置成功
- 将给好的jdk-8u121-linux-x64.tar.gz包和hadoop-2.6.0.tar.gz包上传至~/hadoop/(/home/qjx/hadoop/)目录下面
- 修改主机名称(root)vim /etc/sysconfig/network 修改HOSTNAME为当前用户名qjx,重启后生效
- 重启后关闭防火墙(root)/etc/init.d/iptables stop
当前linux环境配置如下:
用户:qjx 123456
IP:192.168.32.100
主机名:qjx
二、JDK安装
1.进入hadoop目录
cd hadoop/
2.将hadoop/目录下的jdk-8u121-linux-x64.tar.gz解压
tar -zxvf jdk-linux.tar.gzjdk-8u121-linux-x64.tar.gz
3.编辑/etc/profile文件,并在最后将jdk配置到path(root)
vim /etc/profile JAVA_HOME=/home/qjx/hadoop/jdk1.8.0_121 export PATH=$PATH:$JAVA_HOME/bin
使更改生效(qjx)
source /etc/profile
检验,执行下面语句后输出正确则配置没问题
java -version
三、hadoop安装和伪分布式基本配置
1.进入hadoop/目录
cd hadoop/
2.解压hadoop/目录下的hadoop-2.6.0.tar.gz,完成后会在当前hadoop目录下有hadopp-2.6.0目录
tar -zxvf hadoop-2..6.0.tar.gz
3.修改hadoop-2.6.0/etc/hadoop/hadoop-env.sh文件,增加一行
export JAVA_HOME=/home/qjx/hadoop/jdk-1.8.0_121
4.修改配置文件hadoop-2.6.0/etc/hadoop/core-site.xml,在configaration标签中添加配置
<property> <name>fs.defaultFS</name> <value>hdfs://qjx:9000</value> </property>
此文件配置了hdfs的访问路径,qjx即为自己主机名
5.修改配置文件hadoop-2.6.0/etc/hadoop/hdfs-site.xml,添加配置标签
<property> <name>dfs.replication</name> <value>1</value> </property>
ps:此文件配置了hdfs节点的副本数(block),因为是单节点伪分布式,所以只需要一个
6.修改配置文件hadoop-2.6.0/etc/hadoop/mapred-site.xml ,这个文件不存在,需要复制一份tmp
cp hadoop-2.6.0/etc/hadoop/mapred-site.xml.template hadoop-2.6.0/etc/hadoop/mapred-site.xml
添加配置
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
7.修改配置文件hadoop-2.6.0/etc/hadoop/yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
到此为止,配置文件已经修改完成
四、格式化hdfs和启动伪分布式集群
1.修改/etc/hosts文件(root),添加 一行 主机IP 主机名
192.168.32.100 qjx
2.格式化HDFS,在hadoop解压目录下(/home/qjx/hadoop/hadoop-2.6.0/),执行如下命令:
bin/hdfs namenode -format
注意:格式化只能操作一次,如果因为某种原因,集群不能用, 需要再次格式化,需要把上一次格式化的信息删除,在/tmp目录里执行 rm –rf *(默认将namenode存在/tmp/中,如果后续有操作将配置文件hdfs-site.xml的namenode的值改为了自定义的路径,则删除自己定义的目录)
3.启动集群,在hadoop解压目录下,执行如下命令:
sbin/start-all.sh
需要输入四次当前用户的密码,如果想要不输入密码,可通过配置ssh互信解决,下面有详细方法
4.启动后,命令行输入jps,检查有以下的输出:
[qjx@qjx hadoop-2.6.0]$ jps 32033 Jps 31718 SecondaryNameNode 31528 DataNode 31852 ResourceManager 31437 NameNode 31949 NodeManager
ps:如果碰到缺少某一项,则去hadoop-2.6.0/logs/下面找相应缺少的文件log日志中的错误去解决
5.关闭集群命令:
sbin/stop-all.sh
同样需要输入四次密码
五、ssh互信配置(rsa加密方法)
互信,顾名思义,互相信任,即将两个主机通过公钥,私钥添加互相信任,配置完成可以不用输入密码即可连接ssh
1.命令行输入:ssh-keygen 后,一直Enter,完事(会在根目录下生成三个文件id_rsa,id_rsa.pub,known_hosts)
2.把公钥给信任的主机(本机)
命令行输入 ssh-copy-id 主机名
ssh-copy-id qjx
这个过程需要输入信任主机的密码
3.验证是否成功,在命令行输入 ssh 信任主机名称
ssh qjx
若无提示输入密码,则配置成功