Centos7系统 Hadoop+HBase+Spark环境搭建
必须前提条件JDK环境
必须前提条件JDK环境
必须前提条件JDK环境
推荐通过yum源进行安装。好处就是自动搞定环境变量
具体百度搜索
下载Hadoop:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ (3.2.0)
下载HBase: https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/ (2.3.0)
下载spark: https://spark.apache.org/downloads.html (3.0.0)
更改主机名:
命令: vi /etc/hosts
192.168.0.117 自己的IP地址 master 名称可以自己随意取
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
开始正式配置我们的环境:
将下载好的三个包上传到服务器并使用 tar -xzvf 文件名带后缀 解压
1. 编辑Hadoop的配置文件
hadoop-env.sh 配置环境变量
#自己的jdk所在路径
export JAVA_HOME=/usr/local/jdk1.8.0_144
配置 core-site.xml 配置公共属性
<configuration>
<!-- master 前面配置的主机名称 --> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/data/tmp</value> </property> </configuration>
配置 hdfs-site.xml 配置HDFS
<configuration> <property> <!--指定SecondaryNameNode位置--> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
配置 yarn-site.xml 配置YARN
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
配置 mapred-site.xml 配置MapReduce
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
slaves 配置DataNode节点
vi slaves
master
开始配置HBase:
编辑hbase-env.sh文件
export JAVA_HOME=/usr/local/jdk1.8.0_144
编辑hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>hbase.master.maxclockskew</name> <value>180000</value> <description>Time difference of regionserver from master</description> </property> <property> <name>hbase.zookeeper.quorum</name> <value>192.168.0.124</value> </property>
<!-- 修改默认8080 端口--> <property> <name>hbase.rest.port</name> <value>8088</value> </property>
<!-- 修改2181 默认端口--> <property> <name>hbase.zookeeper.property.clientPort</name> <value>9095</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hbase/data</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>
编辑regionservers文件
vi /opt/hbase/conf/regionservers
master
配置Hadoop和HBase的环境变量
vi /etc/profile
#Hadoop Environment Setting
export HADOOP_HOME=/opt/hadoop
#HBase Environment Setting
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
ssh免密登录设置
[root@master ~]# ssh-keygen -t rsa
一路回车
你会看到 ~ 目录下多了一个.ssh文件
[root@master ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .oracle_jre_usage .ssh
.. .bash_history .bash_profile .cshrc .pki .tcshrc
[root@master .ssh]# ls
id_rsa id_rsa.pub
[root@master .ssh]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
免密设置的目的是为了启动hadoop每次不用输入密码,也就是跳过输密码步骤,免得麻烦
启动Hadoop(启动前先格式化)
hdfs namenode -format
启动后的信息是放在/home/hadoop/data/tmp路径文件中,如果之后集群出问题需要格式化,那么需要先删除这个文件路径中的内容
<property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/data/tmp</value> </property>
格式化后启动hadoop,配置了Hadoop的环境变量的,在全局都可以启动
start-dfs.sh
start-yarn.sh
或
start-all.sh (这个会和spark中的一样可以改名)
查看启动服务:
jps -l
启动完成后通过ip:50070 可以查看web 页面
启动hbase,配置了Hbase的环境变量的,在全局都可以启动
start-hbase.sh
启动成功访问 ip:16010 端口,HBase默认的Web UI端口
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
开始配置spark
修改spark-env.sh配置文件
# 把SPARK_HOME/conf/下的spark-env.sh.template文件复制为spark-env.sh
[root@master opt]# cd spark/conf/
[root@masterconf]# cp spark-env.sh.template spark-env.sh
# 修改spark-env.sh配置文件,添加如下内容
[root@master conf]# vim spark-env.sh
# 配置JAVA_HOME,一般来说,不配置也可以,但是可能会出现问题,还是配上吧
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
# 一般来说,spark任务有很大可能性需要去HDFS上读取文件,所以配置上
# 如果说你的spark就读取本地文件,也不需要yarn管理,不用配
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
# 设置Master的主机名
export SPARK_MASTER_HOST=master
# 提交Application的端口,默认就是这个,万一要改呢,改这里
export SPARK_MASTER_PORT=7077
# 每一个Worker最多可以使用的cpu core的个数,我虚拟机就一个...
# 真实服务器如果有32个,你可以设置为32个
export SPARK_WORKER_CORES=1
# 每一个Worker最多可以使用的内存,我的虚拟机就2g
# 真实服务器如果有128G,你可以设置为100G
export SPARK_WORKER_MEMORY=2g
#web UI端口默认8081
SPARK_MASTER_WEBUI_PORT=8090
修改slaves配置文件
[root@master conf]# cp slaves.template slaves
[root@master conf]# vim slaves
# 里面的内容原来为localhost,改为master
master
# 伪分布式就一台机器,用localhost也可以
# 但我们毕竟搭建的是伪分布式集群,注意,是集群
# 改成master 心里可能更相信它是一个分布式集群
配置SPARK_HOME环境变量
vim /etc/profile
export SPARK_HOME=/opt/spark-2.2.0
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
启动spark伪分布式集群
注意:
- 上一步配置了SPARK_HOME,所以在任意位置使用start-all.sh就可以启动spark集群
- 但是,如果你也配置了HADOOP_HOME,在HADOOP_HOME/sbin目录下,也有start-all.sh和stop-all.sh这两个命令
可以给spark 的start-all.sh 改名为start-spark-all.sh 然后全局
start-spark-all.sh
如果启动过程有问题或者启动之后一会服务挂了
请确认hadoop 、HBase、Spark 所需要的端口没有被占用
请确认hadoop 、HBase、Spark 所需要的端口没有被占用
请确认hadoop 、HBase、Spark 所需要的端口没有被占用
这里有个文章记录了一下几个坑点可以去看看是不是你偶到的 https://www.cnblogs.com/thousfeet/p/8618696.html