大数据集群本地安装方法
1、使用Vmware安装Linux系统
请自行下载,并安装。至少安装两台(这里以安装三台为例)
2、 安装xshell和xftp
安装xshell和xftp主要主要是方面后面传文件、写命令等操作。
(注意,xshell和xftp的版本一定要一致,不然安装xftp可能会有问题)
3、 配置虚拟机IP
A、 每台虚拟机都用root账号登录
a、 编辑hosts文件(使用以下命令)
sudo vi /etc/hosts
添加以下内容
192.168.79.131 master
192.168.79.132 slave1
192.168.79.133 slave2
B、修改主机名
分别修改三台主机/etc/hostname的内容为master、slave1、slave2
如果没有/etc/hostname目录文件,则自己新建一个。
注意主机名和hosts文件中设置的名称应当保持一致,否则会产生意外的错误
注意:1、安装大数据齐群,一定要把虚拟机的防火墙都关掉。
关闭防火墙:systemctl stop firewalld.service
禁用防火墙:systemctl disable firewalld.service
查看防火墙状态:firewall-cmd --state
重启机器: reboot
2、每次换了网络时看看虚拟机的ip地址是否发生变化,如果发生变化,记得修改相应的地方(最好设定固定ip,配置VMnet8)
3、配置集群直接免密码登录
https://www.cnblogs.com/zml-java/p/9448281.html
4、新建安装目录,最好每台机器建同一目录方便后面的操作
sudo mkdir -p /
data/install
5、安装JDK
1、下载好的tar包放在 /data/install/java 目录并解压:
tar
-xvfjdk-7u80-linux-x64.tar.gz
配置环境变量
首先进入编辑Linux配置环境变量的文件:
sudo vi /etc/profile
在里面添加如下内容:
export JAVA_HOME=/data/install/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib4、使环境变量立刻生效:
source /etc/profile
使用java -version校验
6、hadoop的安装和配置
注:这里只需要配置一台(master),配置好之后,把配置好的hadoop-
2.7.3文件夹考到另外几台机子即可,后面的Zookeeper、Hbase,spark也是一样的
首先到Apache官网(http://www.apache.org/dyn/closer.cgi/hadoop/common/)复制下载地址,然后进入 /data/install/apache 目录下面执行以下命令直接进行下载:
wget http://mirror
.bit.edu.cn/apache/hadoop/common/stable/hadoop-
2.7.3.tar.gz
下载完成后进行解压:
tar -xvf hadoop-
2.7.3.tar.gz
A、 配置Hadoop
进入hadoop的配置目录:
cd /
data/install/apache/hadoop-2.7.3/etc/hadoop/
需要修改的配置文件为:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves、hadoop-env.sh、yarn-env.sh
core-site.xml(master也可以写成ip地址。目录换成自己对应的目录)
<configuration>
<property>
<name>
fs.default.name
</name>
<value>
hdfs://master
:9000
</value>
</property>
<property>
<name>
hadoop.tmp.dir
</name>
<value>
file:/data/install/apache/hadoop-2.7.3/tmp
</value>
</property>
<property>
<name>
io.file.buffer.size
</name>
<value>
131702
</value>
</property>
</configuration>
hdfs-site.xml(先在/hadoop-2.7.3文件夹下创建hdfs文件夹,然后在hdfs文件夹下创建name和data文件夹
)
<configuration>
<property>
<name>
dfs.namenode.name.dir
</name>
<value>
file:/data/install/apache/hadoop-2.7.3/hdfs/name
</value>
</property>
<property>
<name>
dfs.datanode.data.dir
</name>
<value>
file:/data/install/apache/hadoop-2.7.3/hdfs/data
</value>
</property>
<property>
<name>
dfs.replication
</name>
<value>
1
</value>
</property>
<property>
<name>
dfs.namenode.secondary.http-address
</name>
<value>master
:9001
</value>
</property>
<property>
<name>
dfs.webhdfs.enabled
</name>
<value>
true
</value>
</property>
<property>
<name>
dfs.namenode.datanode.registration.ip-hostname-check
</name>
<value>
false
</value>
</property>
</configuration>
mapred-site.xml(好像没有这个文件)
通过mv etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml创建etc/hadoop/mapred-site.xml,内容改为如下:
<configuration>
<property>
<name>
mapreduce.framework.name
</name>
<value>
yarn
</value>
</property>
<property>
<name>
mapreduce.jobhistory.address
</name>
<value>master
:10020
</value>
</property>
<property>
<name>
mapreduce.jobhistory.webapp.address
</name>
<value>master
:19888
</value>
</property>
</configuration>
slaves文件(删除原来的localhost)
slave1
slave2
hadoop-env.sh和yarn-env.sh(一定要改成自己的java安装目录,原本是个变量)
export
JAVA_HOME=
/data/install/java/jdk1.
7.0_80
配置文件修改完以后,将master下hadoop文件夹复制到slave1和slave2中
scp -r /data/install/apache/hadoop-
2.7.
3root
@slaver:/data/install/apache/
scp -r /data/install/apache/hadoop-
2.7.
3root
@slave2:/data/install/apache/
C、运行hadoop
启动hadoop的命令都在master上执行
(1)初始化hadoop(清空hdfs数据):
rm-rf /
data/install/apache/hadoop-2.7.3/hdfs/*
rm-rf /
data/install/apache/hadoop-2.7.3/tmp/*
/
data/install/apache/hadoop-2.7.3/bin/hdfs namenode -format(只有第一次启动的时候执行。多次执行会有问题。后面hadoop启动之后,每次关掉就行,不用每次启动hadoop都去format)
启动hadoop(每台机器都要启动)
/
data/install/apache/hadoop-2.7.3/sbin/start-dfs.sh
(注:停止语句)
/
data/install/apache/hadoop-2.7.3/sbin/stop-dfs.sh
验证是否启动成功,在master输入 jps,应当存在namenode和secondary namenode
在slave1和slave2输入jps,应当存在datanode
进一步验证,访问:http:// 192.168.79.131:50070/dfshealth.html(192.168.79.131是master的ip),如图:
(3)启停yarn
/
data/install/apache/hadoop-2.7.3/sbin/start-yarn.sh
/
data/install/apache/hadoop-2.7.3/sbin/stop-yarn.sh
在master输入 jps,应当存在resourcemanager
在slave1和slave2输入jps,应当存在nodemanager
访问:http:// 192.168.79.131:8088/cluster
注意:如果安装不成功,或者出现各种问题。建议删除hadoop,然后重新解压配置master,然后将配置好的文件发送到slave1和slave2,这样比解决问题还快些
很多问题都是多次格式化namenode 或者 没有创建data和name文件造成的。
参考:https://blog.csdn.net/reblue520/article/details/70888850
https://www.linuxidc.com/Linux/2017-12/149906.htm
6、zookeeper集群的安装配置
1、下载
到http://apache.fayea.com/zookeeper/stable/下载安装包并解压:
wget http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.9.tar.gz
2、配置
(1)建立数据目录
mkdir /data/install/apache/zookeeper-3.4.9/data
(2)进入conf目录创建并修改zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
修改以后的内容为:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/install/apache/zookeeper-3.4.9/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888
这里还需要在数据目录/data/install/apache/zookeeper-3.4.9/data下面新建名为myid的文件,各个主机对应的内容是不同的,master的内容是0,slave1的内容是1,slave2的内容是2,分别对应server.x中的x
(3)设置环境变量:/etc/profile添加如下内容
export ZOOKEEPER_HOME=/data/install/apache/zookeeper-3.4.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
别忘了source一下让环境变量生效
source /etc/profile
3、启停zookeeper
在各个节点执行以下命令:
/data/install/apache/zookeeper-3.4.9/bin/zkServer.sh start
/data/install/apache/zookeeper-3.4.9/bin/zkServer.sh stop
输入jps检测一下:
查看各个主机的状态:
sh bin/zkServer.sh status
这里如果报错:
bin/zkServer.sh: 81: /data/install/apache/zookeeper-3.4.9/bin/zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")
看这篇文章的解决方法:http://blog.csdn.net/lcdcxy/article/details/50393363
10 hbase的安装和配置
1、下载
首先到http://apache.fayea.com/hbase/stable/下载稳定版安装包并解压:
wget http://apache.fayea.com/hbase/stable/hbase-1.2.4-bin.tar.gz
2、配置
主要修改conf目录下的三个文件:hbase-env.sh、hbase-site.xml、regionservers
hbase-env.sh
export JAVA_HOME=/data/install/java/jdk1.7.0_80
export HBASE_MANAGES_ZK=true
export HBASE_LOG_DIR=/data/install/apache/hbase-1.2.4/logs
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>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
</configuration>
regionservers
slave1
slave2
2016.11.25更新:还需要同步集群时间,否则有的从节点无法启动,在每个节点上运行ntp即可
ntpdate asia.pool.ntp.org
3、启停hbase
/data/install/apache/hbase-1.2.4/bin/start-hbase.sh
/data/install/apache/hbase-1.2.4/bin/stop-hbase.sh
master输入jps:
slave1和slave2输入jps:
访问:http://192.168.79.131:16010
4、hbase的一些基本命令
名称 |
命令表达式 |
创建表 |
create ‘表名称’, ‘列名称1’,’列名称2’,’列名称N’ |
添加记录 |
put ‘表名称’, ‘行名称’, ‘列名称:’, ‘值’ |
查看记录 |
get ‘表名称’, ‘行名称’ |
查看表中的记录总数 |
count ‘表名称’ |
删除记录 |
delete ‘表名’ ,’行名称’ , ‘列名称’ |
删除一张表 |
disable ‘表名称’ |
查看所有记录 |
scan “表名称” |
首先进入hbase shell
./bin/hbase shell
(1)创建表
create 'test1','address1'
(2)添加记录
put'test','row1','address:province','zhejiang'
put 'test','row2','address:city','hangzhou'
(3)查看记录
get 'test','row1'
(4)查看表中的记录总数
count 'test'
(5)删除记录
delete 'test','row1','address'
(6)删除一张表
disable 'test'
drop 'test'
(7)查看所有记录
scan 'test'
11 spark的安装和配置
1、下载
首先在http://spark.apache.org/downloads.html下载指定hadoop版本的安装包,然后解压缩
2、配置
创建并修改conf目录下的配置文件 spark-env.sh,slaves
spark-env.sh
cp spark-env.sh.template spark-env.sh
修改内容为:
export JAVA_HOME=/data/install/java/jdk1.7.0_80
export HADOOP_HOME=/data/install/apache/hadoop-2.7.3
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HBASE_HOME=/data/install/apache/hbase-1.2.4
#如果ssh端口非22
export SPARK_SSH_OPTS="-p 22022"
slaves
cp slaves.template slaves
修改内容为:
slave1
slave2
3、启停spark
/data/install/apache/spark-2.0.0-bin-hadoop2.7/sbin/start-all.sh
/data/install/apache/spark-2.0.0-bin-hadoop2.7/sbin/stop-all.sh
在master上输入jps:
在slave1和slave2上输入jps:
访问:http://192.168.79.131:8080/
问题解决:
在安装过程中也遇到了相当多的问题,下面对相关问题进行对应的解决。
1、启动hadoop的时候要确定master和slave上的的节点是不是启动了,master上面输入jps应出现namenode的字样,slave上应有datanode。如果启动不成功可尝试删除hdfs-site.xml 配置文件里面 dfs.data.dir 的值,找到路径对应的文件夹,把里面name和data下面的文件全部删除,再初始化hadoop环境就能成功启动hadoop。
2、启动zookeeper的时候注意要将机器的防火墙关闭,不然会导致集群机器之间无法连接,启动hbase的时候也会报错。
3、hbase启动的时候要注意网络是否正常,如果网络有波动,会导致集群机器的ip发生变化。从而导致莫名其妙地hbase就无法链接zookeeper导致出现问题。
4、在Windows下面链接hbase的时候按照官网的方法进行连接即可:http://hbase.apache.org/book.html#_examples。(注意Windows下要安装winutils.exe解决方法查看:http://bbs.csdn.net/topics/390951960?page=1)