歐拉操作系統下安裝hadoop集群

背景:歐拉操作系統下安裝CDH集群的時候,需要安裝python2.7.5,但是本身歐拉系統對python2的支持可能沒有那么好,所以考慮搭建原生的hadoop集群。

基礎環境如下

組件名稱組件版本
歐拉VERSION=“22.03 (LTS-SP4)”
jdkopenjdk version “1.8.0_44”
mysql8.0.42
hadoop
hive

一、jdk的安裝

openjdk的下載地址

https://jdk.java.net/java-se-ri/8-MR6

二、mysql的安裝

mysql安裝包的下載地址
https://dev.mysql.com/downloads/mysql/

三、hadoop的安裝

hadoop安裝的前置條件是系統中已經有Java的環境
還需要將免密登錄配置好

創建Hadoop用戶
#創建Hadoop的用戶
sudo useradd hadoop#設置Hadoop用戶的密碼
sudo passwd hadoop   #設置Hadoop的用戶有sudo權限            
sudo usermod -aG sudo hadoop     
解壓Hadoop的安裝包
#解壓這個壓縮包到/opt的目錄下,這里最好別放在/root下
sudo tar -xzf hadoop-3.4.1.tar.gz -C /opt#給這個解壓完的目錄,修改一個目錄名
sudo mv /opt/hadoop-3.4.1 /opt/hadoop#設置這個路徑的用戶、用戶組
sudo chown -R hadoop:hadoop /opt/hadoop  
創建環境變量在配置文件中
#將配置寫入到配置文件中
echo 'export HADOOP_HOME=/opt/hadoop' | sudo tee -a /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' | sudo tee -a /etc/profile#讓配置文件立即生效
source /etc/profile
修改這幾個配置文件

這幾個配置文件的位置如下;
$HADOOP_HOME/etc/hadoop/

1.hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
2.core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value>  # 默認文件系統地址</property><property><name>hadoop.tmp.dir</name><value>/opt/hadoop/tmp</value>        # 臨時文件目錄:</property>
</configuration>
3.hdfs-site.xml
<property><name>dfs.replication</name><value>1</value>                        # 數據副本數(單機設置為1</property>
<property><name>dfs.namenode.name.dir</name><value>/opt/hadoop/hdfs/namenode</value>  # NameNode數據存儲路徑
</property>
4.mapred-site.xml
<property><name>mapreduce.framework.name</name><value>yarn</value>  # 啟用YARN框架
</property>
5.yarn-site.xml
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>  # 指定NodeManager附加服務
</property>
格式化HDFS文件系統
hdfs namenode -format  # 初始化NameNode
啟動hadoop
1.啟動hdfs
start-dfs.sh2.啟動yarn
start-yarn.sh
查看集群啟動狀態及進程
jpshdfs dfsadmin -report

啟動hadoop報錯

./start-dfs.sh
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation

解決方案,在配置文件中配置如下,即可用root用戶進行啟動了

四、hive的安裝

https://dlcdn.apache.org/hive/hive-4.0.1/
在MySQL中創建Hive元數據庫及用戶
CREATE DATABASE hive_meta;
CREATE USER 'hive'@'%' IDENTIFIED BY 'Jky1234!@#$';
GRANT ALL ON hive_meta.* TO 'hive'@'%';
FLUSH PRIVILEGES;
修改Hive配置文件
cd $HIVE_HOME/conf
cp hive-default.xml.template hive-site.xml
vi hive-site.xml  # 替換以下關鍵參數

hive的配置文件內容添加如下

<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive_meta?createDatabaseIfNotExist=true</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>hive</value>
</property>
<property><name>javax.jdo.option.ConnectionPassword</name><value>Jky1234!@#$</value>
</property>

下載mysql-connector-java-8.0.27.jar并拷貝到Hive的lib目錄

cp mysql-connector-java-8.0.27.jar /opt/hive/lib/opt/hadoop/share/hadoop/common/lib
cp guava-27.0-jre.jar /opt/hive/lib

