hive单机部署
hadoop,hbase,zookeeper安裝好了,現在來安裝hive
hadoop 版本:2.8.4
hbase 版本:2.1.3
hive 版本:2.3.4
zookeeper 版本:3.4.13
?
1.hive下載:http://mirrors.shu.edu.cn/apache/hive/
?
2.上傳到linux解壓
?
3.配置環境變量
vi /etc/profile
?
export HIVE_HOME=/hive
把$HIVE_HOME/bin:$PATH加到path中去
?
>hive --version 就能看到hive版本
安裝成功
?
4.配置
進入/hive/conf目錄
vi hive-site.xml ?配置hive-site.xml文件,沒有復制一份
在hive-site.xml中加以下配置,不然報錯:java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:us
<property><name>system:java.io.tmpdir</name><value>/tmp/hive/java</value></property><property><name>system:user.name</name><value>${user.name}</value></property>將里面一些system....路徑的value,全部改成/tmp/hive/iotmp
?
vi hive-env.xml,配置hive-env.xml,沒有復制一份,加以下內容
export HADOOP_HOME=/hadoop/hadoop-2.8.4 export HIVE_CONF_DIR=/hive/conf
>hive 進入hive命令行
能進入hive命令行,但是提示版本不匹配
?
但網上別人也提示這個,可以正常使用
說是hive要有一個數據庫來存儲它的元數據,默認是使用derby,也有使用mysql,大多使用mysql,我也使用mysql配置
在/hive/conf/hive-site.xml文件中加以下內容:
<property><name>javax.jdo.option.ConnectionUserName</name> //用戶名(這4是新添加的,記住刪除配置文件原有的哦!)<value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name> //密碼<value>123456</value></property><property><name>javax.jdo.option.ConnectionURL</name> //mysql<value>jdbc:mysql://192.168.1.136:3306/hive</value></property><property><name>javax.jdo.option.ConnectionDriverName</name> //mysql驅動程序<value>com.mysql.jdbc.Driver</value></property>
配置后,把mysql驅動包拷貝到/hive/lib/下
在/hive/bin下執行:
> schematool -dbType mysql -initSchema 將hive元數據格式化一下?
?
hive元數據保存在內嵌的 Derby 數據庫中,只能允許一個會話連接,只適合簡單的測試。為了支持多用戶多會話,則需要一個獨立的元數據庫,我們使用 MySQL 作為元數據庫,Hive 內部對 MySQL 提供了很好的支持,配置一個獨立的元數據庫需要增加以下幾步驟:
1)安裝mysql服務端和客戶端,這個在我本機上安裝好了
2)安裝hive,也安裝好了
3)為Hive建立相應的MySQL賬戶,并賦予足夠的權限,執行命令如下:
發現hive-site.xml配置文件,原本有derby數據庫的配置信息,沒有刪除掉,我們只是在上面加了mysql的配置,derby的配置沒有注釋掉,注釋掉,再格式化
還是不行,
報錯信息不一樣了,使用的是我配置的mysql數據庫
網上說是用戶權限不足,繼續:
我的mysql是安裝在我本地windows機器上,cmd
> cd C:\Program Files\MySQL\MySQL Server 5.5\bin ? ?進入mysql安裝目錄
> mysql -hlocalhost -uroot -p
>??select user,host from mysql.user where user='root';\
?
?>?grant all privileges on *.* to 'root'@'192.168.1.166' identified by '123456'; ?授權
>?flush privileges;
?
> net stop mysql; ?先關閉mysql
> net start mysql; ?再重啟mysql
再在/hive/bin 下執行格式化
成功了
?> show databases;
?
轉載于:https://www.cnblogs.com/ngy0217/p/10619837.html
總結
- 上一篇: 美国热搜 “1个字形容2020年”:IB
- 下一篇: 双十一我们在作战室干什么?零点刚过,我偷