环境:centos6.5 hive 1.2.1 hadoop 1.7.1 hue 3.9.0
1.首先需要安装各种依赖包
* ant
* asciidoc
* cyrus-sasl-devel
* cyrus-sasl-gssapi
* gcc
* gcc-c++
* krb5-devel
* libtidy (for unit tests only)
* libxml2-devel
* libxslt-devel
* make
* mvn (from ``maven`` package or maven3 tarball)
* mysql(可以不用安装)
* mysql-devel
* openldap-devel
* python-devel
* sqlite-devel
* openssl-devel (for version 7+)
* gmp-devel
yum install -y ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel libtidy libxml2-devel libxslt-devel make mvn openldap-devel python-devel sqlite-devel openssl-devel gmp-devel
直接用yum安装的,中间可能会报一些依赖的版本冲突问题,可以卸载已经安装的版本,然后再装。
2.下载hue代码
git clone https://github.com/cloudera/hue.git
cd hue
make apps
3.创建用户
useradd hue
如果hue和hive在同一台机器上,则直接在这台机器上创建hue用户即可,注意:这个用户一定要加到起hiveserver2的用户组下,如hadoop用户 usermod -G hadoop hue
如果不在一台机器上,想用hive最好在hue和hive这两台机器上都创建该用户。
4.创建日志文件夹
mkdir .../hue/logs
chmod 777 .../hue/logs
5.把desktop.db文件所在的文件夹和文件赋权限,当然这个要根据运行hue的用户而定,最好都改成777
当然如果你不想用splite,而使用mysql,则在后看会介绍配置方法
chmod 777 .../hue/desktop
chmod 777 .../hue/desktop/desktop.db
6.修改hadoop cluster的namenode节点的core-site.xml和hdfs-site.xml文件
core-site.xml
####################
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
####################
hdfs-site.xml
####################
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
####################
使修改生效,不需要重启集群,执行如下命令 直接用hadoop管理员账号重新加载这两个属性值
hdfs dfsadmin -refreshSuperUserGroupsConfiguration
yarn rmadmin -refreshSuperUserGroupsConfiguration
加载这两个属性
hadoop dfsadmin -fs hdfs://hadoopcluster:8020 -refreshSuperUserGroupsConfiguration
7.修改hue的配置文件 ...../hue/desktop/conf/pseudo-distributed.ini
#######################################
[hadoop]
[[hdfs_clusters]]
[[[default]]]
fs_defaultfs=hdfs://hadoopcluster:8020
webhdfs_url=http://192.168.100.10:50070/webhdfs/v1/
hadoop_conf_dir=....../hadoop-2.7.1/etc/hadoop
[[yarn_clusters]]
[[[default]]]
resourcemanager_host=192.168.100.10
resourcemanager_port=8032
history_server_api_url=http://192.168.100.10:19888
[[mapred_clusters]]
[[[default]]]
jobtracker_host=192.168.100.10
jobtracker_port=50030
submit_to=False
[beeswax]
#hive所在的机器
hive_server_host=192.168.100.11
hive_server_port=10000
server_conn_timeout=360
########################################
把配置文件中于此不相同的修改一下就可以了
8.把数据库改成mysql
1.创建数据库
mysql -uhive -p123456 -h192.168.100.11
> create database hue;
2. 修改hue配置文件,...../hue/desktop/conf/pseudo-distributed.ini
#########################
[[database]]
engine=mysql
host=192.168.100.11
port=3306
user=hive
password=123456
name=hue
#########################
3.然后创建表
1). ..../hue/build/env/bin/hue syncdb --noinput
2). ..../hue/build/env/bin/hue migrate --all
9.配置hive权限,让hue只具有查询权限
hive
> use default;
> grant select on database default to user hue;
10.修改hdfs中tmp的权限
因为当运行hive任务时,需要把中间结果卸载/tmp目录下,而运行任务的用户可能不同
hdfs dfs -chmod -R 777 /tmp
11.启动
1).首先启动hiveserver2
nohup ..../apache-hive-1.2.1-bin/bin/hiveserver2 &
2).启动hue
nohup ..../hue/build/env/bin/hue runserver 0.0.0.0:8000 &
附:如果需要多个用户使用hive查询,则需要如下:
1.首先在web页面上添加一个用户
2.在运行hue的机器上,创建该用户,并把用户组设置成hive的超级用户上,如hadoop
3.在hive中对这个用户分配查询的权限。