hive、hbase、oracle、postgresql、sqlserver安装过程持续更新

背景及hive介绍

最近工作需要,断断续续耗时三天安装了 hive、hbase、oracle、postgresql、sqlserver,至今日结束,写此博文记录,持续更新

hive
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

安装前置软件

CentOS Linux 7 (Core)

此处略

hadoop介绍及安装

Hadoop是使用Java编写,允许分布在集群,使用简单的编程模型的计算机大型数据集处理的Apache的开源框架.

Hadoop分布式文件系统(HDFS):分布式储存文件
MapReduce是一种并行编程模型 :分布式计算

在这里插入图片描述
hadoop 单机安装
主机名:cdp5
IP :192.168.xx
1、配置免密登录
1.1、ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
1.2、cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
1.3、chmod 0600 ~/.ssh/authorized_keys

在这里插入图片描述
2、获取安装包/上传
获取安装包
jdk安装包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Hadoop安装包:http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0.tar.gz
上传到/apps,解压-重命名
在这里插入图片描述
3、配置java/hadoop环境变量

java

sudo vi /etc/profile
export JAVA_HOME=/apps/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile

hadoop

sudo vi /etc/profile
export HADOOP_HOME=/apps/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
source /etc/profile

4、hadoop --hdfs相关的配置修改
配置hadoop-env.sh

cd /apps/hadoop/etc/hadoop
sudo vi /apps/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/apps/java

配置core-site.xml

sudo vi /apps/hadoop/etc/hadoop/core-site.xml
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://cdp5:9001</value>     ## namenode节点!!!
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/apps/hadoop/data/tmp</value>     ## 文件存储地址!!!
</property>
<property>
<name>hadoop.http.staticuser.user</name>   ## namenode web登录用户!!!
<value>root</value>
</property>

配置hdfs-site.xml

sudo vi /apps/hadoop/etc/hadoop/hdfs-site.xml
##dfs.replication,配置每个数据块备份数,由于目前我们使用1台节点,所以,设置为1,如果设置为2的话,运行会报错。
	<property>
        <name>dfs.replication</name>
        <value>1</value>
	</property>
	
	<property>
            <name>dfs.namenode.http-address</name>
            <value>cdp5:9870</value>
    </property>

初始化hdfs文件系统

hadoop namenode -format

验证hdfs安装是否成功

cd /apps/hadoop/sbin/
./start-dfs.sh
jps

出现下述进程,说明hdfs文件系统安装成功
在这里插入图片描述
5、hadoop --mapreduce相关的配置修改

cd /apps/hadoop/etc/hadoop
sudo vi /apps/hadoop/etc/hadoop/mapred-site.xml
指定mapreduce任务处理所使用的框架
<configuration>
		<!--指定MR运行在YARN(负责调度)-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

6、hadoop --yarn相关的配置修改

1、sudo vi /apps/hadoop/etc/hadoop/yarn-site.xml
<configuration>
		<!--Reducer获取数据的方式-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
	
	<property>
                <name>yarn.resourcemanager.hostname</name>
                <value>cdp5</value>
    </property>
		
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

验证yarn状态

cd /apps/hadoop/sbin/
 ./start-yarn.sh
 jps

出现下述进程,说明yarn调度系统安装成功
在这里插入图片描述

常用命令

./start-dfs.sh 
./start-yarn.sh 
mapred --daemon start historyserver

./sbin/stop-all.sh
mapred --daemon stop historyserver

namenodeweb地址
http://192.168.xxx:9870/dfshealth.html#tab-overview

http://192.168.xxx:8088/
http://192.168.xxx:19888/

hadoop简单功能介绍

1、上传文件夹

#上传文件夹
hdfs dfs -mkdir /input

在这里插入图片描述

2、上传文件到文件夹

echo 'test' >/apps/test/b.txt
hdfs dfs -put /apps/test/b.txt /input

在这里插入图片描述

在这里插入图片描述

3、运行一个简单的统计文件中单词出现次数的例子
测试数据:如下文件有一个test的单词
预期结果:test 1

在这里插入图片描述

在这里插入图片描述

hadoop小结

在我看来,hadoop主要是用来做分布式储存和分布式计算,也就是中国古人所说:三个丑皮匠,顶上一个诸葛亮,一台顶尖配置的计算机在存储和计算性能总会遇到瓶颈,就可以利用一堆性能不高、但是胜在可以横向扩展的机器去处理存储和计算
本次分享到一阶段,后期继续更新!

HIVE架构介绍

client:
cli:shell命令
jdbc:Java数据库连接,java访问hive的api

metastore:
hive与hdfs映射库/表等元数据

driver:
HQL的语法分析,编译,优化以及生成MapReduce任务

hdfs:
hive数据库物理存储地址

在这里插入图片描述

hive安装

配置hive环境变量

sudo vi /etc/profile
export HIVE_HOME=/apps/hive
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile 

修改 hive-env.sh

cp hive-env.sh.template hive-env.sh
#hadoop 目录
HADOOP_HOME=/apps/hadoop
#hive 配置目录
export HIVE_CONF_DIR=/apps/hive/conf
#hive 的lib目录
export HIVE_AUX_JARS_PATH=/apps/hive/lib

