hive使用與注意事項:http://blog.csdn.net/stark_summer/article/details/44222089
連接命令:beeline -n root -u jdbc:hive2://10.149.11.215:10000
退格亂碼解決:http://www.cnblogs.com/BlueBreeze/p/4232369.html
1,安裝好hadoop
2,下載hive
http://mirror.bit.edu.cn/apache/hive/hive-2.0.1/
hadoop2.6.2
1.7.0_80
3,配置:
啟動單機模式
Hive和Hadoop一樣,有3種啟動模式,分別是單機模式,偽分布模式,分布模式。這里先來說一下單機模式的啟動方式。
mv apache-hive-2.0.1-bin hive-2.0.1
vi hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/usr/bigdata/hive-2.0.1/warehouse</value> <description>location of default database for the warehouse</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:/usr/bigdata/hive-2.0.1/metastore_db;create=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> </configuration>
4,環境變量:
vi /etc/profile
HIVE_HOME=/usr/bigdata/hive-2.0.1
PATH=$PATH:$HIVE_HOME/bin
5,初始化數據庫
schematool -initSchema -dbType derby
出現以下幾行說明初始化成功:
Starting metastore schema
initialization to 2.0.0
Initialization script hive-schema-2.0.0.derby.sql
Initialization script completed
schemaTool completed
6,
啟動程序
mkdir -p /usr/bigdata/hive-2.0.1/warehouse
chmod a+rwx /usr/bigdata/hive-2.0.1/warehouse
hive
如果出現hive>
提示符則說明啟動成功
5. 常見錯誤
5.1 運行hive時出現
Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)
錯誤原因: 數據庫沒有初始化,請參照4.2
5.2 使用schematool初始化數據庫時出現
Initialization script hive-schema-2.0.0.derby.sql Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! *** schemaTool failed ***
錯誤原因:數據庫文件夾中已經存在一些文件,解決方法就是清空數據庫文件夾(也就是前面配置的/opt/hive-2.0.0/metastore_db
文件夾)
HIVE基本使用:
http://blog.csdn.net/f328310543/article/details/42682685
hive-env.xml cp hive-env.sh.template hive-env.sh $HIVE_HOME/bin的hive-env.sh,增加以下四行 export HADOOP_HOME=/usr/local/hadoop-2.6.0 export HIVE_HOME=/usr/local/hive-1.2.1 export JAVA_HOME=/usr/local/jdk1.7.0_80
拷貝mysql鏈接驅動到 hive/lib下面
HIVE 元數據mysql保存配置 hive-site.xml <property> <name>hive.metastore.warehouse.dir</name> <value>/usr/bigdata/hive-2.0.1/warehouse</value> <description>location of default database for the warehouse</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value><!-- In my case UserName is hadoop--> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value><!-- In my case password is hadoop--> </property>
啟動hive服務:
hive --service metastore &
hive --service hiveserver &
高版本用:
hive --service hiveserver2 &
hive 的metadata從1.0升級到2.0 數據遷移
hive/scripts/metastore/upgrade