在hive的bin目錄下執行初始化數據庫的操作

./schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hive/lib/log4j-slf4j-impl-2.18.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Initializing the schema to: 4.0.0
Metastore connection URL:	 jdbc:mysql://localhost:3306/hive_meta?createDatabaseIfNotExist=true
Metastore connection Driver :	 com.mysql.cj.jdbc.Driver
Metastore connection User:	 hive
Starting metastore schema initialization to 4.0.0
Initialization script hive-schema-4.0.0.mysql.sqlInitialization script completed

是否成功? 去MySQL中

use hive_meta;
show tables;

啟動hive的客戶端,顯示如下;
仔細看日志打印的信息,應該是提示日志沖突了

./hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hive/lib/log4j-slf4j-impl-2.18.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hive/lib/log4j-slf4j-impl-2.18.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Beeline version 4.0.1 by Apache Hive
beeline> show databases;
No current connection

ll log4j
-rw-r–r–. 1 root root 349845 9月 25 2024 log4j-1.2-api-2.18.0.jar
-rw-r–r–. 1 root root 315115 9月 25 2024 log4j-api-2.18.0.jar
-rw-r–r–. 1 root root 1861441 9月 25 2024 log4j-core-2.18.0.jar
-rw-r–r–. 1 root root 24801 9月 25 2024 log4j-slf4j-impl-2.18.0.jar
-rw-r–r–. 1 root root 36166 9月 25 2024 log4j-web-2.18.0.jar

mv log4j-slf4j-impl-2.18.0.jar log4j-slf4j-impl-2.18.0-bak.jar0526
然后在執行,發現多余的日志信息沒有了

執行連接hive的命令,報錯如下;

!connect jdbc:hive2://localhost:10000

./beeline --verbose
Default hs2 connection config file not found
Beeline version 4.0.1 by Apache Hive

查看1000的端口是否被監聽
ss -tulnp | grep 9870
tcp LISTEN 0 500 0.0.0.0:9870 0.0.0.0:* users:((“java”,pid=13987,fd=329))

./hive --service hiveserver2 --hiveconf hive.log.dir=/var/log/hive --hiveconf hive.log.file=hiveserver2-daemon.log
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/java-se-8u44-ri/bin:/opt/hadoop/bin:/opt/hadoop/sbin:/opt/hive/bin:/root/bin)
2025-05-26 18:16:09: Starting HiveServer2
Exception in thread “main” java.lang.IllegalArgumentException: Logs will be split in two files if the commandline argument hive.log.file is used. To prevent this use to HADOOP_CLIENT_OPTS -Dhive.log.file=hiveserver2-daemon.log or use the set the value in the configuration file (see HIVE-19886)
at org.apache.hive.service.server.HiveServer2$ServerOptionsProcessor.parse(HiveServer2.java:1366)
at org.apache.hive.service.server.HiveServer2.main(HiveServer2.java:1270)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.hadoop.util.RunJar.run(RunJar.java:330)
at org.apache.hadoop.util.RunJar.main(RunJar.java:245)

./beeline --verbose
Overriding connection url property url_prefix from user connection configuration file
Connecting to jdbc:hive2://localhost:10000/default
Enter username for jdbc:hive2://localhost:10000/default: hive
Enter password for jdbc:hive2://localhost:10000/default: ****
25/05/26 18:23:26 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate hive (state=08S01,code=0)
java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate hive
解決方案

hadoop.proxyuser.root.hosts



hadoop.proxyuser.root.groups

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906992.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906992.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906992.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL語句的執行流程

文章目錄 一、執行流程二、建立連接三、預處理器四、解析器4.1 詞法分析4.2 語法分析4.3 語義分析 五、優化器六、執行器七、返回結果 一、執行流程 階段主要功能關鍵組件1. 建立連接身份驗證、權限檢查連接器2. 預處理器緩存檢查、SQL預處理查詢緩存3. 解析器詞法分析、語法分…

TiDB:從快速上手到核心原理與最佳實踐

