日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑

發布時間:2025/5/22 Ubuntu 127 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導讀:作為大數據界的萌新,這篇文章的寫作過程,經歷了各種阻撓,也踩了無數坑,俗話說面向CSDN、度娘編程,然后多看官方文檔,在遇到各種神奇的坑的時候,搜著搜著就到了國外,剎那間一大堆英文向你飛來,就知道有一定的英語底子是多么重要。開源精神我們一直會堅持下去,將自己的學習筆記拿出來供新人學習,希望能給更多的朋友帶來幫助。

文章目錄

    • 1.1 前提
    • 1.2 配置 Hive 環境變量
    • 1.3 創建 Hive 倉庫目錄
    • 1.4 配置 hive-env.sh
    • 1.5 下載 Apache Derby(此步驟可以跳過)
    • 1.6 配置 Hive Metastore
      • 1.6.1 配置 hive-default.xml
      • 1.6.2 創建 jpox.properties 文件
      • 1.6.3 Hive 文件夾授權
      • 1.6.4 Metastore模式初始化
    • 1.7 啟動Hive
    • 1.8 踏上踩坑之路
      • 報錯1:google一個包 版本不一致
      • 報錯2 未知字符
      • 報錯3 (_resources)
      • 報錯4 (%7D)
      • 報錯5
      • 報錯 6
      • 新加屬性

1.1 前提

配置hive之前 需要將hadoop配置好

1.2 配置 Hive 環境變量

vim ~/.bashrc export HIVE_HOME=/usr/local/hive-3.1.2 export HIVE_CONF_DIR=/usr/local/hive-3.1.2/conf export PATH=$HIVE_HOME/bin:$PATH # export CLASSPATH=$CLASSPATH:/usr/local/hadoop/lib/*:. export CLASSPATH=$CLASSPATH:/usr/local/hive-3.1.2/lib/*:. source ~/.bashrc

1.3 創建 Hive 倉庫目錄

另外,我們必須使用下面的HDFS命令創建/ tmp和/ user / hive / warehouse(又名hive.metastore.warehouse.dir),并將它們設置為chmod g + w,然后才能在Hive中創建表:
在HDFS中新建/tmp 和 /usr/hive/warehouse 兩個文件目錄,并對同組用戶增加寫權限。

hdfs dfs -mkdir -p /user/hive/warehouse hdfs dfs -chmod g+w /user/hive/warehousehdfs dfs -chmod g+w /tmphdfs dfs -mkdir /user/hduser hdfs dfs -ls / hdfs dfs -ls /user

其他方法

hadoop fs -mkdir /user/hive hadoop fs -mkdir /user/hive/warehouse hadoop fs -mkdir /tmphadoop fs -chmod 777 /user/hive hadoop fs -chmod 777 /user/hive/warehouse hadoop fs -chmod 777 /tmp bin/hadoop fs -mkdir /tmp bin/hadoop fs -mkdir -p /usr/hive/warehouse bin/hadoop fs -chmod g+w /tmp bin/hadoop fs -chmod g+w /usr/hive/warehouse

1.4 配置 hive-env.sh

sudo cp /usr/local/hive-3.1.2/conf/hive-env.sh.template /usr/local/hive-3.1.2/conf/hive-env.sh vim /usr/local/hive-3.1.2/conf/hive-env.sh

添加hadoop目錄

HADOOP_HOME=/usr/local/hadoop-3.2.2

1.5 下載 Apache Derby(此步驟可以跳過)

cd /tmpwget http://archive.apache.org/dist/db/derby/db-derby-10.13.1.1/db-derby-10.13.1.1-bin.tar.gzsudo tar xvzf db-derby-10.13.1.1-bin.tar.gz -C /usr/local

設置Derby環境

vim ~/.bashrc export DERBY_HOME=/usr/local/db-derby-10.13.1.1-bin export PATH=$PATH:$DERBY_HOME/bin export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar source ~/.bashrc

我們需要在$ DERBY_HOME目錄中創建一個名為data的目錄來存儲Metastore數據。

sudo mkdir $DERBY_HOME/data

1.6 配置 Hive Metastore

1.6.1 配置 hive-default.xml

cp /usr/local/hive-3.1.2/conf/hive-default.xml.template /usr/local/hive-3.1.2/conf/hive-site.xml vim /usr/local/hive-3.1.2/conf/hive-site.xml

