Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑
導(dǎo)讀:作為大數(shù)據(jù)界的萌新,這篇文章的寫作過程,經(jīng)歷了各種阻撓,也踩了無數(shù)坑,俗話說面向CSDN、度娘編程,然后多看官方文檔,在遇到各種神奇的坑的時(shí)候,搜著搜著就到了國外,剎那間一大堆英文向你飛來,就知道有一定的英語底子是多么重要。開源精神我們一直會(huì)堅(jiān)持下去,將自己的學(xué)習(xí)筆記拿出來供新人學(xué)習(xí),希望能給更多的朋友帶來幫助。
文章目錄
- 1.1 前提
- 1.2 配置 Hive 環(huán)境變量
- 1.3 創(chuàng)建 Hive 倉庫目錄
- 1.4 配置 hive-env.sh
- 1.5 下載 Apache Derby(此步驟可以跳過)
- 1.6 配置 Hive Metastore
- 1.6.1 配置 hive-default.xml
- 1.6.2 創(chuàng)建 jpox.properties 文件
- 1.6.3 Hive 文件夾授權(quán)
- 1.6.4 Metastore模式初始化
- 1.7 啟動(dòng)Hive
- 1.8 踏上踩坑之路
- 報(bào)錯(cuò)1:google一個(gè)包 版本不一致
- 報(bào)錯(cuò)2 未知字符
- 報(bào)錯(cuò)3 (_resources)
- 報(bào)錯(cuò)4 (%7D)
- 報(bào)錯(cuò)5
- 報(bào)錯(cuò) 6
- 新加屬性
1.1 前提
配置hive之前 需要將hadoop配置好
1.2 配置 Hive 環(huán)境變量
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 ~/.bashrc1.3 創(chuàng)建 Hive 倉庫目錄
另外,我們必須使用下面的HDFS命令創(chuàng)建/ tmp和/ user / hive / warehouse(又名hive.metastore.warehouse.dir),并將它們?cè)O(shè)置為chmod g + w,然后才能在Hive中創(chuàng)建表:
在HDFS中新建/tmp 和 /usr/hive/warehouse 兩個(gè)文件目錄,并對(duì)同組用戶增加寫權(quán)限。
其他方法
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/warehouse1.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.21.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設(shè)置Derby環(huán)境
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目錄中創(chuàng)建一個(gè)名為data的目錄來存儲(chǔ)Metastore數(shù)據(jù)。
sudo mkdir $DERBY_HOME/data1.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數(shù)據(jù)庫配置(可以跳過使用默認(rèn)數(shù)據(jù)庫)
<!--JDBC元數(shù)據(jù)倉庫連接字符串--> <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元數(shù)據(jù)倉庫驅(qū)動(dòng)類名--> <property><name>javax.jdo.option.ConnectionDriverName</name><value>org.apache.derby.jdbc.EmbeddedDriver</value><description>Driver class name for a JDBC metastore</description> </property> <!--元數(shù)據(jù)倉庫用戶名--> <property><name>javax.jdo.option.ConnectionUserName</name><value>APP</value><description>Username to use against metastore database</description> </property> <!--元數(shù)據(jù)倉庫密碼--> <property><name>javax.jdo.option.ConnectionPassword</name><value>mine</value><description>password to use against metastore database</description> </property>1.6.2 創(chuàng)建 jpox.properties 文件
創(chuàng)建一個(gè)名為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 = mine1.6.3 Hive 文件夾授權(quán)
我們需要為Hive文件夾設(shè)置權(quán)限
sudo chown -R charles /usr/local/hive-3.1.2/1.6.4 Metastore模式初始化
沒有初始化是會(huì)報(bào)錯(cuò)
schematool -dbType <數(shù)據(jù)庫類型> -initSchema schematool -dbType derby -initSchema如果配置有修改重新初始化
rm derby.log rm -rd metastore_db schematool -dbType derby -initSchema1.7 啟動(dòng)Hive
usr/local/hive-3.1.2/bin/hive1.8 踏上踩坑之路
報(bào)錯(cuò)1:google一個(gè)包 版本不一致
包含com.google.common.bse.Precondhadoop和hive的兩個(gè)guava.jar版本不一致
兩個(gè)位置分別位于下面兩個(gè)目錄:
- ls /usr/local/hive-3.1.2/lib/
- ls /usr/local/hadoop-3.2.2/share/hadoop/common/lib/
刪除版本低的 這里不絕對(duì)
/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/報(bào)錯(cuò)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刪除未知字符
報(bào)錯(cuò)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>報(bào)錯(cuò)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>報(bào)錯(cuò)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報(bào)錯(cuò) 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>總結(jié)
以上是生活随笔為你收集整理的Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WARN util.NativeCode
- 下一篇: 微信小程序 文字居中