1、使用的Virtual Box安装包,一步一步安装即可。
2、之所以选用Virtual Box是因为它比VMWare更加稳定。使用VMWare运行hadoop集群或者spark集群时,有时会出现休眠后重启时,某些进程莫名挂掉的问题。而Virtual Box没有这种情况。
3、之所以选择Virtual Box 4.1版本,是因为更高的版本就不兼容win7了。
一、Centos6.5集群搭建
------------Centos6.5安装----------------------------------------------
1、使用课程提供的CentOS 6.5镜像即可,CentOS-6.5-i386-minimal.is
2、创建虚拟机:打开Virtual Box,点击“新建”按钮,点击“下一步”,输入虚拟机名称为spark1,选择操作系统为Linux,选择版本为Red Hat,分配1024MB内存,后面的选项全部用默认,在Virtual Disk File location and size中,一定要自己选择一个目录来存放虚拟机文件,最后点击“create”按钮,开始创建虚拟机。
3、设置虚拟机网卡:选择创建好的spark1虚拟机,点击“设置”按钮,在网络一栏中,连接方式中,选择“Bridged Adapter”。
4、安装虚拟机中的CentOS 6.5操作系统:选择创建好的虚拟机spark1,点击“开始”按钮,选择安装介质(即本地的CentOS 6.5镜像文件),选择第一项开始安装-Skip-欢迎界面Next-选择默认语言-Baisc Storage Devices-Yes, discard any data-主机名:spark1-选择时区-设置初始密码为hadoop-Replace Existing Linux System-Write changes to disk-CentOS 6.5自己开始安装。
5、安装完以后,CentOS会提醒你要重启一下,就是reboot,你就reboot就可以了。
-------------Centos6.6网络配置-----------------------------------------
1、先临时性设置虚拟机ip地址:ifconfig eth0 192.168.1.107,在/etc/hosts文件中配置本地ip(192.168.1.107)到host(spark1)的映射
2、配置windows主机上的hosts文件:C:\Windows\System32\drivers\etc\hosts,192.168.1.107 hadoop1
3、使用SecureCRT从windows上连接虚拟机,自己可以上网下一个SecureCRT的绿色版,网上很多。
4、永久性配置CentOS网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.107
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
5、重启网卡
service network restart
6、即使更换了ip地址,重启网卡,可能还是联不通网。那么可以先将IPADDR、NETMASK、GATEWAY给删除,将BOOTPROTO改成dhcp。然后用service network restart重启网卡。此时linux会自动给分配一个ip地址,用ifconfig查看分配的ip地址。然后再次按照之前说的,配置网卡,将ip改成自动分配的ip地址。最后再重启一次网卡。
------------- CentOS 6.5防火墙和DNS配置------------------------------
1、关闭防火墙
service iptables stop
chkconfig iptables off
vi /etc/selinux/config
SELINUX=disabled
自己在win7的控制面板中,关闭windows的防火墙!
2、配置dns服务器
vi /etc/resolv.conf
nameserver 192.168.1.1
ping www.baidu.com
------------- CentOS 6.5 yum配置--------------------------------------
1、修改repo
使用WinSCP(网上很多,自己下一个),将CentOS6-Base-163.repo上传到CentOS中的/usr/local目录下
cd /etc/yum.repos.d/
rm -rf *
mv 自己的repo文件移动到/etc/yum.repos.d/目录中:cp /usr/local/CentOS6-Base-163.repo .
修改repo文件,把所有gpgcheck属性修改为0
2、配置yum
yum clean all
yum makecache
yum install telnet
------------- JDK 1.7安装----------------------------------------------
1、将jdk-7u60-linux-i586.rpm通过WinSCP上传到虚拟机中
2、安装JDK:rpm -ivh jdk-7u65-linux-i586.rpm(也可以直接用java压缩包)
3、配置jdk相关的环境变量
vi .bashrc
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
source .bashrc
4、测试jdk安装是否成功:java -version
5、rm -f /etc/udev/rules.d/70-persistent-net.rules
-------------安装第二台和第三台虚拟机------------------------------
1、安装上述步骤,再安装两台一模一样环境的虚拟机,因为后面hadoop和spark都是要搭建集群的。
2、集群的最小环境就是三台。因为后面要搭建ZooKeeper、kafka等集群。
3、另外两台机器的hostname分别设置为spark2和spark3即可,ip分别为192.168.1.108和192.168.1.109
4、在安装的时候,另外两台虚拟机的centos镜像文件必须重新拷贝一份,放在新的目录里,使用各自自己的镜像文件。
5、虚拟机的硬盘文件也必须重新选择一个新的目录,以更好的区分。
6、安装好之后,记得要在三台机器的/etc/hosts文件中,配置全三台机器的ip地址到hostname的映射,而不能只配置本机,这个很重要!
7、在windows的hosts文件中也要配置全三台机器的ip地址到hostname的映射。
-------------配置集群ssh免密码登录----------------------------------
1、首先在三台机器上配置对本机的ssh免密码登录
生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下
ssh-keygen -t rsa
将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
cd /root/.ssh
cp id_rsa.pub authorized_keys
2、接着配置三台机器互相之间的ssh免密码登录
使用ssh-copy-id -i spark命令将本机的公钥拷贝到指定机器的authorized_keys文件中(方便好用)
eg:ssh-copy-id -i spark1
二、Hadoop集群搭建
-------------安装hadoop包-------------------------------------------
1、使用hadoop-2.4.1.tar.gz,使用WinSCP上传到CentOS的/usr/local目录下。
2、将hadoop包进行解压缩:tar -zxvf hadoop-2.4.1.tar.gz
3、对hadoop目录进行重命名:mv hadoop-2.4.1 hadoop
4、配置hadoop相关环境变量
vi .bashrc
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source .bashrc
-------------修改core-site.xml----------------------------------------
fs.default.name
hdfs://spark1:9000
-------------修改hdfs-site.xml----------------------------------------
dfs.name.dir
/usr/local/data/namenode
dfs.data.dir
/usr/local/data/datanode
dfs.tmp.dir
/usr/local/data/tmp
dfs.replication
3
-------------修改mapred-site.xml-------------------------------------
mapreduce.framework.name
yarn
-------------修改yarn-site.xml----------------------------------------
yarn.resourcemanager.hostname
spark1
yarn.nodemanager.aux-services
mapreduce_shuffle
------------- 修改slaves文件-----------------------------------------
spark1
spark2
spark3
表示集群,想在哪里启动datanode
------------- 在另外两台机器上搭建hadoop-------------------------
1、使用如上配置在另外两台机器上搭建hadoop,可以使用scp命令将spark1上面的hadoop安装包和.bashrc配置文件都拷贝过去。[root@spark1 local]# scp -r hadoop root@spark3:/usr/local/
[root@spark1 local]# scp ~/.bashrc root@spark3:~/
2、要记得对.bashrc文件进行source,以让它生效。
3、记得在spark2和spark3的/usr/local目录下创建data目录。
------------- 启动hdfs集群-----------------------------------------
1、格式化namenode:在spark1上执行以下命令,hdfs namenode -format
2、启动hdfs集群:start-dfs.sh3、验证启动是否成功:jps、50070端口
spark1:namenode、datanode、secondarynamenode
spark2:datanode
spark3:datanode
------------- 启动yarn集群----------------------------------------
1、启动yarn集群:start-yarn.sh2、验证启动是否成功:jps、8088端口
spark1:resourcemanager、nodemanager
spark2:nodemanager
spark3:nodemanager
注意:
(访问HDFS的WebUI-->http://spark1:50070 访问Yarn的WebUI-->http://spark1:8088)
三、Hive工具搭建
------------- 安装hive包------------------------------------------------
1、将课程提供的apache-hive-0.13.1-bin.tar.gz使用WinSCP上传到spark1的/usr/local目录下。
2、解压缩hive安装包:tar -zxvf apache-hive-0.13.1-bin.tar.gz。
3、重命名hive目录:mv apache-hive-0.13.1-bin hive
4、配置hive相关的环境变量
vi .bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin
source .bashrc
------------- 安装mysql------------------------------------------------
1、在spark1上安装mysql。
2、使用yum安装mysql server。
yum install -y mysql-server
service mysqld start
chkconfig mysqld on
3、使用yum安装mysql connector
yum install -y mysql-connector-java
4、将mysql connector拷贝到hive的lib包中
cp /usr/share/java/mysql-connector-java-5.1.17.jar /usr/local/hive/lib
5、在mysql上创建hive元数据库,并对hive进行授权
create database if not exists hive_metadata;
grant all privileges on hive_metadata.* to '用户名'@'%' identified by '密码';
grant all privileges on hive_metadata.* to '用户名'@'localhost' identified by '密码';
grant all privileges on hive_metadata.* to '用户名'@'spark1' identified by '密码';
flush privileges;
use hive_metadata;
=========================
mysql -uroot -p 密码:123456
------------- 配置hive-site.xml--------------------------------------
配置文件都在hive中conf文件夹里。
mv hive-default.xml.template hive-site.xml
javax.jdo.option.ConnectionURL
jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
hive
hive.metastore.warehouse.dir
/user/hive/warehouse
-------------配置hive-env.sh和hive-config.sh--------------------------------------
mv hive-env.sh.template hive-env.sh
vi /usr/local/hive/bin/hive-config.sh
export JAVA_HOME=/usr/java/latest
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
-------------验证hive是否安装成功-----------------------------------------------------
直接输入hive命令,可以进入hive命令行
退出:quit;直接输入hive命令,可以进入hive命令行
退出:quit;