文章目錄 引言第一部分&#xff1a;TiDB快速體驗與實踐指南1. TiDB概述2. TiDB部署方式2.1 本地測試環境部署2.2 生產環境部署2.3 Kubernetes部署2.4 云服務 3. TiDB基本操作3.1 連接TiDB3.2 數據庫和表操作3.3 分區表3.4 事務操作 4. 數據遷移到TiDB4.1 從MySQL遷移4.2 使用Ti…

總結:進程和線程的聯系和區別

前言:通過學習javaEE初階中的多線程章節后加上我自己的理解,想來總結一下線程和進程的聯系和區別. 一來是能更好地復習知識,二來是為了記錄我的學習路程,相信未來的我回首不會忘記這段難忘的經歷. 1.進程 先來談談進程:進程是操作系統中資源分配的基本單位. 1)進程的執行方…

邊緣云的定義、實現與典型應用場景!與傳統云計算的區別!

一、什么是邊緣云&#xff1f;? 邊緣云是一種?分布式云計算架構?&#xff0c;將計算、存儲和網絡資源部署在?靠近數據源或終端用戶的網絡邊緣側?&#xff08;如基站、本地數據中心或終端設備附近&#xff09;&#xff0c;而非傳統的集中式云端數據中心。 ?核心特征?&…

海康威視攝像頭C#開發指南:從SDK對接到安全增強與高并發優化

一、海康威視SDK核心對接流程?? 1. ??開發環境準備?? ??官方SDK獲取??&#xff1a;從海康開放平臺下載最新版SDK&#xff08;如HCNetSDK.dll、PlayCtrl.dll&#xff09;。??依賴項安裝??&#xff1a;確保C運行庫&#xff08;如vcredist_x86.exe&#xff09;與S…

《軟件工程》第 9 章 - 軟件詳細設計

目錄 9.1 詳細設計的任務與過程模型 9.2 用例設計 9.2.1 設計用例實現方案 9.2.2 構造設計類圖 9.2.3 整合并優化用例實現方案 9.3 子系統設計 9.3.1 確立內部設計元素 9.3.2 導出設計類圖 9.4 構件設計 9.5 類設計 9.5.1 精化類間關系 9.5.2 精化屬性和操作 9.5.…

spring+tomcat 用戶每次發請求,tomcat 站在線程的角度是如何處理用戶請求的,spinrg的bean 是共享的嗎

對于 springtomcat 用戶每次發請求&#xff0c;tomcat 站在線程的角度是如何處理的 比如 bio nio apr 等情況 tomcat 配置文件中 maxThreads 的數量是相對于誰來說的&#xff1f; 以及 spring Controller 中的全局變量:各種bean 對于線程來說是共享的嗎&#xff1f; 一、Tomca…

存儲引擎系列--LSM不同Compaction策略性能分析對比

本文介紹一下參考論文里的Compaction性能分析部分,作者在RocksDB的基礎上做了多種策略的改造,然后提出了benchmarking方法論,關注compaction性能的哪些維度,并對結果進行分析。 一、Standardization of Compaction Strategies 1.1 實驗平臺的選擇 作者選擇了RocksDB作為…

leetcode 3559. Number of Ways to Assign Edge Weights II

leetcode 3559. Number of Ways to Assign Edge Weights II 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3559. Number of Ways to Assign Edge Weights II 1. 解題思路 這一題是題目3558. Number of Ways to Assign Edge Weights I的進階版本。 對于題目3558來說&#xf…

推理模型 vs 非推理模型:核心區別及優劣勢解析

推理能力上的差異 推理模型在推理能力方面表現突出,它們擅長通過生成中間步驟和“思維鏈”逐步解決復雜問題。這意味著面對數學計算、邏輯推理、多跳推斷等任務時,推理模型能夠將問題分解為若干子步驟,每一步給出推理結果,最終匯總得到答案。這種逐步推導的方式使得推理模…

OPENEULER搭建私有云存儲服務器

