大数据,hadoop,spark,hive,ZooKeeper,kafka,flume等组件环境搭建

大数据环境搭建

1、Virtual Box 4.1
2、CentOS 6.5
3、JDK 1.7
4、SecureCRT(自己下载)
5、WinSCP(自己下载)
6、Hadoop 2.4.1
7、Hive 0.13
8、ZooKeeper 3.4.5
9、kafka_2.9.2-0.8.1
10、Spark 1.3.0
11、Spark 1.5
12、flume-ng-1.5.0-cdh5.3.6

Virtual Box 4.1安装
1、使用Virtual Box安装包,一步一步安装即可。
Oracle_VM_VirtualBox_Extension_Pack-4.1.40-101594.vbox-extpack。
2、之所以选用Virtual Box是因为它比VMWare更加稳定。使用VMWare运行hadoop集群或者spark集群时,有时会出现休眠后重启时,某些进程莫名挂掉的问题。而Virtual Box没有这种情况。
3、之所以选择Virtual Box 4.1版本,是因为更高的版本就不兼容win7了。
CentOS 6.5安装
1、使用CentOS 6.5镜像即可,CentOS-6.5-i386-minimal.iso。
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就可以了。

CentOS 6.5网络配置
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 spark1
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 61.139.2.69
ping www.baidu.com

安装之前先安装rz软件,提供上传和下载文件
linux yum rz 软件安装
yum install lrzsz -y
自动下载的包如下:
Downloading Packages:
lrzsz-0.12.20-27.1.el6.x86_64.rpm

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
3、配置jdk相关的环境变量

vi ~/.bashrc  或者 vi /etc/profile
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
source .bashrc   或者  source /etc/profile

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文件中(方便好用)
大数据,hadoop,spark,hive,ZooKeeper,kafka,flume等组件环境搭建_第1张图片

Hadoop 2.4.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  或者 vi/etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source .bashrc

修改hadoop相关的配置文件
进入/usr/local/hadoop/etc/hadoop 目录下
修改core-site.xml

<property>
  <name>fs.default.namename>
  <value>hdfs://spark1:9000value>  //设置hdfs集群对外提供的目录
property>

修改hdfs-site.xml //设置hdfs的一些目录,放在/usr/local/data的目录下面


<property>
  <name>dfs.name.dirname>
  <value>/usr/local/data/namenodevalue>
property>
<property>
  <name>dfs.data.dirname>
  <value>/usr/local/data/datanodevalue>
property>
<property>
  <name>dfs.tmp.dirname>
  <value>/usr/local/data/tmpvalue>
property>
<property>
  <name>dfs.replicationname>  
  <value>3value>  //设置副本数
property>

修改mapred-site.xml //mapreduce的框架设置为yarn

<property>
  <name>mapreduce.framework.namename>
  <value>yarnvalue>
property>

修改yarn-site.xml

<property>
  <name>yarn.resourcemanager.hostnamename>
  <value>spark1value>
property>
<property>
  <name>yarn.nodemanager.aux-servicesname>
  <value>mapreduce_shufflevalue>
property>

修改slaves文件

spark1
spark2
spark3

在另外两台机器上搭建hadoop

1、使用如上配置在另外两台机器上搭建hadoop,可以使用scp命令将spark1上面的hadoop安装包和.bashrc或者/etc/profile 配置文件都拷贝过去。
scp -r hadoop root@spark1:/usr/local/    
scp -r hadoop root@spark2:/usr/local/  

scp -r /etc/profile root@spark1:/etc/
scp -r /etc/profile root@spark2:/etc/
2、要记得对.bashrc文件或者/etc/profile进行source,以让它生效。
3、记得在spark2和spark3的/usr/local目录下创建data目录。

启动hdfs集群

1、格式化namenode:在spark1上执行以下命令,
hdfs namenode -format
2、启动hdfs集群:start-dfs.sh
3、验证启动是否成功:jps、50070端口查看是否启动成功
spark1:namenode、datanode、secondarynamenode
spark2:datanode
spark3:datanode

启动yarn集群

1、启动yarn集群:start-yarn.sh
2、验证启动是否成功:jps、8088端口
spark1:resourcemanager、nodemanager
spark2:nodemanager
spark3:nodemanager

Hive 0.13搭建
安装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相关的环境变量,下面以.bashrc文件操作

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 '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;

配置hive-site.xml

mv hive-default.xml.template hive-site.xml
vi hive-site.xml
<property>
  <name>javax.jdo.option.ConnectionURLname>
  <value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=truevalue>
property>
<property>
  <name>javax.jdo.option.ConnectionDriverNamename>
  <value>com.mysql.jdbc.Drivervalue>
property>
<property>
  <name>javax.jdo.option.ConnectionUserNamename>
  <value>hivevalue>
property>
<property>
  <name>javax.jdo.option.ConnectionPasswordname>
  <value>hivevalue>
property>
<property>
  <name>hive.metastore.warehouse.dirname>
  <value>/user/hive/warehousevalue>
property>

配置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命令行

