首页 > 技术文章 > 安装Hadoop2.7和hive2.0以及redis

qwj-sysu 2016-05-17 16:04 原文

安装过程很简单,主要记录期间碰到的问题:

安装过程:

下载安装包:

hadoop:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

hive:http://mirror.bit.edu.cn/apache/hive/hive-2.0.0/apache-hive-2.0.0-bin.tar.gz

redis:http://download.redis.io/releases/redis-3.0.7.tar.gz

解压:

tar-zxvf xx.gz

配置用户配置文件:mac我的是~/.bash_profile,ubuntu是~/.bashrc,配置完source一下

hadoop和redis的配置这些就OK了,其他的使用步奏参照官网的步奏

# java
export JAVA_HOME=/opt/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
# hadoop
export HADOOP_HOME=/opt/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin

#hive
export HIVE_HOME=/opt/hive-2.0.0-bin
export PATH=$PATH:$HIVE_HOME/bin

redis:需要./configure,make ,make install这些步骤就可以了。

下面主要记录遇到问题:

1:Hadoop支持平台问题:Hadoop本地库不支持mac,一开始捣鼓了好久也没成功,想本地编译也是各种问题,所以,最后就忍受一下每次运行的时候的没有本地库的警告

2:hive 碰到问题可能无关hive,比如:hive获取Hadoop版本号的时候用到awk,碰巧awk报错了

awk: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined symbol: UP

是awk链接库的问题,报错的最新的so文件,把最新的so文件删掉就可以了

ubuntu@ubuntu:~$ ldconfig -p |grep libreadline
    libreadline.so.6 (libc6,x86-64) => /usr/local/lib/libreadline.so.6
    libreadline.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.6
    libreadline.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.5
    libreadline.so (libc6,x86-64) => /usr/local/lib/libreadline.so
ubuntu@ubuntu:~$ ll ldconfig -p |grep libreadline
ls: cannot access 'ldconfig': No such file or directory
ubuntu@ubuntu:~$ ll /usr/local/lib/ |grep libreadline
-rw-r--r--  1 root   root    1452584 May 16 11:10 libreadline.a
lrwxrwxrwx  1 root   root         16 May 16 11:10 libreadline.so -> libreadline.so.6*
lrwxrwxrwx  1 root   root         18 May 16 11:10 libreadline.so.6 -> libreadline.so.6.3*
-r-xr-xr-x  1 root   root     826584 May 16 11:10 libreadline.so.6.3*
ubuntu@ubuntu:~$ ll /lib/x86_64-linux-gnu/ |grep libreadline
lrwxrwxrwx  1 root root      18 Feb  7 18:11 libreadline.so.5 -> libreadline.so.5.2
-rw-r--r--  1 root root  249144 Feb  7 18:11 libreadline.so.5.2
lrwxrwxrwx  1 root root      18 May 14 18:03 libreadline.so.6 -> libreadline.so.6.3
-rw-r--r--  1 root root  282392 Feb  5 01:18 libreadline.so.6.3
ubuntu@ubuntu:~$ sudo mv /usr/local/lib/libreadline.so.6 /usr/local/lib/libreadline.so.6.bak

这样就不会报awk的错了

Hive metastore database is not initialized. Please use schematool

这个问题具体的原因应该是当前目录下的metastore_db/没有被初始化,可以对其进行重命名或者删除后,运行

schematool -initSchema -dbType derby

Derby是Apache的一个数据库,可以作为hive的默认值,我设置为mysql的时候报错,估计想设置为mysql估计要配置一些东西。

这样Hadoop和hive都可以正常使用了。

安装redis的时候碰到一个坑,也可以说是自己想复杂了,redis 依赖挺多东西的,但redis安装包里面都自带了,并且,重要的事情说三遍:redis都自带了,并且都不需要安装,只需要make(jemalloc还需configure一下),不需要install,不需要install,不需要install

ubuntu@ubuntu:~$ ls /opt/redis-3.0.7/deps/
hiredis  jemalloc  linenoise  lua  

基本就这么多,走过的路总是觉得很平坦,前面的路总是觉得很崎岖。

 

推荐阅读