当前位置:   article > 正文

Mac上在vm虚拟机上搭建Hadoop集群并安装zookeeper hive hbase(下篇)_mac系统 安装hadoop、hive集群

mac系统 安装hadoop、hive集群

zookeeper

官网地址
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上传一下包
在这里插入图片描述
解压

tar -zxvf zookeeper-3.4.9.tar.gz -C ../servers/
  • 1

在这里插入图片描述

修改配置文件

 cd zookeeper-3.4.9/conf/
 cp zoo_sample.cfg zoo.cfg
  • 1
  • 2

在这里插入图片描述

vim zoo.cfg
  • 1

在这里插入图片描述

添加myid配置

mkdir /export/servers/zookeeper-3.4.9/zkdatas
  • 1

在这里插入图片描述

echo 1 > myid
  • 1

在这里插入图片描述

安装包分发并修改myid的值

scp -r /export/servers/zookeeper-3.4.9/ node2:/export/servers/
scp -r /export/servers/zookeeper-3.4.9/ node3:/export/servers/
  • 1
  • 2

检查一下在这里插入图片描述
把另外两台的myid改成2和3
在这里插入图片描述

启动服务

三台机子都要修改

cd /export/servers/zookeeper-3.4.9/conf

#这行粘贴过去,路径替换  /export/servers/zookeeper-3.4.9/zkdatas
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述

## 三台都要操作
cd /export/servers/zookeeper-3.4.9/
bin/zkServer.sh start
  • 1
  • 2
  • 3

在这里插入图片描述
启动成功!

查看状态

bin/zkServer.sh status
  • 1

在这里插入图片描述

总算成功了!!!

启动客户端

启动一个就行了

bin/zkCli.sh -server node1:2181
##或者
bin/zkCli.sh 
  • 1
  • 2
  • 3

在这里插入图片描述

hadoop

集群规划

服务器IP192.168.202.201192.168.202.202192.168.202.203
主机名node1node2node3
NameNode
SecondaryNameNode
dataNode
ResourceManager
NodeManager

官网链接
这里没用官网的,因为官方给的没有提供带C程序访问的接口,所以我们在使用本地库(本地库可以用来压缩,一级支持C程序等等)的时候会出现问题,需要重新编译。
编译后的包

第一步:上传apache hadoop包并解压

解压命令

cd /export/softwares
tar -zxvf hadoop-2.7.5.tar.gz -C ../servers/
  • 1
  • 2
bin/hadoop checknative
# 检查一下支持的本地库
  • 1
  • 2

官方给的是不支持这个snappy的在这里插入图片描述

第二步:修改配置文件

这里直接用vim很不方便,win的话就用notepad++,Mac的话就用ultraEdit
在这里插入图片描述

在这里插入图片描述

修改core-site.xml

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim  core-site.xml
  • 1
  • 2
<configuration>

	<!--指定集群的文件系统类型:分布式文件系统-->
	<property>
		<name>fs.default.name</name>
		<value>hdfs://node1:8020</value>
	</property>
    
  <!--指定临时文件存储目录-->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/export/servers/hadoop-2.7.5/hadoopDatas/tempDatas</value>

	</property>

	<!--  缓冲区大小,实际工作中根据服务器性能动态调整 -->
	<property>
		<name>io.file.buffer.size</name>
		<value>4096</value>
	</property>

	<!--  开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
	<property>
		<name>fs.trash.interval</name>
		<value>10080</value>
	</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
修改hdfs-site.xml

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim hdfs-site.xml
  • 1
  • 2
