Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。
centos_7系统安装Python3
当前系统自带默认安装的python版本为2.7.5,现在我们准备升级到python3.x版本。
Linux下编译安装python3.6.5
1)安装编译环境开发工具yum -y groupinstall "Development tools"
2)安装一些编译运行需要的库文件
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
3)下载python-3.6.5 ,解压python-3.6.5.tgz
4)配置安装路径为
5) 编译
make && make install
6)建立软连接和测试
hadoop安装
1: 本地/独立模式
下载Hadoop在系统中,默认情况下之后,它会被配置在一个独立的模式,用于运行java程序。
2:模拟分布式模式
这是在单台机器的分布式模拟。Hadoop守护每个进程,如hdfs,yarn,MapReduce等,都将作为一个独立的java程序运行。这种模式对开发非常有用。
3:完全分布式模式
这种模式是完全分布式的最小两台或多台计算机的集群。
这里我们主要模拟分布式模式安装Hadoop
1,下载Hadoop安装包
wget http://mirror.bit.edu.cn/apache/hadoop/common/stable2/hadoop-2.9.1.tar.gz
这里我们下载执行包不包含源码。
解压tar.gz文件包
tar -zxvf hadoop-2.9.1.tar.gz
重命名hadoop-2.9.1为hadoop
sudo mv hadoop-2.9.1 /usr/local/hadoop
2,设置Hadoop
export HADOOP_HOME=/usr/local/hadoop
3,配置Hadoop
1)文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。
2)文件 core-site.xml 改为下面的配置:core-site.xml文件中包含如读/写缓冲器用于Hadoop的实例的端口号的信息,分配给文件系统存储,用于存储所述数据存储器的限制和大小。
3)文件 hdfs-site.xml,dfs.replication 一般设为 3,但我们只有一个 Slave 节点,所以 dfs.replication 的值还是设为 1。
5, 文件 yarn-site.xml:
4,验证Hadoop安装
下面的步骤用来验证Hadoop安装。
1)格式化HDFS
首次启动需要先在 Master 节点执行 NameNode 的格式化:
$ hdfs namenode -format
2)验证Hadoop的DFS
下面的命令用来启动DFS。执行这个命令将启动Hadoop文件系统。
$ start-dfs.sh
3)验证Yarn 脚本
下面的命令用来启动yarn脚本。执行此命令将启动yarn守护进程。
$ start-yarn.sh
4)停止/关闭 Hadoop
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-yarn.sh
Spark安装
注:安装spark前,需要安装scala
1.下载spark安装包
wget http://mirror.bit.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
解压安装包
tar -zxvf spark-2.3.1-bin-hadoop2.7.tgz
重命名文件夹
mv spark-2.3.1-bin-hadoop2.7 spark
2,配置环境变量
3.配置Spark环境
此处需要配置的文件为两个spark-env.sh和slaves。
配置文件目录在安装目录下的conf下,然后从默认模板中拷贝出要编辑的配置文件:
cp conf/spark-env.sh.template conf/spark-env.sh
cp conf/slaves.template conf/slaves
1) 执行 vim conf/slaves 配置运行Worker任务的节点,和hadoop的slaves配置类似,单机环境中默认或者改为本地主机名。
2)执行 vim conf/spark-env.sh 编辑spark启动加载脚本,在最后添加如下配置:
变量说明
- JAVA_HOME:Java安装目录
- SCALA_HOME:Scala安装目录
- HADOOP_HOME:hadoop安装目录
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录
- SPARK_MASTER_IP:spark集群的Master节点的ip地址
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
4.启动spark
[遇到的问题]:
1:hadoop伪分布式下 无法启动datanode
解决方法:
把/tmp下的Hadoop开关的临时文件删除。
把/hadoop.tmp.dir目录清空。
注:在每次执行hadoop namenode -format时,都会为NameNode生成namespaceID,,但是在hadoop.tmp.dir目录下的DataNode还是保留上次的namespaceID,因为namespaceID的不一致,而导致DataNode无法启动,所以只要在每次执行hadoop namenode -format之前,先删除hadoop.tmp.dir(路径为 /usr/local/hadoop/下的)tmp目录就可以启动成功,或者删除/usr/local/hadoop/tmp/dfs下的data目录,然后重新启动dfs(在hadoop安装路径 /usr/local/hadoop/ 下,运行命令./sbin/start-dfs.sh)即可。
2:启动spark-shell是遇到的问题
分布式计算集群
分布式计算集群致力于提供单个计算机 所不能提供的强大计算分析能力,包括数值计算和数据处理,并倾向于追求综合性能。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。
目前流行的开源分布式计算平台Hadoop,Spark就是这样的一个分布式 计算集群平台。通过这个平台,用户可以轻松地开发和处理海量数据。在这平台上,分布式任务是并行运行的,因此处理速度非常快。同时,数据在存储上维护了多个副本,确保能够针对失败的节点重新进行分布处理。例如,Hadoop的分布式架构,可将大数据直接存储到HDFS这个分布式文件系统上,而Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务发送到多个节点上,之后再以单个数据集的形式加载到数据仓库里。
领取专属 10元无门槛券
私享最新 技术干货