ZooKeeper 3.4.5集群搭建
安装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   或者  vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$ZOOKEEPER_HOME/bin
source .bashrc
配置zoo.cfg  在/usr/local/zk/conf目录下
vi zoo.cfg
修改:dataDir=/usr/local/zk/data
新增:
server.0=spark1:2888:3888   
server.1=spark2:2888:3888
server.2=spark3:2888:3888

设置zk节点标识

cd zk
mkdir data
cd data

vi myid
0

搭建zk集群
1、在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可。
scp -r zk root@slave1:/usr/local/

2、唯一的区别是spark2和spark3的标识号分别设置为1和2。及myid 中的值修改为1 和2

启动ZooKeeper集群

1、分别在三台机器上执行:zkServer.sh start。
2、检查ZooKeeper状态:zkServer.sh status。

kafka_2.9.2-0.8.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上即可。

安装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目录下面

搭建kafka集群
1、按照上述步骤在spark2和spark3分别安装kafka。用scp把kafka拷贝到spark2和spark3行即可。

2、唯一区别的,就是server.properties中的broker.id,要设置为1和2

启动kafka集群
1、在三台机器上分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties & (必须在kafka的主目录下执行 cd /kafka)

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检查启动是否成功

测试kafka集群
使用基本命令检查kafka是否搭建成功

bin/kafka-topics.sh --zookeeper 192.168.0.110:2181,192.168.0.111:2181,192.168.0.112:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create


在spark1 上执行
bin/kafka-console-producer.sh --broker-list 192.168.1.107:9092,192.168.1.108:9092,192.168.1.109:9092 --topic TestTopic


在spark2 上执行
bin/kafka-console-consumer.sh --zookeeper 192.168.1.107:2181,192.168.1.108:2181,192.168.1.109:2181 --topic TestTopic --from-beginning

Spark 1.3.0集群搭建
安装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
修改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

修改slaves文件
spark2
spark3

安装spark集群
在另外两个节点进行一模一样的配置,使用scp将spark和.bashrc拷贝到spark2和spark3即可。

启动spark集群
1、在spark目录下的sbin目录
2、执行 ./start-all.sh
3、使用jsp和8080端口可以检查集群是否启动成功
4、进入spark-shell查看是否正常

Spark1.3.0升级1.5
安装spark包
1、停止Spark 1.3.0集群:SPARK_HOME/sbin/stop-all.sh
2、将spark-1.5.1-bin-hadoop2.4.tgz使用WinSCP上传到/usr/local目录下。
3、解压缩spark包:tar zxvf spark-1.5.1-bin-hadoop2.4.tgz。
4、修改spark环境变量

vi .bashrc
export SPARK_HOME=/usr/local/spark-1.5.1-bin-hadoop2.4
export PATH=$SPARK_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
source .bashrc

修改spark-env.sh文件
1cd /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

修改slaves文件
spark2
spark3

安装spark集群
在另外两个节点进行一模一样的配置,使用scp将spark和.bashrc拷贝到spark2和spark3即可。
scp -r spark-1.5.1-bin-hadoop2.4 root@spark1:/usr/local/

启动spark集群
1、在spark目录下的sbin目录
2、执行./start-all.sh
3、使用jsp和8080端口可以检查集群是否启动成功
4、进入spark-shell查看是否正常

hadoop fs -put spark.txt /
val lines = sc.textFile("hdfs://spark1:9000/spark.txt")
val words = lines.flatMap(line => line.split(" "))
val pairs = words.map(word => (word, 1))
val counts = pairs.reduceByKey(_ + _)
counts.foreach(count => println(count._1 +":"+ count._2))  

flume-ng-1.5.0-cdh5.3.6安装
安装flume
1、将flume-ng-1.5.0-cdh5.3.6.tar.gz使用WinSCP拷贝到sparkproject1的/usr/local目录下。
2、对flume进行解压缩:tar -zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz
3、对flume目录进行重命名:mv apache-flume-1.5.0-cdh5.3.6-bin flume
4、配置scala相关的环境变量

vi ~/.bashrc
export FLUME_HOME=/usr/local/flume
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$FLUME_HOME/bin
source ~/.bashrc

修改flume配置文件
vi /usr/local/flume/conf/flume-conf.properties

agent1表示代理名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1

配置source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/usr/local/logs
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader = false
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
配置channel1
agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointDir=/usr/local/logs_tmp_cp
agent1.channels.channel1.dataDirs=/usr/local/logs_tmp

配置sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://sparkproject1:9000/logs
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=1
agent1.sinks.sink1.channel=channel1
agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d

创建需要的文件夹
本地文件夹:mkdir /usr/local/logs
HDFS文件夹:hdfs dfs -mkdir /logs

启动flume-agent

flume-ng agent -n agent1 -c conf -f /usr/local/flume/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console

测试flume
新建一份文件,移动到/usr/local/logs目录下,flume就会自动上传到HDFS的/logs目录中

你可能感兴趣的:(大数据kafaka,大数据spark,hadoop,flume,hive)