Ubuntu 搭建 Hadoop + Hive 环境实例。
一、官网集群配置文档
{% link https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions 关于安装版本官方文档 %}
二、版本说明
推荐使用新版本(3.x),浪子因为所在公司使用的 2.x 版本,所以采用的 2.x 的最高版本。
java-8 hadoop-2.10.x hive-2.3.9
三、安装
安装 jdk
BASH1$ sudo apt install openjdk-8-jdk 2# 查看路径(虽然使用 apt 安装不需要配置环境变量,但是 hadoop 无法识别,依然需要手动导入) 3# /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 就是安装的路径 4# 如果你的 jdk 是自己上传压缩包配置的可以跳过此步骤 5$ which java 6 /usr/bin/java 7$ file /usr/bin/java 8 /usr/bin/java: symbolic link to /etc/alternatives/java 9$ file /etc/alternatives/java 10 /etc/alternatives/java: symbolic link to /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 11$ file /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 12 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0d167f96ccfa5695cabf1b40056a77dc9bb8ab1a, for GNU/Linux 3.2.0, stripped 13 14# 下载 oracle 驱动 15cd hivepath/lib 16wget https://download.oracle.com/otn-pub/otn_software/jdbc/217/ojdbc8.jar
配置环境变量:
BASH1export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 2export HADOOP_HOME=hadooppath 3export HIVE_HOME=hivepath 4export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
检验 Hadoop 是否安装成功:
BASH1source /etc/profile 2hadoop version
修改 Hive 配置文件 cd …/hivepath/conf cp hive-env.sh.template hive-env.sh
BASH1 # 配置一下 Hadoop 的安装路径 2 HADOOP_HOME=hadooppath
添加 hive-site.xml 文件
新建 hive-site.xml
文件,添加以下内容。
```xml hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:oracle:thin:@*********:1521:fangweidbt</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>oracle.jdbc.OracleDriver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>******</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>******</value>
</property>
</configuration>
```
初始化
BASH1schematool -dbType oracle -initSchema
然后就可以使用了。
BASH
1hive
2show databases;
三、Hadoop集群搭建
一般在生产环境中使用 Hadoop 都是集群部署(毕竟是大数据,数据集比较大),如果采用一台服务器存储,万一需要维护或者宕机就不能对外提供服务了。官网集群配置文档
1. 前置准备
- jdk(注意配置环境变量): {% link https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions 安装版本官方文档 %}
- ssh
2. 开始
创建服务器地址映射
BASH1... 2 3# ip hostname 域名 4192.168.10.1 node1 test.com
SSH 配置
BASH1# 密钥生成省略,使用 ssh-key 2# 复制公钥到目标主机 3ssh-copy-id hostname
集群时间同步
BASH1sudo apt install ntpdate 2ntpdate cn.pool.ntp.org
ntp 常用服务器:https://dns.icoa.cn/ntp/
安装 Hadoop
BASH1# 官网下载安装包并解压 2# 复制到多台机器 3scp -r /sourcepath/ root@hostname:/targetpath/
修改配置文件 配置文件都在 Hadoop 安装目录的 etc/hadoop/ 下。
BASH1export JAVA_HOME=/path 2export HDFS_NAMENODE_USER= 3export HDFS_DATANODE_USER= 4export HDFS_SECONDARYNAMENODE_USER= 5export HDFS_RESOURCEMANAGER_USER= 6export HDFS_NODEMANAGER_USER=
XML1<!-- 默认使用的文件系统,支持 file、HDFS、GFS、Amazon等 --> 2<property> 3 <name>fs.defaultFS</name> 4 <value>hdfs://ip/name:port</value> 5</property> 6<!-- Hadoop 本地保存数据路径 --> 7<property> 8 <name>hadoop.tmp.dir</name> 9 <value>/path</value> 10</property> 11 12<!-- 设置 HDFS Web UI 用户身份 --> 13<property> 14 <name>hadoop.http.staticuser.user</name> 15 <value>user</value> 16</property> 17 18<!-- hive 用户代理 --> 19<property> 20 <name>hadoop.proxyuser.root.hosts</name> 21 <value>*</value> 22</property> 23 24<property> 25 <name>hadoop.proxyuser.root.groups</name> 26 <value>*</value> 27</property> 28 29<!-- 文件系统垃圾桶保存时间 --> 30<property> 31 <name>fs.trash.interval</name> 32 <value>1440</value> 33</property>
XML1<!-- SNN 进程运行机器位置信息 --> 2 <property> 3 <name>dfs.namenode.secondary.http-address</name> 4 <value>ip/hostname:port</value> 5 </property>
XML1<!-- MR 程序默认运行模式,yarn:集群模式 local:本地模式 --> 2<property> 3 <name>mapreduce.framework.name</name> 4 <value>yarn</value> 5</property> 6 7<!-- MR 程序历史服务器地址 --> 8<property> 9 <name>mapreduce.jobhistory.address</name> 10 <value>ip/hostname:port</value> 11</property> 12 13<!-- MR 程序历史服务器 web 地址 --> 14<property> 15 <name>mapreduce.jobhistory.webapp.address</name> 16 <value>ip/hostname:port</value> 17</property> 18 19<property> 20 <name>yarn.app.mapreduce.am.env</name> 21 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> 22</property> 23 24<property> 25 <name>mapreduce.map.env</name> 26 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> 27</property> 28 29<property> 30 <name>mapreduce.reduce.env</name> 31 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> 32</property>
XML1<!-- yarn 集群主角色运行机器位置 --> 2<property> 3 <name>yarn.resourcemanager.hostname</name> 4 <value>ip/hostname</value> 5</property> 6 7<property> 8 <name>yarn.nodemanager.aux-services</name> 9 <value>mapreduce_shuffle</value> 10</property> 11 12<!-- 是否对容器实施物理内存限制 --> 13<property> 14 <name>yarn.nodemanager.pmem-check-enabled</name> 15 <value>false</value> 16</property> 17 18<!-- 是否对容器实施虚拟内存限制 --> 19<property> 20 <name>yarn.nodemanager.vmem-check-enabled</name> 21 <value>false</value> 22</property> 23 24<!-- 开启日志 --> 25<property> 26 <name>yarn.log.aggregation-enabled</name> 27 <value>true</value> 28</property> 29 30<!-- yarn 历史服务器地址 --> 31<property> 32 <name>yarn.log.server.url</name> 33 <value>http://ip|name/jobhistory/logs</value> 34</property> 35 36<!-- 历史日志保存时间 7 天 --> 37<property> 38 <name>yarn.log-aggregation.retain-seconds</name> 39 <value>604800</value> 40</property>
BASH1域名
集群启动
首次运行初始化:hdfs namenode -format
评论