大数据开发之路--2

大数据开发之路—2

第一篇博客简单记录了HDFS的搭建,有点划水了。因为Hadoop版本上到2.0以后加入了一个非常重要的工具–统一资源管理YARN。这也是我研究项目的最重要的一个工具之一。所以再简单补充一下YARN的配置,然后接着大数据开发环境的部署。

Hadoop搭建之YARN

Hadoop安装以后,只需要简单的配置几个文件就可以完成YARN的安装。
在hadoop安装目录下

cd etc/hadoop

首先配置yarn-site.xml,设置一下resourcemanager运行的主机名:

vim yarn-site.xml

配置如下:

<configuration>
        <property>
                <name>yarn.nodemanager.auxservices</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop1</value>
        </property>
</configuration>

然后配置mapred-site.xml,设置mapreduce使用YARN:

vim mapred-site.xml

配置如下:

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

将刚配置的文件发送到hadoop2、hadoop3:

scp -r hadoop/ hadoop2:/usr/local/hadoop/etc/
scp -r hadoop/ hadoop3:/usr/local/hadoop/etc/

在hadoop1启动YARN:

start-yarn.sh

查看YARN是否启动成功:

jps

在这里插入图片描述
看到ResourceManager已启动成功。
在浏览器中输入hadoop1:8088:
在这里插入图片描述
至此,YARN已经安装成功!

Hadoop数据库技术

提到Hadoop的数据库技术很容易就想到HBase和Hive,但是实际上这并不是两个并行的技术,他们在Hadoop中担任的角色和发挥的作用是不同的,关于HBase和Hive的详细内容之后博主会专门写一篇来分析,今天就只是讲一下大数据开发环境的安装和部署。

HBase

安装HBase一定要注意版本的兼容性问题,我们安装的是Hadoop2.9.2版本,因此这里选择HBase2.2…x版本进行安装。图片来源:Hbase版本与Hadoop版本支持关系(官方)

  1. 安装包下载与安装

在/usr/local目录下

wget http://mirrors.hust.edu.cn/apache/hbase/stable/hbase-2.2.4-bin.tar.gz
tar -xvzf hbase-2.2.4-bin.tar.gz
mv hbase-2.2.4/ hbase
  1. 修改环境变量并测试

修改环境变量:

vim ~/.bashrc
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
source ~/.bashrc

测试:

hbase version

出现如下表示成功:
在这里插入图片描述
3. HBase配置
切换到/usr/local/hbase/conf目录下,首先需要设置一下java环境,修改hbase-env.sh:


vim hbase-env.sh
export JAVA_HOME=/usr/local/java/jdk8u252-b09

因为我们配置的分布式HBase,并且HBase需要zookeeper作为通信,我们使用了HBase中内置的zookeeper,在hbase-site.xml中进行设置:

vim hbase-site.xml

配置如下:

<configuration>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://hadoop1:9000/hbase</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>hadoop1,hadoop2,hadoop3</value>
        </property>
        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/usr/local/zookeeper</value>
        </property>
        <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
                <value>false</value>
        </property>
</configuration>

这里最后一条属性很重要,之前没有添加这条属性,导致启动HBase的时候HMaster几乎瞬间挂掉。
另外若要使用内置zookeeper,需要中hbase-env.sh设置:

export HBASE_MANAGES_ZK=true

设置完以后,将配置好的hbase安装包发送到hadoop2、hadoop3:

scp -r hbase/ hadoop2:/usr/local 
scp -r hbase/ hadoop3:/usr/local

启动HBase检测是否安装成功。

start-hbase.sh

在hadoop1上出现
在这里插入图片描述
在hadoop2、hadoop3上出现
在这里插入图片描述
表明启动成功。
在浏览器中输入:hadoop1:16010出现如下界面。
在这里插入图片描述
至此,HBase已安装成功。

Hive

Hive是一个基于Hadoop的数据仓库平台。通过Hive,我们可以方便地进行ETL的工作。Hive的数据存放在HDFS中,而元数据需要放在mysql中,因此需要安装mysql数据库。

  1. mysql安装

