1、在虚拟机中安装CentOS
1. 安装好虚拟机后首先配置网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0
//先将ONBOOT改成yes DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=dhcp
service network restart //重启network
ifconfig
//如果用的是windows 可以用ipconfig查看系统的IP地址 网关等,根据网关,子网掩码等配置centos中的network
BOOTPROTO=static
IPADDR=192.168.0.X
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
service network restart
2.配置本机的hostname到ip地址的映射
vi /etc/hosts
//如192.168.1.109 spark1
3.关闭防火墙
service iptables stop service ip6tables stop chkconfig iptables off chkconfig ip6tables off vi /etc/selinux/config SELINUX=disabled
3.配置yum
yum clean all yum makecache yum install wget
4.安装java
1、将jdk-7u60-linux-i586.rpm通过WinSCP上传到虚拟机中 2、安装JDK:rpm -ivh jdk-7u65-linux-i586.rpm 3、配置jdk相关的环境变量 vi .bashrc export JAVA_HOME=/usr/java/latest export PATH=$PATH:$JAVA_HOME/bin source .bashrc 4、测试jdk安装是否成功:java -version
5.在3个虚拟机中安装CentOS集群
比如说,在spark1的hosts里面
192.168.1.109 spark1
192.168.1.102 spark2
192.168.1.104 spark3
6. 配置4台CentOS为ssh免密码互相通信
(1)首先在三台机器上配置对本机的ssh免密码登录
ssh-keygen -t rsa
生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下
cd /root/.ssh cp id_rsa.pub authorized_keys
将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
(2)接着配置三台机器互相之间的ssh免密码登录
使用ssh-copy-id -i hostname命令将本机的公钥拷贝到指定机器的authorized_keys文件中
scp authorized_keys spark2:/root/.ssh
2.搭建Hadoop集群
1.配置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
2.修改core-site.xml
<property> <name>fs.default.name</name> <value>hdfs://spark1:9000</value> </property>
3.修改hdfs-site.xml
<property> <name>dfs.name.dir</name> <value>/usr/local/data/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/data/datanode</value> </property> <property> <name>dfs.tmp.dir</name> <value>/usr/local/data/tmp</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property>
4.修改mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
5.修改yarn-site.xml
<property> <name>yarn.resourcemanager.hostname</name> <value>spark1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
6.修改slaves文件
spark1
spark2
spark3
7.在另外两台机器上搭建hadoop
1、使用如上配置在另外两台机器上搭建hadoop,可以使用scp命令将spark1上面的hadoop安装包和.bashrc配置文件都拷贝过去。
scp -r /usr/local/hadoop root@spark1:/usr/local/
scp ~/.bashrc root@spark1:~/.
2、要记得对.bashrc文件进行source,以让它生效。
source ~/.bashrc
3、记得在spark2和spark3的/usr/local目录下创建data目录。
mkdir data
8.启动hdfs集群
1、格式化namenode:在spark1上执行以下命令,hdfs namenode -format 2、启动hdfs集群:start-dfs.sh 3、验证启动是否成功:jps、50070端口 spark1:namenode、datanode、secondarynamenode spark2:datanode spark3:datanode
9.启动yarn集群
1、启动yarn集群:start-yarn.sh
2、验证启动是否成功:jps、8088端口 spark1:resourcemanager、nodemanager spark2:nodemanager spark3:nodemanager
3.安装Hive
1.安装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
2.安装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 'hive'@'%' identified by 'hive'; grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive'; grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive'; flush privileges; use hive_metadata;
3.配置hive-site.xml
mv hive-default.xml.template hive-site.xml vi hive-site.xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property>
4.配置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
5.验证hive是否安装成功
1. 直接输入hive命令,可以进入hive命令行
4.搭建Zookeeper集群
1.安装ZooKeeper包
1、将课程提供的zookeeper-3.4.5.tar.gz使用WinSCP拷贝到spark1的/usr/local目录下。 2、对zookeeper-3.4.5.tar.gz进行解压缩:tar -zxvf zookeeper-3.4.5.tar.gz。 3、对zookeeper目录进行重命名:mv zookeeper-3.4.5 zk。 4、配置zookeeper相关的环境变量 vi .bashrc export ZOOKEEPER_HOME=/usr/local/zk export PATH=$ZOOKEEPER_HOME/bin source .bashrc
2. 配置zoo.cfg
cd zk/conf mv zoo_sample.cfg zoo.cfg vi zoo.cfg 修改:dataDir=/usr/local/zk/data 新增: server.0=spark1:2888:3888 server.1=spark2:2888:3888 server.2=spark3:2888:3888
3.设置zk节点标识
cd zk mkdir data cd data vi myid 0
4.搭建zk集群
1、在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可。
2、唯一的区别是spark2和spark3的标识号分别设置为1和2。
5.启动ZooKeeper集群
1、分别在三台机器上执行:zkServer.sh start。 2、检查ZooKeeper状态:zkServer.sh status。
5.搭建Kafka
1.安装scala 2.11.4
1、将scala-2.11.4.tgz使用WinSCP拷贝到spark1的/usr/local目录下。 2、对scala-2.11.4.tgz进行解压缩:tar -zxvf scala-2.11.4.tgz。 3、对scala目录进行重命名:mv scala-2.11.4 scala 4、配置scala相关的环境变量 vi .bashrc export SCALA_HOME=/usr/local/scala export PATH=$SCALA_HOME/bin source .bashrc 5、查看scala是否安装成功:scala -version 6、按照上述步骤在spark2和spark3机器上都安装好scala。使用scp将scala和.bashrc拷贝到spark2和spark3上即可。
2.安装Kafka包
1、将课程提供的kafka_2.9.2-0.8.1.tgz使用WinSCP拷贝到spark1的/usr/local目录下。 2、对kafka_2.9.2-0.8.1.tgz进行解压缩:tar -zxvf kafka_2.9.2-0.8.1.tgz。 3、对kafka目录进行改名:mv kafka_2.9.2-0.8.1 kafka 4、配置kafka vi /usr/local/kafka/config/server.properties broker.id:依次增长的整数,0、1、2、3、4,集群中Broker的唯一id zookeeper.connect=192.168.1.107:2181,192.168.1.108:2181,192.168.1.109:2181 5、安装slf4j 将课程提供的slf4j-1.7.6.zip上传到/usr/local目录下 unzip slf4j-1.7.6.zip 把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面
3.搭建kafka集群
1、按照上述步骤在spark2和spark3分别安装kafka。用scp把kafka拷贝到spark2和spark3行即可。
2、唯一区别的,就是server.properties中的broker.id,要设置为1和2
4.启动kafka集群
1、在三台机器上分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties & 2、解决kafka Unrecognized VM option 'UseCompressedOops'问题 vi bin/kafka-run-class.sh if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true" fi 去掉-XX:+UseCompressedOops即可 3、使用jps检查启动是否成功
5.测试Kafka集群
使用基本命令检查kafka是否搭建成功 bin/kafka-topics.sh --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --topic Test --replication-factor 1 --partitions 1 --create bin/kafka-console-producer.sh --broker-list hadoop01:9092,hadoop02:9092,hadoop03:9092 --topic Test bin/kafka-console-consumer.sh --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --topic Test --from-beginning
6.搭建spark集群
1.安装spark包
1、将spark-1.3.0-bin-hadoop2.4.tgz使用WinSCP上传到/usr/local目录下。 2、解压缩spark包:tar zxvf spark-1.3.0-bin-hadoop2.4.tgz。 3、更改spark目录名:mv spark-1.3.0-bin-hadoop2.4 spark 4、设置spark环境变量 vi .bashrc export SPARK_HOME=/usr/local/spark export PATH=$SPARK_HOME/bin export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib source .bashrc
2.修改spark-env.sh文件
1、cd /usr/local/spark/conf 2、cp spark-env.sh.template spark-env.sh 3、vi spark-env.sh export JAVA_HOME=/usr/java/latest export SCALA_HOME=/usr/local/scala export SPARK_MASTER_IP=192.168.1.107 export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
3.修改slaves文件
spark1
spark2
spark3
4.安装spark集群
在另外两个节点进行一模一样的配置,使用scp将spark和.bashrc拷贝到spark2和spark3即可。
5.启动spark集群
1、在spark目录下的sbin目录 2、执行./start-all.sh 3、使用jsp和8080端口可以检查集群是否启动成功 4、进入spark-shell查看是否正常