在centos7 和vm虚拟机下搭建hadoop集群+zookeeper集群+hive集群+hbase集群

搭建hadoop集群
在上一篇文章(在centos07 VM 下的单机hadoop搭建)中,我们已经搭建好了单机的hadoop,接下来我们搭建hadoop集群。
一、复制虚拟机
关闭搭建好的虚拟机,右键点击管理,如图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来,修改每台机器的ip地址,主机名,主机列表
复制的两台机器:
修改IP地址:vi etc/syscondig/network-scripts/ifcfg-ens33 修改成自己的主机地址
主机名:vi etc/hostname 修改成自己的主机名
记得:hostnamectl set-hostname hadoop02 (及时生效修改的主机名)
三台机器:
修改主机列表:vi /etc/hosts
必须地址与主机名对应
如:192.168.255.115 hadoop01
192.168.255.116 hadoop02
192.168.255.117 hadoop03
以上均修改完成后:记得重新启动网络(三台)
输入:systemctl restart network

接下来创建ssh连接。如下所示,
在这里插入图片描述
创建完ssh,并连接上后,我们要配置三台机器上的无密访问:
在hadoop01上,操作如下:
(1)创建密钥

ssh-keygen -t rsa -P ""

(2)复制公钥到自己的机器上

cat .ssh/id_rsa.pub > .ssh/authorized_keys

(3)传递自己的密钥给其他机器,建立通讯

ssh-copy-id -i .ssh/is_rsa.pub -p22 root@hadoop02
ssh-copy-id -i .ssh/is_rsa.pub -p22 root@hadoop03

在hadoop02、hadoop03上,都重复以上步骤。
完成后使用:ssh root@hadoop02 进行各个机器之间的通信测试,测试成功即可。
下面配置hadoop:
可以下hadoop01上配置,然后copy到其他机器上。
到此目录下:cd /opt/insatll/hadoop260/etc/hadoop(作者自己安装的hadoop目录)
修改以下几个配置文件:一般是hdfs-site.xml 和slaves即可
hdfs-site.xml修改内容如下:

<configuration>
<property>
  <name>dfs.replication</name>
  <!--1修改成3 -->
  <value>3</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <!-- hadoop111改为hadoop112 -->
  <value>hadoop112:50090</value>
</property>
</configuration>

修改slaves(添加集群的主机列表),内容如下:
hadoop01
hadoop02
hadoop03
修改完成后,把修改的文件传给其他两台主机。

scp  /opt/install/hadoop260/etc/hadoop/hdfs-site.xml root@hadoop02:/opt/install/hadoop260/etc/hadoop/hdfs-site.xml
scp  /opt/install/hadoop260/etc/hadoop/slaves root@hadoop02:/opt/install/hadoop260/etc/hadoop/slaves

注意:两台机器都要传送
完成之后,hadoop的集群配置完成。
接下来重新格式化,
格式化之前先删除 /opt/install/hadoop260/下的tmp文件夹,因为他是存储hadoop运行后的数据的,之前在单机版行,我们已经运行过了,里面有内容,如果不删除,此次格式化生成的id可能会于之前存储的冲突,这样就会启动失败,或者丢失节点,故需要删除(首次启动不需要)
删除tmp:rm -rf (每个主机都需要))/opt/install/hadoop260/tmp
接下来格式化:hadoop namenode -format
然后启动hadoop:start-all.sh
会出现以下节点:

接下安装zookeepr集群

zookeeper是用来管理整个hadoop集群的,包括两部分:文件系统和通知机制
作用:存储和管理大家都关心的数据。如配置文件,当文件发生改变,随机把修改的文件发到其他群众。
前提:准备好安装包 并解压安装完成
进入到安装目录下:

cd /etc/install/zookpr/conf

接下来修改配置文件名:

mv zoo_sample.cfg zoo.cfg

创建一个文件夹:

mkdir /opt/install/hadoop260/zkdata

进入配置文件:vi zoo.cfg
配置内容:

dataDir=/opt/install/hadoop260/zkdata

添加:

server.1=hadoop111:2888:3888
server.2=hadoop112:2888:3888
server.3=hadoop113:2888:3888

保存退出
进入到新创建的文件夹下:

cd /opt/install/hadoop260/zkdata

配置以下文件:

vi myid 

输入server对应的编号1
接下来,把配置好的zookpr传给另两台机器:
先进入到:cd /opt/install/zookpr/
把整个conf目录传给其他两台机器:

scp -r conf root@hadoop112:$PWD
scp -r conf root@hadoop113:$PWD

然后再到其他两台机器上,创建zkdata文件,修改myid中的值
修改完后才能后,启动三台的zookpr
输入:zkServer.sh start
如下所示:说明启动日志成功
在这里插入图片描述
安装好了hadoop集群和zookpr集群 接下来

安装hbase