首先在三台机器上安装mysql数据库:

apt-get install mysql-server
apt-get install mysql-client

设置数据库可远程访问:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address= 127.0.0.1注释掉即可,然后重启数据库。

service mysql restart
  1. Hive下载与安装

在/usr/local/hive目录下下载Hive安装包并解压:

wget https://mirror.bit.edu.cn/apache/hive/stable-2/apache-hive-2.3.7-bin.tar.gz
tar -xvzf apache-hive-2.3.7-bin.tar.gz
mv apache-hive-2.3.7-bin hive
  1. 设置环境变量
vim ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bashrc

测试一下:

hive version

出现以下界面表示安装成功:
在这里插入图片描述

  1. Hive配置

首先在HDFS中创建hive所用目录:

hadoop fs -mkdir  -p     /tmp
hadoop fs -mkdir  -p     /user/hive/warehouse
hadoop fs -chmod g+w   /tmp
hadoop fs -chmod g+w   /user/hive/warehouse

其中/tmp用来存放日志等,/warehouse用来存放数据。
然后下载mysql连接所用的对应jar包到hive目录下:

wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
tar -xvzf mysql-connector-java-5.1.48.tar.gz
mv mysql-connector-java-5.1.48/mysql-connector-java-5.1.48.jar /lib 

创建数据库,配置hive用户和权限:

mysql
mysql>create database metastore;
mysql>grant all on metastore.* to hive@'%'  identified by 'hive';
mysql>grant all on metastore.* to hive@'localhost'  identified by 'hive';
mysql>flush privileges;

然后复制配置文件模板:

mv hive-env.sh.template hive-env.sh
mv hive-exec-log4j2.properties.template hive-exec-log4j2.properties
mv hive-log4j2.properties.template hive-log4j2.properties
mv hive-default.xml.template hive-default.xml

配置hive-env.sh:

vim hive-env.sh

配置JAVA环境和Hadoop环境:

export JAVA_HOME=/usr/local/java/jdk8u252-b09
export HADOOP_HOME=/usr/local/hadoop

然后需要新增一个hive-site.xml文件:

vim hive-site.xml

配置一下mysql的连接,用户名密码等。

<configuration>
        <property>
                <name>hive.exec.scratchdir</name>
                <value>/usr/local/hive/tmp</value>
        </property>
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/usr/local/hive/warehouse</value>
        </property>
        <property>
                <name>hive.querylog.location</name>
                <value>/usr/local/hive/log</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>hive</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>hive</value>
        </property>
 </configuration>

配置完mysql连接以后,需要在hadoop的core-site.xml中添加两条property:

<property>
        <name>hadoop.proxyuser.root.groups</name>
		<value>*</value>
        <description>Allow the superuser oozie to impersonate any members of the group group1 and group2 </description>
</property>
<property>
         <name>hadoop.proxyuser.root.hosts</name>
         <value>*</value>
         <description>The superuser can connect only from host1 and host2 to impersonate a user </description>
</property>

初始化Hive:

schematool -dbType mysql -initSchema hive hive

后台启动Hive:

nohup hiveserver2 &

通过beeline连接hive:

beeline
beeline>!connect jdbc:hive2://localhost:10000 hive hive

出现以下表示hive已安装成功。

Connecting to jdbc:hive2://localhost:10000
Connected to: Apache Hive (version 2.3.7)
Driver: Hive JDBC (version 2.3.7)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000> show databases;
+----------------+
| database_name  |
+----------------+
| default        |
+----------------+
1 row selected (3.498 seconds)
0: jdbc:hive2://localhost:10000>

至此,基于Hadoop的这套体系的基础环境基本上已搭建完成,不过我们没有搭建zookeeper,而是使用了HBase内置的zookeeper,这是因为我们的环境多用于测试,真正的项目实战中还是尽量使用外置的zookeeper作为协调服务应用程序。后期我们也将会安装外置的zookeeper。之后的博客中,我们将会介绍几个经典的大数据开发实战项目,请大家敬请期待!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值