yum list | grep jdk #查看yum源
yum -y install java-1.8.0-openjdk* #安装jdk
java -version #验证是否成功安装,安装路径一般在/usr/lib/jvm
下载地址:https://archive.apache.org/dist/hadoop/core/
tar -zxvf hadoop-2.9.2.tar.gz #解压
mv /usr/local/hadoop-2.9.2 /usr/local/hadoop #重命名
vim /etc/profile
# Add JDK
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
#Add Hadoop
export HADOOP_HOME=.../hadoop #路径为hadoop的解压路径
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
并使环境变量生效source /etc/profile
在…/hadoop目录下新建文件夹tmpmkdir tmp
,然后进入配置文件目录 cd .../hadoop/ect/hadoop
,复制文件cp mapred-site.xml.template mapred-site.xml
,然后进行以下修改
#修改Hadoop启动所需的jdk环境目录
vim hadoop-env.sh
#修改内容为
export JAVA_HOME=/usr/lib/jvm/java
vim core-site.xml
#修改内容如下
<!--用来指定hdfs的主节点,namenode的地址-->
fs.defaultFS</name>
hdfs://VM-20-12-centos:9005</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<!--如果不配置,默认放在/tmp目录下,这是一个临时目录,数据>可能会被系统清除-->
hadoop.tmp.dir</name>
/..../hadoop/tmp</value>
</property>
</configuration>
vim hdfs-site.xml
#修改内容如下
dfs.replication</name>
1</value>
</property>
dfs.client.use.datanode.hostname</name>
true</value>
</property>
dfs.datanode.use.datanode.hostname</name>
true</value>
</property>
dfs.permissions</name>
false</value>
</property>
</configuration>
vim mapred-site.xml
#修改内容如下
<!--指定mapreduce运行在yarn上-->
mapreduce.framework.name</name>
yarn</value>
</property>
</configuration>
vim yarn-site.xml
#修改内容如下
<!--指定yarn的resourcemanager的地址-->
yarn.resourcemanager.hostname</name>
VM-20-12-centos</value>
</property>
<!--NodeManager获取数据的方式-->
yarn.nodemanager.aux-services</name>
mapreduce_shuffle</value>
</property>
</configuration>
vim slaves
#配置主从节点,因为是伪分布式,只需要配置当前主机名
VM-20-12-centos
hadoop namenode -format
start-all.sh #启动
jps #查看节点,正常除了jps有5个
stop-all.sh #关闭
下载地址:https://archive.apache.org/dist/hive/
tar -zxvf apache-hive-2.3.7-bin.tar.gz #解压
mv apache-hive-2.1.1-bin hive #修改名称
vim /etc/profile
export HIVE_HOME=.../hive #路径为hive的解压路径
export PATH=$PATH:$HIVE_HOME/bin
source /etc.profile #使环境变量生效
hive --version #检查是否安装成功
cd .../hive/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
<!-- Add -->
javax.jdo.option.ConnectionUserName</name> #账号
root</value>
</property>
javax.jdo.option.ConnectionPassword</name> #密码
******</value>
</property>
javax.jdo.option.ConnectionURL</name> #IP
jdbc:mysql://localhost:3306/hive</value>
</property>
javax.jdo.option.ConnectionDriverName</name> #驱动名称,由com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver
com.mysql.cj.jdbc.Driver</value>
</property>
下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/
cp -p mysql-connector-java-8.0.27.jar .../hive/lib
schematool -dbType mysql -initSchema 初始化
hive #启动hadoop后执行
问题1:hadoop依赖的jar包和hive依赖的jar包冲突
问题描述:SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/app/Hive/hive/lib/log4j-slf4j-impl-2.6.2.jar!
/org/slf4j/impl/StaticLoggerBinder.class]
/app/Hive/hive/lib/log4j-slf4j-impl-2.6.2.jar
SLF4J: Found binding in [jar:file:/app/hadoop/hadoop/share/hadoop/common/lib/slf
4j-log4j12-1.7.25.jar!
/org/slf4j/impl/StaticLoggerBinder.class]
/app/hadoop/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar
解决方法:删除其中一个jar包
问题2:Metastore元数据库初始化失败
问题描述:java.io.IOException: Schema script failed, errorcode 2
解决方法:1、查看hive-site.xml原有旧配置是否已更新或已删除
2、查看Hadoop配置目录下是否也存在hive-site.xml,若有则进行替换
问题3:路径有误
问题描述:java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D
解决方法:
编辑配置hive文件hive-site.xml#如下命令将"${system:Java.io.tmpdir}“字段全部替换成”/hive/tmp"
sed -i 's#${system:Java.io.tmpdir}#/hive/tmp#g' hive-site.xml
问题4:配置文件中驱动名称有误
com.mysql.jdbc.Driver驱动是mysql-connector-java 5中的
com.mysql.cj.jdbc.Driver驱动是mysql-connector-java 6以上版本的
解决方法:根据jdbc 版本进行相应的修改
参考文章
https://blog.csdn.net/weixin_43861175/article/details/90372513
https://blog.csdn.net/mayunyun1987100/article/details/51154056
https://blog.csdn.net/weixin_39839162/article/details/114871504