一、虚拟机环境搭建
我们用的虚拟机为vmware,Linux镜像为centOS6.5.
vmware安装
安装没什么多说的,一路下一步,但是在新建虚拟机的时候有两个地方需要注意:
1.分配处理器1个就好了,毕竟现在搭的是伪分布式
2.内存分配多一些,这个就看自己机器的情况了
3.网络设置为NAT,不然会有连不上网的问题
centOS6.5安装
将镜像文件添加至虚拟机中,这个CentOS6.5安装比较傻瓜式,不用自己操作,不像之前在CentOS7的安装,还需要自己进行分区,各种设置。
CentOS6.5配置网络环境
1.进入Linux,右击网络->edit connection->双击你的网卡进行ip配置
ipv4setting->manual->add->address network gateway分别为虚拟机上面的编辑->虚拟网络编辑器->第二个NAT模式中的各种网络配置
我的网络为192.168.32.100 255.255.255.0 192.168.32.2
2.命令行输入ifconfig,查看当前虚拟机的IP,若IP为192.168.32.100则配置正确
3.将给好的jdk-8u121-linux-x64.tar.gz包和hadoop-2.6.0.tar.gz包上传至~/hadoop/(/home/qjx/hadoop/)目录下面
4.修改主机名称(root)vim /etc/sysconfig/network 修改HOSTNAME为当前用户名qjx,重启后生效
5.重启后关闭防火墙(root)vim /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
检验path是否正确可以在命令行输入echo $PATH
三、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>
ps:此文件配置了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和启动伪分布式集群
- 修改/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
若无提示输入密码,则配置成功