下载地址:https://mirrors.tuna.tsinghua.edu.cn(清华大学开源软件镜像站);
具体地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.2/ (版本3.2.2)
2、解压后修改配置一共需要修改七个文件(如果要配置集群则还需要再加上一个文件,共八个)
(1)hadoop-3.2.2/etc/hadoop目录下,修改“core-site.xml”:增加
(2)hadoop-3.2.2/etc/hadoop目录下,修改“hadoop-env.sh”:fs.defaultFS hdfs://127.0.0.1:9000 hadoop.tmp.dir /home/mi/DevelopHome/hadoop-3.2.2/hadoop_tempdir
增加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64(3)hadoop-3.2.2/etc/hadoop目录下,修改“hdfs-site.xml”:
增加
(4)hadoop-3.2.2/etc/hadoop目录下,修改“mapred-env.sh”:dfs.replication 1
增加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64(5)hadoop-3.2.2/etc/hadoop目录下,修改“mapred-site.xml”:
增加
(6)hadoop-3.2.2/etc/hadoop目录下,修改“yarn-env.sh”:mapreduce.application.classpath /home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/mapreduce/*, /home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/mapreduce/lib/* mapreduce.framework.name yarn yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=/home/mi/DevelopHome/hadoop-3.2.2 mapreduce.map.env HADOOP_MAPRED_HOME=/home/mi/DevelopHome/hadoop-3.2.2 mapreduce.reduce.env HADOOP_MAPRED_HOME=/home/mi/DevelopHome/hadoop-3.2.2
增加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64(7)hadoop-3.2.2/etc/hadoop目录下,修改“yarn-site.xml”:
增加
3、在profile添加Hadoop_Homeyarn.resourcemanager.hostname 127.0.0.1 yarn.nodemanager.aux-services mapreduce_shuffle yarn.application.classpath /home/mi/DevelopHome/hadoop-3.2.2/etc/hadoop:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/common/lib/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/common/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/hdfs:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/hdfs/lib/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/hdfs/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/mapreduce/lib/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/mapreduce/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/yarn:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/yarn/lib/*:/home/mi/DevelopHome/hadoop-3.2.2/share/hadoop/yarn/*
修改/etc/profile,添加如下:
export HADOOP_HOME=/home/mi/DevelopHome/hadoop-3.2.2 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
注意修改后在终端录入:
source /etc/profile
使其立刻生效。
4、初始化hdfs文件夹在master上格式化hdfs文件系统:
hdfs namenode -format
这个命令只能在指定的namenode上输入,初始化后会在二(1)配置的临时文件中生成初始文件,该初始化过程一般只在最开始安装完成hadoop后初始化一次。
5、设置本机ssh权限如果跳过本步执行下面,会报出无权限的问题,需要设置。
(1)生成ssh公钥和私钥(如果已经进行git的ssh设置则可以直接跳过此步,进行下面的追加公钥):ssh-keygen
会让你指定公钥和私钥的生成地址,默认在.ssh目录中,一路下一步就好。
(2)追加公钥:将公钥追加到本地的认证文件中:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys6、在master上启动hdfs集群
在新的终端下启动hdfs和yarn
start-dfs.sh start-yarn.sh
或者直接全部启动:
start-all.sh
如果没有设置免密登录 此时就会多次报出无权限。
到此为止,hadoop配置并启动完成!
hadoop3的http默认端口号为9870(2为50070),
namenode默认端口号为9820(2为8020),
yarn的http端口号为8088,可以查看任务提交情况。
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/
2、解压后修改配置一共需要修改两个文件
(1)/apache-hive-3.1.2-bin/conf目录下,复制“hive-env.sh.template”文件,修改为“hive-env.sh”:增加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 HADOOP_HOME=/home/mi/DevelopHome/hadoop-3.2.2(2)/apache-hive-3.1.2-bin/conf目录下,复制“hive-default.xml.template”文件,修改为“hive-site.xml”:
去掉
......
所有配置,然后再增加
3、在profile添加Hive_Homehive.metastore.warehouse.dir /user/hive_remote/warehouse hive.metastore.local true javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 hive.metastore.schema.verification false datanucleus.autoCreateTables true 不存在时,自动创建Hive元数据表 datanucleus.autoCreateColumns true 不存在时,自动创建Hive元数据列 datanucleus.fixedDatastore false datanucleus.autoStartMechanism SchemaTable
修改/etc/profile,添加如下:
export HIVE_HOME=/home/mi/DevelopHome/apache-hive-3.1.2-bin export PATH=$HIVE_HOME/bin:$PATH
注意修改后在终端录入:
source /etc/profile
使其立刻生效。
4、真正启动Hive前的问题处理: (1)guava的jar包版本冲突问题:apache-hive-3.1.2-bin/lib下的guava版本为19,hadoop-3.2.2/share/hadoop/common/lib下的guava版本为27,两者的不一致,会导致启动hive相关时报出找不到方法的异常,因此将apache-hive-3.1.2-bin/lib下的guava直接替换成hadoop的版本27的,从而解决。
(2)mysql的jar包引入问题用mysql作为metastore,需要在apache-hive-3.1.2-bin/lib下引入“mysql-connector-java-5.1.47.jar”(版本可自行选择)
5、启动hive的metastore在新的终端下
hive --service metastore6、启动hiveserver2
在新的终端下
hive --service hiveserver27、启动Hive
由于已经修改了/etc/profile,则在新的终端下直接录入
hive
到此为止,hive配置启动完成!
注释:以上的启动新终端的流程,可以直接利用后台执行的方式:
nohup 要执行的指令 &8、创建表后mysql的metastore的查看
进入mysql的hive库后查看表,DBS表内存储着元数据,COLUMNS_V2表存储着表对应的字段信息,TBLS表可以查看表owner以及该表到底是内部表还是外部表,PARTITIONS表可以查看分区信息。
9、利用jdbc连接hivehive默认的对本机的连接ip端口为:jdbc:hive2://127.0.0.1:10000
driverName为:org.apache.hive.jdbc.HiveDriver
(2)写入java代码:org.apache.hadoop hadoop-common3.2.2 log4j log4jorg.apache.hadoop hadoop-client3.2.2 org.apache.hive hive-metastore3.1.2 org.apache.hive hive-exec3.1.2 org.apache.hive hive-jdbc3.1.2
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class HiveConnection { private static final String driverName = "org.apache.hive.jdbc.HiveDriver"; private static final String url = "jdbc:hive2://127.0.0.1:10000"; private static Connection con = null; private static Statement state = null; private static ResultSet res = null; public static void main(String[] args) throws Exception { Class.forName(driverName); con = DriverManager.getConnection(url); state = con.createStatement(); res = state.executeQuery("show databases");//执行的sql为查询所有db while (res.next()) { System.out.println(res.getString(1)); } } }
此时直接执行会报出禁止匿名访问、拒绝连接等错误,所以需要在hadoop的core-site.xml配置文件中对访问进行开放。
(3)修改hadoop的core-site.xml在core-site.xml的 configuration标签中加入property,如下:
hadoop.proxyuser.mi.groups * hadoop.proxyuser.mi.hosts *
此时再去执行jdbc连接,可以成功获得结果!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)