实验内容与步骤
1. 配置网络环境:
本次实验用的是Cent OS 6.5 minimal版本,相应的版本可以在官网上下载。
首先安装:
我是用的是parallels desktop 来安装,安装步骤详见:
链接: Mac os上配置PD虚拟机,使其共享网络访问公网.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
进行网络环境的相关配置:
设置DNS解析(不同的系统不一样):
vi /etc/resolv.conf
service network restart
命令,重启网络服务。
测试网络:
ping自己和外网都能通,网络配置成功。
2. 时间同步ntp:
yum -y install ntp ntpdate
ntpdate cn.pool.ntp.org
以上命令进行时间的同步:
date
查看当前时间
3. 克隆系统:
前两步做好了之后,可以关机,然后将系统进行克隆,因为需要配置Hadoop的完全分布式搭建,所以克隆了两个主机。
主机克隆后,需要将网络环境重新配置一下,将硬件地址和UUID删除,并将IP地址更换,之后删除Linux物理地址绑定的文件(该文件会在操作系统重启并生成物理地址以后将物理地址绑定到IP上)
rm -rf /etc/udev/rules.d/70-persistent-net.rules
当然,也可以更改一下主机名称:
vi /etc/sysconfig/network
将HOSTNAME=后面的内容更改成需要的名称即可。
修改网络映射hosts
vim /etc/hosts
例子:
192.168.100.132 master
192.168.100.133 slave1
192.168.100.134 slave2
最后需要重启一下系统:
shutdown -r now
或者init 6
最后的效果:
4. 免秘钥操作:
-
生成密钥
ssh-keygen -t rsa # 一路回车 -
将集群中的所有公钥集中到某台机器,生成免密授权登录文件
bigdata22:
scp ~/.ssh/id_rsa.pub bigdata11:/root/.ssh/22
bigdata33:
scp ~/.ssh/id_rsa.pub bigdata11:/root/.ssh/33
bigdata11:
切换到根目录下的.ssh文件中:
cat id_rsa.pub >> authorized_keys
cat 22 >> authorized_keys
cat 33 >> authorized_keys
-
对文件进行授权:
chmod 600 authorized_keys
必须改,不然不能免密登录 -
将授权列表分发给bigdata22和bigdata33:
scp ~/.ssh/authorized_keys bigdata22:/root/.ssh/authorized_keys
scp ~/.ssh/authorized_keys bigdata33:/root/.ssh/authorized_keys
5. Jdk和Hadoop安装配置:
利用ForkLift将所需要的jdk文件以及Hadoop文件拷到三个主机上:
可以先配好一台机器中的配置文件,再将软件复制到其他机器,减少配置的工作量。
rpm -ivh 命令安装rpm包,安装默认路径:
配置环境变量:
vi .bash_profile
需要source .bash_profile
加载一下。
测试环境JDK:
HADOOP 安装配置:
- 安装源码包用tar -zxvf
Cd /opt/software tar -zxvf hadoop-2.5.1_x64.tar.gz - 配置环境变量
Vi /root/.bash_profile
export PATH
export JAVA_HOME=/usr/java/jdk1.7.0_79
export HADOOP_HOME=/opt/software/hadoop-2.5.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3. 加载环境变量
Source /root/.bash_profile
6. core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml配置:
-
hadoop-env.sh 和 yarn-env.sh 中将Java的环境变量添加:
-
core-site.xml配置:
代码片段:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>默认的文件系统</description>
</property>
<!-- 8020 9000 都是HDFS的RPC端口,都可以 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hadoop-2.6.5/data</value>
<description></description>
</property>
- hdfs-site.xml配置:
代码片段:
<property>
<name>dfs.replication</name>
<value>2</value>
<description>数据块备份数</description>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
<description>关闭权限检查</description>
</property>
- mapred-site.xml配置:
代码片段:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>指定运行mapreduce的框架</description>
</property>
- yarn-site.xml配置:
代码片段:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>指定namenode节点的地址</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务</description>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
<description>指定shuffle类</description>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>是否启用日志聚合,将slave节点的日志聚合至master</description>
</property>
-
将配置好的文件包分别发至其余两个主机上:
scp -r /opt/software/hadoop-2.5.1 bigdata22:/opt/software
scp -r /opt/software/hadoop-2.5.1 bigdata33:/opt/software
-
更改bigdata11上的slaves文件:
7. 格式化启动节点:
启动hadoop
hadoop namenode -format
启动hdfs
start-dfs.sh
启动yarn
start-yarn.sh
查看一下状态:
8. web访问测试:
- HDFS的web端: http://master:50070
- MapReduce的web端: http://master:8088
成功访问,环境搭建完成。