habse是hadoop的数据库
一样解压安装好hbase 同样的目录即可
进入到:cd /opt/install/hbase/conf
输入:vi hbase-env.sh 在末尾输入以下内容:


export JAVA_HOME=/opt/install/jdk8
export HBASE_MANAGES_ZK=false

输入:vi hbase-site.xml 在输入以下内容:

<property>
         <name>hbase.rootdir</name>
         <value>hdfs://192.168.241.131:9000/hbase</value>
</property>
<property>
         <name>hbase.cluster.distributed</name>
         <value>true</value>
</property>
<property>
         <name>hbase.zookeeper.property.dataDir</name>
         <value>/opt/install/hbase120/data</value>
</property>

输入:vi /etc/profile 在末尾输入以下内容:

export HBASE_HOME=/opt/install/hbase120
export PATH=.:$HBASE_HOME/bin

输入:source /etc/profile
开启hbase:start-hbase.sh
进入hbase:hbase shell

安装mysql(hive的基础)

安装hive之前,先安装mysql,因为需要mysql存储其元数据信息
安装mysql:
首先先检查系统是否装有mysql,因为linux下默认的是Mariadb ,故先查看是否有这个进程:
输入:rpm -qa | grep mariadb
如果存在 杀掉这个进程:kill 进程号
如果不存在:
更新mariadb数据库:

yum install mysql

下载wget依赖:

yum -y install wget

下载mysql的repo源:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安装mysql:(root用户除外的其他用户,需要在最前面加上sudo)

rpm -ivh mysql-community-release-el7-5.noarch.rpm

输入:cd /etc/yum.repos.d/
输入:ll 查看是否具有两个mysql的repo源
存在,接着安装mysql:
在这里插入图片描述
输入:yum install mysql-server
完成后再次查看mysql

rpm -qa | grep mysql

出现mysql的各个安装包,则完成。
在这里插入图片描述
接下来登录:mysql -u root
可能会报错
在这里插入图片描述
输入:chown -R root:root /var/lib/mysql
修改mysql访问的权限,把mysql的拥有者改为当前用户
接下来重启服务:

service mysqld restart

接下来登录,重置密码

mysql

进入mysql
输入:use mysql;
修改密码:update user set password=password('ok') where user='root';
退出:exit
重启:service mysqld restart
接着为此mysql添加远程连接的能力
再次登录:mysql -uroot -p
进入mysql
输入:GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "ok";  
接下来查看编码:

show variables like "%char%",

确保是utf-8模式,否则会出现中文乱码的问题。
退出
进入配置文件 vi /etc/my.cnf
在[mysqld]上下添加以下内容:

[client]
default-character-set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

保存退出,至此完成mysql的安装

安装hive

一样倒包解压到相应的目录
配置文件:
输入:cp hive-env.sh.template hive-env.sh复制一个hive-env.sh
输入:vi hive-env.sh,配置如下:

export HADOOP_HOME=/opt/install/hadoop260
export HIVE_CONF_DIR=/opt/install/hive/conf
export HIVE_AUX_JARS_PATH=/opt/install/hive/lib
export JAVA_HOME=/opt/install/jdk8

接下来输入:vi hive-site.xml,我发现没有hive-site.xml这个配置文件,所以我直接创建一个
添加以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 <property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/opt/install/hive/warehouse</value>
 </property>
 <property>
  <name>hive.metastore.local</name>
  <value>true</value>
 </property>
 <!-- 如果是远程mysql数据库的话需要在这里写入远程的IP或hosts -->
 <property>
  <name>javax.jdo.option.ConnectionURL</name>
  <!--需要填本地地址127.0.0.1-->
  <value>jdbc:mysql://127.0.0.1:3306/hive?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>root</value>
 </property>
 <property>
 <name>javax.jdo.option.ConnectionPassword</name>
  <value>ok</value>
 </property>
 <!--后面三条配置,为了后面连java-->
 <property>
   <name>hive.server2.authentication</name>
   <value>NONE</value>
 </property>
 <property>
   <name>hive.server2.thrift.client.user</name>
   <value>root</value>
 </property>
 <property>
   <name>hive.server2.thrift.client.password</name>
   <value>root</value>
 </property>
</configuration>

把mysql-connector-java-5.1.0-bin.jar包拖入到/opt/install/hive/lib目录下
创建hdfs文件夹,输入:hadoop fs -mkdir -p /opt/install/hive/warehouse ,与之前的对应
给创建的文件夹赋权,输入:

hadoop fs -chmod -p 777 /opt/install/hive/warehouse 
-p:表示递归创建
hadoop fs -chmod -R 777 /opt/install/hive/warehouse 
-R:表示以递回的方式逐个变更

第一次安装启动 需要先进入hive的bin目录下初始化hive,输入:./schematool -dbType mysql -initSchema,效果图如下:
在这里插入图片描述
接下来初始化元数据:
输入:nohup hive --service metastore &
启动hive,输入:hive 。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值