<configuration>
	 <property>
			<name>dfs.namenode.secondary.http-address</name>
			<value>node1:50090</value>
	</property>

	<!-- 指定namenode的访问地址和端口 -->
	<property>
		<name>dfs.namenode.http-address</name>
		<value>node1:50070</value>
	</property>
	
	<!-- 指定namenode的元数据的存放位置 -->
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value>
	</property>
	<!--  定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割  -->

	<!-- 指定namenode的日志文件的存放目录 -->
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value>
	</property>	
    
	<property>
		<name>dfs.namenode.edits.dir</name>
		<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits</value>
	</property>

	<property>
		<name>dfs.namenode.checkpoint.dir</name>
		<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name</value>
	</property>
    
	<property>
		<name>dfs.namenode.checkpoint.edits.dir</name>
		<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value>
	</property>

	<!-- 文件切片的副本个数 -->
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>

	<!--设置HDFS的文件权限-->
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>

		<!--一个文件切片的大小 -->
    <property>
		<name>dfs.blocksize</name>
		<value>134217728</value>
	</property>

</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
修改hadoop-env.sh

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim  hadoop-env.sh
  • 1
  • 2
export JAVA_HOME=/export/servers/jdk1.8.0_141
  • 1
修改mapred-site.xml

发现没有这个文件,只有一个后缀加了.template的文件,复制一份重命名一下就可以了
第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim  mapred-site.xml
  • 1
  • 2
<configuration>
     <!-- 开启MapReduce小任务模式  -->
    <property>
     <name>mapreduce.job.ubertask.enable</name>
     <value>true</value>
    </property>

    <!-- 设置历史任务的主机和端口 -->
    <property>
     <name>mapreduce.jobhistory.address</name>
     <value>node1:10020</value>
    </property>
 
    <!--设置网页访问历史任务的主机和端口 -->
    <property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>node1:19888</value>
    </property>

</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
修改yarn-site.xml

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim  yarn-site.xml
  • 1
  • 2
<configuration>
	<!-- 配置yarn主节点的位置 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>node1</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	
	<!-- 开启日志聚合功能 -->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!-- 设置聚合日志在HDFS上的保存时间,单位秒 -->
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</value>
	</property>
	
	
	<!-- yarn集群的内存分配方案 -->
	<property>    
		<name>yarn.nodemanager.resource.memory-mb</name>    
		<value>20480</value>
	</property>
	<property>  
        	 <name>yarn.scheduler.minimum-allocation-mb</name>
         	<value>2048</value>
	</property>
	<property>
		<name>yarn.nodemanager.vmem-pmem-ratio</name>
		<value>2.1</value>
	</property>

</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
修改mapred-env.sh

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim  mapred-env.sh
  • 1
  • 2
export JAVA_HOME=/export/servers/jdk1.8.0_141
  • 1
修改slaves

修改slaves文件,然后将安装包发送到其他机器,重新启动集群即可

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/etc/hadoop
vim slaves
  • 1
  • 2
node1
node2
node3
  • 1
  • 2
  • 3

第一台机器执行以下命令

mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/nn/edits
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/snn/name
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

安装包的分发

第一台机器执行以下命令

cd  /export/servers/
scp -r hadoop-2.7.5 node2:$PWD
scp -r hadoop-2.7.5 node3:$PWD
  • 1
  • 2
  • 3

第三步:配置hadoop的环境变量

三台机器都要进行配置hadoop的环境变量

三台机器执行以下命令

vim  /etc/profile
  • 1
export HADOOP_HOME=/export/servers/hadoop-2.7.5
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
  • 1
  • 2

配置完成之后生效

source /etc/profile
  • 1

第四步:启动集群

要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。
注意: 首次启动 HDFS 时,必须对其进行格式化操作。 本质上是一些清理和
准备工作,因为此时的 HDFS 在物理上还是不存在的。

hdfs namenode -format 或者 hadoop namenode –format

准备启动

第一台机器执行以下命令

cd  /export/servers/hadoop-2.7.5/
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

三个端口查看界面

查看hdfs:node:50070

在这里插入图片描述

查看yarn集群node1:8088
在这里插入图片描述

查看历史完成的任务node1:19888
在这里插入图片描述

Hive 的安装

这里我们选用hive的版本是2.1.1
下载地址为:
官网
在这里插入图片描述

下载之后,将我们的安装包上传到第三台机器的/export/softwares目录下面去

