hadoop,hbase,zookeeper安裝好了,如今來安裝hivejava
hadoop 版本:2.8.4mysql
hbase 版本:2.1.3linux
hive 版本:2.3.4sql
zookeeper 版本:3.4.13數據庫
1.hive下載:http://mirrors.shu.edu.cn/apache/hive/apache
2.上傳到linux解壓windows
3.配置環境變量ide
vi /etc/profileoop
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;