hadoop-3.2.1
hive-3.1.2
jdk1.8.0_211
一、Hadoop部署
1.JDK
下載下傳并解壓jdk1.8.0_211 到/usr/local/jdk1.8.0_211
配置/etc/profile 添加 export JAVA_HOME=/usr/local/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile 配置檔案生效
java -version驗證是否成功
2.Hadoop
下載下傳hadoop-3.2.1 http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
上傳到/home/data/hadoop
解壓tar -zxvf hadoop-3.2.1.tar.gz
vi /etc/profile 添加export HADOOP_HOME=/home/data/hadoop/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile 配置檔案生效
hadoop version驗證
配置:
cd /home/data/hadoop/hadoop-3.2.1/etc/hadoop
vi core-site.xml添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.2.111:9000</value> <!-- 這裡填的是你自己的ip,端口預設是9000,但需要檢視是否有沖突-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/data/hadoop/hadoop-3.2.1/tmp</value><!-- 這裡填的是你自定義的hadoop工作的目錄,端口預設-->
</property>
<property>
<name>hadoop.native.lib</name>
<value>false</value>
</property>
vi hadoop-env.sh
修改 export JAVA_HOME=/usr/local/jdk1.8.0_211
vi hdfs-site.xml添加
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>192.168.2.111:50090</value> <!--這裡是你自己的ip,端口預設-->
</property>
vi mapred-site.xml添加
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
vi yarn-site.xml 添加
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.2.111</value><!-- 自己的ip端口預設 -->
</property>
<!-- reducer擷取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
切換到sbin目錄下
格式化hadoop檔案格式,執行指令 hadoop namenode -format
然後啟動 ./start-all.sh
驗證jps 檢視是否有NodeManager ResourceManager SecondaryNameNode DataNode NameNode
參考 https://blog.csdn.net/lu1171901273/article/details/86518494
啟動時候報錯
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.....
參考https://blog.csdn.net/oschina_41140683/article/details/93976752,增加配置,然後成功
二、Hive部署
1.常見空資料庫,用于存放hive的中繼資料 create database hive;
2.下載下傳Hive https://mirrors.cnnic.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
上傳到/home/data/hive
解壓 tar -zxvf apache-hive-3.1.2-bin.tar.gz
下載下傳資料庫驅動包mysql-connector-java-8.0.16.jar,放到 /home/data/hive/apache-hive-3.1.2-bin/lib
修改配置檔案:vi conf/hive-site.xml
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.111:3306/hive?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>mysql使用者名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql密碼</value>
</property>
資料庫初始化 schematool -dbType mysql -initSchema
驗證 hive
參考https://blog.csdn.net/weixin_37548740/article/details/88973400
遇到的問題 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
原因:guava版本沖突,找到hadoop下的guava-27.0-jre.jar替換hive/lib下的guava包,注意,hive下原有的包要删除
參考https://www.cnblogs.com/zxgCoding/p/13071488.html