第一步:上传并解压安装包

将我们的hive的安装包上传到第三台服务器的/export/softwares路径下,然后进行解压

cd /export/softwares/
tar -zxvf apache-hive-2.1.1-bin.tar.gz -C ../servers/
  • 1
  • 2

第二步:安装mysql(之前已经装过)

在这里插入图片描述

第三步:修改hive的配置文件

修改hive-env.sh(把模版文件拷贝一份)

cd /export/servers/apache-hive-2.1.1-bin/conf
cp hive-env.sh.template hive-env.sh
  • 1
  • 2
HADOOP_HOME=/export/servers/hadoop-2.7.5
export HIVE_CONF_DIR=/export/servers/apache-hive-2.1.1-bin/conf
  • 1
  • 2

修改hive-site.xml(没有就新建)

cd /export/servers/apache-hive-2.1.1-bin/conf
vim hive-site.xml
  • 1
  • 2
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!--mysql用户名-->
  <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
  </property>
  <!--mysql密码-->
  <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>0102</value>
  </property>
  
  <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://node3:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
  </property>
  <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
  </property>
  <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
  </property>
  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
 </property>
 <property>
		<name>hive.server2.thrift.bind.host</name>
		<value>node3</value>
   </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

第四步:添加mysql的连接驱动包到hive的lib目录下

hive使用mysql作为元数据存储,必然需要连接mysql数据库,所以我们添加一个mysql的连接驱动包到hive的安装目录下,然后就可以准备启动hive了
maven库
在这里插入图片描述

将我们准备好的mysql-connector-java-5.1.38.jar 这个jar包直接上传到
/export/servers/apache-hive-2.1.1-bin/lib 这个目录下即可

至此,hive的安装部署已经完成,接下来我们来看下hive的三种交互方式

第五步:配置hive的环境变量

node3服务器执行以下命令配置hive的环境变量

sudo vim /etc/profile
  • 1
export HIVE_HOME=/export/servers/apache-hive-2.1.1-bin
export PATH=:$HIVE_HOME/bin:$PATH
  • 1
  • 2
source /etc/profile
  • 1

测试一下

cd /export/servers/apache-hive-2.1.1-bin/
bin/hive
  • 1
  • 2

在这里插入图片描述

创建一个数据库

create database if not exists mytest;
  • 1

在这里插入图片描述
在这里插入图片描述

hbase

官网地址
在这里插入图片描述
在这里插入图片描述

上传解压HBase安装包

tar -xvzf hbase-2.1.0-bin.tar.gz -C ../servers/
  • 1

修改HBase配置文件

hbase-env.sh

cd /export/server/hbase-2.1.0/conf
vim hbase-env.sh

##  显示行 在vim里面敲
:set nu 


# 第28行
 export JAVA_HOME=/export/servers/jdk1.8.0_141
 export HBASE_MANAGES_ZK=false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

hbase-site.xml

vim hbase-site.xml
  • 1
<configuration>
        <!-- HBase数据在HDFS中的存放的路径 -->
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://node1:8020/hbase</value>
        </property>
        <!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <!-- ZooKeeper的地址 -->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>node1:2181,node2:2181,node3:2181</value>
        </property>
        <!-- ZooKeeper快照的存储位置 -->
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/export/servers/zookeeper-3.4.9/zkdatas</value>
        </property>
        <!--  V2.1版本,在分布式情况下, 设置为false -->
        <property>
            <name>hbase.unsafe.stream.capability.enforce</name>
            <value>false</value>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

配置环境变量

# 配置Hbase环境变量
vim /etc/profile
export HBASE_HOME=/export/servers/hbase-2.1.0
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin

#加载环境变量
source /etc/profile

# 输入这个命令,输一半按tab健能联想出来就设置成功了
start-hbase.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

复制jar包到lib

cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/
  • 1

修改regionservers文件

vim regionservers 
node1
node2
node3
  • 1
  • 2
  • 3
  • 4

分发安装包与配置文件

