hadoop_hive_zookeeper_kafka_spark平台搭建
1. 搭建linux集群
一般在学习测试阶段最小的节点数是3个节点,因此在虚拟机中安装3个节点。我使用的虚拟机环境是VMware10,linux系统是64位 Centos 6.5 minimal版本。对于安装linux系统的过程就不在赘述了,网上有很多。安装好linux后,需要做好3件事:
- 修改主机名: 在/etc/sysconfig/network文件中修改
- 配置静态IP
- 配置主机名和IP地址的映射关系 /etc/hosts
- 关闭防火墙
![]()
- 关闭Selinux
安装好一个节点后,可以通过完全克隆的方式生成其他两个节点,在这里着重叙述下新克隆出的节点如何修改IP地址的方法。
1 编辑 /etc/udev/rules.d/70-persistent-net.rules 注释掉包含eth0的行,把包含“eth1”行的“eth1”修改成“eth0”
2 编辑 /etc/sysconfig/network-script/ifcfg-eth0 ,把其中的mac地址修改成虚拟机中的地址。
3 修改ip地址
最后设置3个节点之间的无密钥登录,即ssh无密钥登录
1. 在每台虚拟机中执行ssh-keygen -t rsa ,然后默认按Enter确认,最终在用户根目录.ssh目录中生成公钥和私钥
2. 利用ssh-copy-id -i 主机名,将公钥拷贝至包括本机在内的其他机器上。
2. 安装JDK,
我安装的版本dk1.8.0_111
3.搭建Hadoop平台
对于Hadoop平台的搭建,主要是配置四个文件,core-site.xml,hdfs-site.xml,yarn-site.xml和mapred-site.xml,其实在hadoop的包中分别包含了默认的一些配置信息分别是core-site.default.xml,其他三个文件类似。由于hadoop预编译是基于32位系统的,所以我自己编译了下。对于hadoop的配置,我主要配置了以下一些信息:
(1)core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://spark1:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/modules/hadoop-2.7.3/data/tmp</value> </property> <property> <name>hadoop.http.staticuser.user</name> <value>CYM</value> </property> </configuration>
(2)hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <!--config namenode and secondarynamenode address --> <property> <name>dfs.namenode.http-address</name> <value>spark1:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>spark1:50090</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/modules/hadoop-2.7.3/data/dfs/nn/fsimage</value> </property> <property> <name>dfs.namenode.edits.dir</name> <value> file:///opt/modules/hadoop-2.7.3/data/dfs/nn/edits </value> </property> <property> <name>dfs.datanode.data.dir</name> <value> file:///opt/modules/hadoop-2.7.3/data/dfs/dn </value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///opt/modules/hadoop-2.7.3/data/dfs/snn/fsimage</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///opt/modules/hadoop-2.7.3/data/dfs/snn/edits</value> </property> </configuration>
(3)yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>spark2</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>
(4)mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>spark1:10020</value> <description>MapReduce JobHistory Server IPC host:port</description> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>spark1:19888</value> <description>MapReduce JobHistory Server Web UI host:port</description> </property> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> </configuration>
4. 配置HIve
Hive环境不需要搭建集群,因为hive的数据仓库就是存储在hdfs中,因此只在spark1主机上搭建:
(1)下载hive包,解压后并配置环境变量
(2) 安装mysql,yum install mysql-server ,yum install mysql-connector.java,把生成lib文件拷贝至hive/lib下,开启mysql服务。最后在mysql上创建hive的元数据库,并对hive进行授权。
(3)配置hive的配置文件
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>
hive-env.sh
export JAVA_HOME=。。。
export HIVE_HOME=。。。
export HADOOP_HOME=。。。
(4)利用bin/schematool -initSchema -dbtype mysql进行格式化
5. 配置Zookeeper、Kafka
(1)首先解压zookeeper设置环境变量,在conf目录下把zoo_sample.cfg重命名为zoo.cfg。设置其中dataDIr目录,并添加
server.0=spark1:2888:3888
server.1=spark2:2888:3888
server.2=spark3:2888:3888
(2)在dataDir目录中 echo "0" >myid,其他节点上则依次是“1”,“2”。。。
Kafka配置:
(1)安装scala
(2)解压kafka设置环境变量,在配置文件server.properties中将broker.id根据机器依次设置为"0","1","2"...;并添加zookeeper.connect
spark1:2181,spark2:2181,spark3:2181
启动服务
kafka-server-start.sh kafka_2.11-0.9.0.1/config/server.properties
创建话题topic
kafka-topics.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
创建消息产生者
kafka-console-producer.sh --broker-list spark1:9092,spark2:9092,spark3:9092 --topic TestTopic
创建消息消费者
kafka-console-consumer.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --topic TestTopic --from-beginning
6.配置spark
我下载的是spark2.1.0源码包,进行了编译,因为网络的问题编译了很久。将编译成功的spark配置环境变量,修改配置文件
(1)spark-env.sh
SPARK_MASTER_HOST=spark2
export JAVA_HOME=/opt/modules/jdk1.8.0_111
export SCALA_HOME=/opt/modules/scala-2.11.6
export HADOOP_HOME=/opt/modules/hadoop-2.7.3
export SPARK_HOME=/opt/modules/spark-2.1.0
#export SPARK_CLASSPATH=$HIVE_HOME/lib:$SPARK_CLASSPATH
HADOOP_CONF_DIR=/opt/modules/hadoop-2.7.3/etc/hadoop
(2)slave
spark1
spark2
spark3
(3)启动spark: start-all.sh
至此环境搭建完成!

浙公网安备 33010602011771号