百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

mac 安装spark,hive,zookeeper,scala,kafka等大数据集群搭建

bigegpt 2024-09-11 00:51 3 浏览

=============================================================大数据相关资料============================================================

课程环境

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 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 61.139.2.69

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

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文件中(方便好用)

=============================================================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

<property>

<name>fs.default.name</name>

<value>hdfs://spark1:9000</value>

</property>

修改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>

修改mapred-site.xml

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

修改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>

修改slaves文件

spark1

spark2

spark3

启动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

============================================================= 安装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 '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.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和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命令行

============================================================= 安装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

配置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

cd zk

mkdir data

cd data

vi myid

0

1、在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可。

2、唯一的区别是spark2和spark3的标识号分别设置为1和2。

1、分别在三台机器上执行:zkServer.sh start。

2、检查ZooKeeper状态:zkServer.sh status。

============================================================= 安装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:依次增长的整数,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目录下面

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 &

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

============================================================= 安装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文件

spark1

spark2

spark3

安装spark集群

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

启动spark集群

1、在spark目录下的sbin目录

2、执行./start-all.sh

3、使用jsp和8080端口可以检查集群是否启动成功

4、进入spark-shell查看是否正常

相关推荐

Go语言泛型-泛型约束与实践(go1.7泛型)

来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...

golang总结(golang实战教程)

基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...

Go 官宣:新版 Protobuf API(go pro版本)

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

Golang开发的一些注意事项(一)(golang入门项目)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

golang 托盘菜单应用及打开系统默认浏览器

之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...

golang标准库每日一库之 io/ioutil

一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...

文件类型更改器——GoLang 中的 CLI 工具

我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...

Go (Golang) 中的 Channels 简介(golang channel长度和容量)

这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...

Golang引入泛型:Go将Interface「」替换为“Any”

现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...

一文带你看懂Golang最新特性(golang2.0特性)

作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...

Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移

以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...

Golang使用grpc详解(golang gcc)

gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...

Etcd服务注册与发现封装实现--golang

服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...

Golang:将日志以Json格式输出到Kafka

在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...

如何从 PHP 过渡到 Golang?(php转golang)

我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...