數據庫配置(可以跳過使用默認數據庫)

<!--JDBC元數據倉庫連接字符串--> <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:derby:;databaseName=metastore_db;create=true</value><description>JDBC connect string for a JDBC metastore</description> </property> <!--JDBC元數據倉庫驅動類名--> <property><name>javax.jdo.option.ConnectionDriverName</name><value>org.apache.derby.jdbc.EmbeddedDriver</value><description>Driver class name for a JDBC metastore</description> </property> <!--元數據倉庫用戶名--> <property><name>javax.jdo.option.ConnectionUserName</name><value>APP</value><description>Username to use against metastore database</description> </property> <!--元數據倉庫密碼--> <property><name>javax.jdo.option.ConnectionPassword</name><value>mine</value><description>password to use against metastore database</description> </property>

1.6.2 創建 jpox.properties 文件

創建一個名為jpox.properties的文件,并將以下行添加到其中:

javax.jdo.PersistenceManagerFactoryClass =org.jpox.PersistenceManagerFactoryImpl org.jpox.autoCreateSchema = false org.jpox.validateTables = false org.jpox.validateColumns = false org.jpox.validateConstraints = false org.jpox.storeManagerType = rdbms org.jpox.autoCreateSchema = true org.jpox.autoStartMechanismMode = checked org.jpox.transactionIsolation = read_committed javax.jdo.option.DetachAllOnCommit = true javax.jdo.option.NontransactionalRead = true javax.jdo.option.ConnectionDriverName = org.apache.derby.jdbc.ClientDriver javax.jdo.option.ConnectionURL = jdbc:derby://hadoop1:1527/metastore_db;create = true javax.jdo.option.ConnectionUserName = APP javax.jdo.option.ConnectionPassword = mine

1.6.3 Hive 文件夾授權

我們需要為Hive文件夾設置權限

sudo chown -R charles /usr/local/hive-3.1.2/

1.6.4 Metastore模式初始化

沒有初始化是會報錯

schematool -dbType <數據庫類型> -initSchema schematool -dbType derby -initSchema

如果配置有修改重新初始化

rm derby.log rm -rd metastore_db schematool -dbType derby -initSchema

1.7 啟動Hive

usr/local/hive-3.1.2/bin/hive

1.8 踏上踩坑之路

報錯1:google一個包 版本不一致

包含com.google.common.bse.Precond

hadoop和hive的兩個guava.jar版本不一致
兩個位置分別位于下面兩個目錄:

  • ls /usr/local/hive-3.1.2/lib/
  • ls /usr/local/hadoop-3.2.2/share/hadoop/common/lib/

刪除版本低的 這里不絕對

/usr/local/hadoop-3.2.2/share/hadoop/common/lib/ rm -rf /usr/local/hive-3.1.2/lib/guava-19.0.jar cp /usr/local/hadoop-3.2.2/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive-3.1.2/lib/

報錯2 未知字符

Exception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8at [row,col,system-id]: [3215,96,"file:/usr/local/hive-3.1.2/conf/hive-site.xml"] vim /usr/local/hive-3.1.2/conf/hive-site.xml +3215

刪除未知字符

報錯3 (_resources)

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Unable to create directory ${system:java.io.tmpdir}/${hive.session.id}_resources <property><name>hive.downloaded.resources.dir</name><!--<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>--><value>/home/hduser/hive/tmp/${hive.session.id}_resources</value><description>Temporary local directory for added resources in the remote file system.</description> </property>

報錯4 (%7D)

找不到路徑,需要指定聚堆路徑

Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D <property><name>hive.exec.local.scratchdir</name><!--<value>${system:java.io.tmpdir}/${system:user.name}</value>--><value>/tmp/mydir</value><description>Local scratch space for Hive jobs</description> </property>

報錯5

HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

rm -rf $HIVE_HOME/metastore_db schematool -initSchema -dbType derby

報錯 6

datanucleus.schema.aytiCreateTables <property><name>datanuleus.schema.autoCreateAll</name><value>true</value> </property>

新加屬性

<property><name>system:java.io.tmpdir</name><value>/tmp/local/hive-3.1.2/tmp</value> </property> <property><name>system:user.name</name><value>charles</value> </property>

總結

以上是生活随笔為你收集整理的Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。