搭建Centos集群和Spark集群

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:依次增长的整数,01234,集群中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
2cp spark-env.sh.template spark-env.sh
3vi 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查看是否正常

原文地址:https://www.cnblogs.com/leoli705/p/12733532.html