安装过程很简单,主要记录期间碰到的问题:
安装过程:
下载安装包:
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
基本就这么多,走过的路总是觉得很平坦,前面的路总是觉得很崎岖。