Hadoop 3.2.2及hive3.1.3集群安装

前言

Hadoop3.2.3及其以后的版本需要JDK1.11才行,而目前的hive3.1.3只支持JDK1.8,为了同时使用hadoop及hive,本文以能支持JDK1.8的Hadoop3.2.2为例,记录下安装过程。

三台机器:121|122|123

JDK1.8(安装过程略)

Hadoop3.2.2(hadoop3.2.3及以后版本只支持java11)

Hive3.1.3

1.配置etc/hadoop:

配置Hadoop-env.sh文件中的Java_Home变量(/etc/profile文件配置与此相同)。

export JAVA_HOME=jdk安装路径

core-site.xml文件配置项为:

<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
</property>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://*******.121:9820</value>
</property>
<property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
</configuration>

hdfs-site.xml文件配置项为:

<configuration>
 <property>
        <name>dfs.namenode.http-address</name>
        <value>***********.121:9870</value>
 </property>
<property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/usr/local/hadoop/hdfs/journaldata</value>
        <description>journalnode上用于存放edits日志的目录</description>
</property>
<!--配置nameNode数据存放位置-->
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/hdfs/name</value>
        <description>在本地文件系统所在的NameNode的存储空间和持续化处理日志</description>
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/hdfs/data</value>
        <description>数据节点的块本地存放目录</description>
</property>
</configuration>

yarn-site.xml文件配置项为:

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>**********.121</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</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>
</configuration>

mapred-site.xml文件配置项为:

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>**********.121:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>**********.121:19888</value>
</property>
</configuration>

workers文件配置:

********.121
********.122
********.123

2.账户配置

在sbin/start-yarn.sh、stop-yarn.sh文件function上部添加如下账号配置:

YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

start-dfs.sh、stop-dfs.sh文件function上部添加如下账号配置:

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

配置完成后,将hadoop分发到其他接点:

scp -r /usr/local/hadoop root@*****.122:/usr/local/

 3.初始化

将从机(hadoopnode1)也如配置完成后,初始化Hadoop,命令如下:

bin/hdfs namenode -format

4.启动结果

配置完成后,运行start-all命令启动hadoop,并用jps命令查看相关进程是否启动成功。

5.安装Hive

解压hive:tar -zxvf apache-hive-*****,然后将hive文件夹命名为hive

在conf文件夹下,创建文件hive-site.xml:

<configuration>
    <property>
    <!-- 元数据库的链接地址 mysql -->
    <name>javax.jdo.option.ConnectionURL</name>  
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExsit=true;characterEncoding=UTF-8</value>
    <description>JDBC connect string for a JDBC metastore</description>
    <!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost -->
    </property>
    <property>
    <!-- 指定mysql驱动 -->
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
    </property>
    <property>
    <!-- 指定mysql用户名 -->
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>username to use against metastore database</description>
    </property>
    <property>
    <!-- 指定mysql密码 请输入自己的MySQL连接密码 -->
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>password</value>
    <description>password to use against metastore database</description>
    </property>
     <property>
      <name>hive.server2.webui.host</name>
      <value>0.0.0.0</value>
     </property>
     <property>
      <name>hive.server2.webui.port</name>
      <value>10002</value>
    </property>
</configuration>
hive-env.sh  底部追加:

HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

系统文件/etc/profile文件最终配置:

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH


export HIVE_HOME=/usr/local/hive
export HIVE_CONF_DIR=/usr/local/hive/conf

export PATH=$PATH:$HIVE_HOME/bin

将hive-log4j2.properties.template文件 重命名为hive-log4j2.properties,并修改其中的日志目录:

property.hive.log.dir = /usr/local/hive/log

设置完成后,使用命令启动hive(已经将系统全局变量添加/usr/local/hive/bin路径)

hiveserver2
或
hvie --service hiveserver2

并可以通过http://IP:10002访问hive主页查看。

备注:

1./etc/hosts文件需要对照IP与机器名称,因为在集群中,jobManager需要使用机器名来标注cluster名称。

2.namenode需要开放的端口为:9870、9820(不开ui中不会显示datanode相关信息)

3.datanode需要开放的端口为:9866(flink调用此端口,如果不安装flink,此端口不用开放)

posted @ 2017-10-25 22:23  Shapley  阅读(1286)  评论(0编辑  收藏  举报