一、關閉防火墻和selinux 二、下載相關軟件 下載nginx&#xff0c;mariadb、php、nextcloud 下載nextcloud&#xff1a; sudo wget https://download.nextcloud.com/server/releases/nextcloud-30.0.1.zip sudo unzip nextcloud-30.0.1.zip -d /var/www/html/ sudo chown -R…

Docker 與微服務架構:從單體應用到容器化微服務的遷移實踐

隨著軟件系統規模和復雜性的日益增長,傳統的單體應用(Monolithic Application)在開發效率、部署靈活性和可伸縮性方面逐漸暴露出局限性。微服務架構(Microservice Architecture)作為一種將大型應用拆分為一系列小型、獨立、松耦合服務的模式,正成為現代企業構建彈性、敏捷…

【C#】Invalidate()的使用

Invalidate()的使用 Invalidate() 是 C# 中用于通知控件需要重新繪制的方法。它通常用于 Windows Forms 應用程序中&#xff0c;當想要更新控件的顯示內容時使用。調用 Invalidate() 方法后&#xff0c;系統會安排對該控件進行重繪&#xff0c;這將導致后續調用 OnPaint 方法&…

我店模式系統開發打造本地生活生態商圈

在當今快節奏的商業環境中&#xff0c;商家們面臨著越來越多的挑戰&#xff0c;包括市場競爭加劇、消費者需求多樣化以及運營效率的提高等。為了應對這些挑戰&#xff0c;越來越多的商家開始尋求信息化解決方案&#xff0c;以提升運營效率和客戶體驗。我的店模式系統平臺應運而…

Linux(Ubuntu)新建文件權限繼承問題

當你在一個工作目權限為777的文件下&#xff0c;新建一個文件的時候&#xff0c;就有可能發生&#xff0c;新建的這個文件&#xff0c;權限和其他文件&#xff0c;或者工作目錄不一致的問題&#xff0c;我們不可能每次新建一個文件&#xff0c;就要 sudo chmod -R 777 /PATH 所…

Vue3和React中插件化設計思想

Vue 3 和 React 都廣泛支持插件化設計思想&#xff0c;但因為它們的架構和理念不同&#xff0c;插件化的實現方式也不盡相同。以下分別詳細講解這兩者中如何實現插件化&#xff1a; &#x1f7e9; 一、Vue 3 中的插件化實現 Vue 3 繼承了 Vue 2 的插件機制&#xff0c;同時增強…

Excel 密碼忘記了?巧用PassFab for Excel 解密幫您找回數據!

在工作中&#xff0c;你是否遇到過這樣的尷尬時刻&#xff1f;打開重要的 Excel 文件&#xff0c;卻發現忘記密碼&#xff0c;里面的財務報表、客戶數據、項目計劃瞬間變成 “加密天書”。重新制作耗時耗力&#xff0c;找專業人員解密又擔心數據泄露&#xff0c;這個時候&#…

Vue3 與 Vue2 區別

一、Vue3 與 Vue2 區別 對于生命周期來說&#xff0c;整體上變化不大&#xff0c;只是大部分生命周期鉤子名稱上 “on”&#xff0c;功能上是類似的。不過有一點需要注意&#xff0c;組合式API的Vue3 中使用生命周期鉤子時需要先引入&#xff0c;而 Vue2 在選項API中可以直接…

Axure高級交互設計:中繼器嵌套動態面板實現超強體驗感臺賬

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝!如有幫助請訂閱專欄! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:中繼器嵌套動態面板 主要內容:中繼器內部嵌套動態面板,實現可移動式臺賬,增強數據表現…

Spring中用到的設計模式詳解

Spring 在設計和實現過程中大量使用了設計模式&#xff0c;這些設計模式不僅提升了 Spring 的靈活性和可擴展性&#xff0c;還為開發者提供了更高效、更優雅的編程方式。以下是 Spring 框架中使用的一些常見設計模式&#xff1a; 1. 單例模式&#xff08;Singleton Pattern&am…