《Programming Hive》读书笔记(一)Hadoop和hive环境搭建
Chapter 1.Introduction 简单介绍
Chapter 2.Getting Started 环境配置
Hadoop版本号会更新,以官方安装教程为准
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation
For most of the book, it won’t matterwhich mode you’re using. We’llassume you’re
working on a personal machine in local mode and we’ll discussthe cases where the
mode matters.
When working with small data sets, usinglocal mode execution
will make Hive queries much faster. Settingthe property set
hive.exec.mode.local.auto=true;willcause Hive to use this mode more
aggressively, even when you are runningHadoop in distributed or pseudodistributed
mode. To always use this setting, add thecommand to
your $HOME/.hiverc file (see “The.hiverc File” on page 36).
对于Hadoop的不同模式,他们在不同的使用情境下性能也是各异的。
少量的数据,用local mode模式性能会更好。
两个Hadoop程序样例:
1 hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jarwordcount input output
这是wordcount词频统计程序。
2 hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jargrep input output 'dfs[a-z.]+'
这是grep程序,类似linux下的命令。
当中,input为输入文件夹,output为输出文件夹。输入文件夹须要先创建,输出文件夹不须要创建,且不能已存在。
Hive的官方安装
https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallingHivefromaStableRelease
事实上Hadoop和hive的安装就是解压和配置环境变量。
只是hive须要创建两个文件夹才干正确执行
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
不用hdfs也能够,本地模式直接创建。
另外mkdir须要加上-p才干一次创建多层文件夹
Linux须要注意的是,你用普通用户执行hive,假设hive程序须要在某些文件夹创建文件或者文件夹可是没有权限,那么就会执行出错。
比方上面的tmp和warehouse文件夹。
还有,在当前文件夹执行hive命令,
会自己主动在当前文件夹创建
-rw-rw-r-- 1 linger linger 678 Nov 12 00:03derby.log
drwxrwxr-x 5 linger linger 4096 Nov 12 00:03 metastore_db/
一个文件,一个文件夹。
假设hive在当前文件夹没有创建的权限。又会出错。
另外发现/etc/profile是用户登录时会自己主动生效的,
暂时生效办法能够 source /etc/profile。
另外,root没有登录。所以注销或者重新启动后,sudo su进入root,发现/etc/profile还是没有生效,眼下的解决方法是用source了。
只是能用普通用户先用普通用户。用普通用户得注意权限不足的问题。
额外资料:
http://wangshuxing123-126-com.iteye.com/blog/695653
chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。
通常是三个数字:
第一个数字表示文件全部者的权限
第二个数字表示与文件全部者同属一个用户组的其它用户的权限
第三个数字表示其他用户组的权限。
权限分为三种:读(r=4),写(w=2),运行(x=1) 。
综合起来还有可读可运行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可运行(rwx=7=4+2+1)。
1.文件全部者可读可写可运行 --7
2.与文件全部者同属一个用户组的其它用户可读可运行 --5
3.其他用户组可读可运行 --5
常见使用方法:
Chmod –R 777 target_dir
Chmod –R 755 target_dir