cd /export/servers
scp -r hbase-2.1.0/ node2:$PWD
scp -r hbase-2.1.0/ node3:$PWD
scp -r /etc/profile node2:/etc
scp -r /etc/profile node3:/etc

# 在node2和node3加载环境变量
source /etc/profile

#同理输入下面这个,能联想出来就是成功的
hbase
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

启动HBase

这里弄了一个一键启动zk的脚本,同理一键停止的脚本只需要把start改成stop就可以了。
在这里插入图片描述

ZK_HOME=/export/servers/zookeeper-3.4.9

cat /export/onekey/slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile;nohup ${ZK_HOME}/bin/zkServer.sh start >/dev/nul* 2>&1 &"
}&
wait
done




ZK_HOME=/export/servers/zookeeper-3.4.9

cat /export/onekey/slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile;nohup ${ZK_HOME}/bin/zkServer.sh stop >/dev/nul* 2>&1 &"
}&
wait
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
## 启动ZK
./start-zk.sh


## 启动hadoop
start-dfs.sh


## 启动hbase
start-hbase.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

验证Hbase是否启动成功

# 启动hbase shell客户端
hbase shell
# 输入status
status
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

WebUI

可视化页面:node1:16010
在这里插入图片描述

安装Phoenix(补充)

下载

大家可以从官网上下载与HBase版本对应的Phoenix版本。对应到HBase 2.1,应该使用版本「5.0.0-HBase-2.0」。
官网地址

安装

1.上传安装包到Linux系统,并解压

cd /export/software
rz -E
tar -xvzf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz -C ../servers/
  • 1
  • 2
  • 3

2.将phoenix的所有jar包添加到所有HBase RegionServer和Master的复制到HBase的lib目录

#  拷贝jar包到hbase lib目录 
cp /export/servers/apache-phoenix-5.0.0-HBase-2.0-bin/phoenix-*.jar /export/servers/hbase-2.1.0/lib/
#  进入到hbase lib  目录
cd /export/servers/hbase-2.1.0/lib/
# 分发jar包到每个HBase 节点
scp phoenix-*.jar node2:$PWD
scp phoenix-*.jar node3:$PWD
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.修改配置文件

cd /export/servers/hbase-2.1.0/conf/
vim hbase-site.xml
  • 1
  • 2

将以下配置添加到 hbase-site.xml 后边

<!-- 支持HBase命名空间映射 -->
<property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
</property>
<!-- 支持索引预写日志编码 -->
<property>
  <name>hbase.regionserver.wal.codec</name>
  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# 2. 将hbase-site.xml分发到每个节点
scp hbase-site.xml node2:$PWD
scp hbase-site.xml node3:$PWD
  • 1
  • 2
  • 3

4.将配置后的hbase-site.xml拷贝到phoenix的bin目录

cp /export/servers/hbase-2.1.0/conf/hbase-site.xml /export/servers/apache-phoenix-5.0.0-HBase-2.0-bin/bin/
  • 1

5.重新启动HBase

stop-hbase.sh
start-hbase.sh
  • 1
  • 2

6.启动Phoenix客户端,连接Phoenix Server

注意:第一次启动Phoenix连接HBase会稍微慢一点。
cd /export/servers/apache-phoenix-5.0.0-HBase-2.0-bin/
bin/sqlline.py node1:2181
# 输入!table查看Phoenix中的表
!table
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

7.查看HBase的Web UI,可以看到Phoenix在default命名空间下创建了一些表,而且该系统表加载了大量的协处理器。
在这里插入图片描述
8.测试

-- 1. 创建表
create table if not exists ORDER_DTL(
    id varchar primary key,
    C1.status varchar,
    C1.money double,
    C1.pay_way integer,
    C1.user_id varchar,
    C1.operation_time varchar,
    C1.category varchar
);

-- 2. 删除表
drop table if exists ORDER_DTL;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/785716
推荐阅读
相关标签
  

闽ICP备14008679号