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>
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,此端口不用开放)