修改hive-site.xml

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 <configuration>
     <!-- jdbc-url -->
     <property>
         <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://192.168.XXXXX:3308/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
     </property>
     <!-- jdbc-driver -->
     <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>winnerXXXX</value>
     </property>
     <property>
         <name>datanucleus.readOnlyDatastore</name>
         <value>false</value>
     </property>
     <property>
         <name>datanucleus.fixedDatastore</name>
         <value>false</value>
     </property>
     <property>
         <name>datanucleus.autoCreateSchema</name>
         <value>true</value>
     </property>
     <property>
         <name>datanucleus.schema.autoCreateAll</name>
         <value>true</value>
     </property>
     <property>
         <name>datanucleus.autoCreateTables</name>
         <value>true</value>
     </property>
     <property>
         <name>datanucleus.autoCreateColumns</name>
         <value>true</value>
     </property>
     <property>
         <name>hive.metastore.local</name>
         <value>true</value>
     </property>
     <!-- 显示表的列名 -->
     <property>
         <name>hive.cli.print.header</name>
         <value>true</value>
     </property>
     <!-- 显示数据库名称 -->
     <property>
         <name>hive.cli.print.current.db</name>
         <value>true</value>
     </property>
     <property>
         <name>hive.exec.local.scratchdir</name>
         <value>/usr/local/hive</value>
         <description>Local scratch space for Hive jobs</description>
     </property>
     <!-- 自定义目录start -->
     <property>
         <name>hive.downloaded.resources.dir</name>
         <value>/usr/local/hive/hive-downloaded-addDir/</value>
         <description>Temporary local directory for added resources in the remote file system.</description>
     </property>
     <property>
         <name>hive.querylog.location</name>
         <value>/usr/local/hive/querylog-location-addDir/</value>
         <description>Location of Hive run time structured log file</description>
     </property>
     <property>
         <name>hive.server2.logging.operation.log.location</name>
         <value>/usr/local/hive/hive-logging-operation-log-addDir/</value>
         <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
     </property>
     <!-- 自定义目录end -->
 </configuration>

格式化数据库

 schematool -dbType mysql -initSchema

启动hive

hive

查看数据库

 hive> show databases;

在这里插入图片描述

hive库表创建以及mysql元数据信息查看

create database test;

在这里插入图片描述

查看hive库信息
desc database test
在这里插入图片描述
mysql查看元数据信息
在这里插入图片描述

hdfs查看对应生成的文件信息
在这里插入图片描述

通过hdfs文件生成hive库数据

创建表

USE test;
CREATE EXTERNAL TABLE student
(
  name  STRING,
  age   INT,
  gpa   string
)
ROW FORMAT DELIMITED              
  FIELDS TERMINATED BY ','
  LINES TERMINATED BY '\n'
STORED AS TEXTFILE   

上传文件

1、c.txt
测试1,18,bk
测试2,20,ss

2、d.txt
测试3,18,bk
测试4,20,ss

hdfs dfs -put /apps/test/c.txt /user/hive/warehouse/test.db/student
hdfs dfs -put /apps/test/d.txt /user/hive/warehouse/test.db/student

在这里插入图片描述

hive表插入数据成功
在这里插入图片描述

hive小结

由于直接操作hadoop需要java基础,同时比较繁琐(一个任务需要三个java文件map.java/reduce.java/client.java),hive的出现可以让开发任务像写sql
一样丝滑,总体而言,还是减少重复代码的思路,对hsql进行解释,生成map-reduce任务,但个性化的任务还是需要 直接操作hadoop更直观操作

背景及hbase介绍

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”

安装前置软件

CentOS Linux 7 (Core)

此处略

hadoop介绍及安装

此处参看如上

zookeeper单节点安装

1、解压

tar -xzvf  zookeeper-3.3.3.tar.gz -C  /apps

2、修改环境变量

sudo vi /etc/profile
export ZOO_HOME=/apps/zookeeper
export PATH=${ZOO_HOME}/bin:$PATH
source /etc/profile

3、改配置文件

cp zoo_sample.cfg zoo.cfg
//修改文件存储路径
data:/apps/zookeeper/data

4、启动

zkServer.sh start

5、查看状态

zkServer.sh status

6、关闭

zkServer.sh stop

Hbase架构介绍与安装

1、修改 conf/hbase-env.sh

//配置java_home
export JAVA_HOME=/apps/jdk/
//配置是否使用原装zoo
export HBASE_MANAGES_ZK=false

2、修改 hbase-site.xm

<configuration>
  <!-- hbase存放数据目录 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://cdp5:9001/hbase</value>
  </property>
  
  <property>
     <name>hbase.cluster.distributed</name>
     <value>true</value>
  </property>

 <!-- Zookeeper 集群的地址 -->
  <property>
   <name>hbase.zookeeper.quorum</name>     
   <value>cdp5</value>
  </property>
 
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).

      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.

      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    </description>
  </property>

</configuration>

3、环境变量生效

sudo vi /etc/profile
export HBASE_HOME=/apps//hbase
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile 

4、启动

启动命令:./bin/start-hbase.sh
关闭命令:./bin/stop-hbase.sh

在这里插入图片描述

5、web界面
http://192.168xxxx:16010

在这里插入图片描述

Hbase–shell使用入门

1、创建表

create 'test1:person' ,'info';

2、 put

 put 'test1:person', '1001', 'info:id', '1'
    put 'test1:person', '1001', 'info:name', 'xx'
	put 'test1:person', '1002', 'info:id', '2'
	put 'test1:person', '1002', 'info:name', 'xc'
	
	put 'test1:person', '1001', 'info:name', 'xx1'

3、get

get 'test1:person','1001'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值