安装hadoop和hive时候遇到的问题及解决方法
2016-07-07 17:11
495 查看
#-----------------------------------------------------------------
# 安装JDK
1. 查看并卸载Linux自带的JDK
安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息:
java version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
安装jdk的时候会提示:
修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题
1、在64系统里执行32位程序如果出现/lib/ld-linux.so.2:
bad ELF interpreter: No such file or directory,安装下glic即可
sudo yum install glibc.i686
先查看 rpm -qa | grep java
显示如下信息:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
卸载:
rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
2. 安装JDK
解压jdk.tar.gz文件成目录,如jdk1.8.0_45
mkdir /usr/java
cp jdk1.8.0_45 /usr/java
chown -R shawn:shawn java
ln -s ./jdk1.8.0_45/ jdk
3. 配置JDK
export JAVA_HOME=/usr/java/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
update-alternatives --install /usr/bin/java java /usr/java/jdk/bin/java 60
update-alternatives --config java
#-----------------------------------------------------------------
# 安装SSH
$ ssh-keygen -t rsa -P ''
...
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
...
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost
如果登录始终需要输入密码,请运行下面命令
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#----------------------------------
# 安装Hadoop
1. 使用root用户,创建cloud目录,并解压hadoop
cd /usr/local
mkdir cloud
tar zxvf hadoop-2.6.0.tar.gz
ln –s hadoop-2.6.0 hadoop
2. 配置/etc/profile
#set hadoop env
export HADOOP_HOME=/usr/local/cloud/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3. 配置etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk
export HADOOP_HOME=/usr/local/cloud/hadoop
4. 配置etc/hadoop/core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/cloud/hadoop/tmp</value>
<description></description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
5. 配置etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/cloud/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/cloud/hadoop/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:/usr/local/cloud/hadoop/dfs/sname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value> file:/usr/local/cloud/hadoop/dfs/sname</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
注:SecondaryNameNode存放FSImage和EditsLog的目录分别由配置文件中的fs.checkpoint.dir项和fs.checkpoint.edits.dir项来设置,然后会分别对这两类目录进行检查和恢复
6. 配置etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
注:旧版的mapreduce在这里面是要配置以下内容的:
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.1.2:9001</value>
</property>
新框架中已改为Yarn-site.xml中的resouceManager及nodeManager具体配置项,新框架中历史job的查询已从Jobtracker剥离,归入单独的mapreduce.jobtracker.jobhistory相关配置,
所以这里不需要配置这个选项。在yarn-site.xml配置相关属性即可。
7. 配置etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
8. 创建相应目录
cd /usr/local/cloud/hadoop
mkdir –p ./dfs/name
mkdir –p ./dfs/data
mkdir –p ./dfs/sname
9. 格式Namenode
hdfs namenode -format
10. 启动Hadoop服务
start-dfs.sh
start-yarn.sh
hduser@ubuntu40:~$ jps
If everything is sucessful, you should see following services running
2583 DataNode
2970 ResourceManager
3461 Jps
3177 NodeManager
2361 NameNode
2840 SecondaryNameNode
11. 监控UI
http://localhost:50070/ http://localhost:8088/
#-----------------------------------------------------------------
# 编译hadoop2.6.0的eclipse插件
git clone https://github.com/winghc/hadoop2x-eclipse-plugin.git
cd src/contrib/eclipse-plugin
# eclipse.home 和 hadoop.home 设置成你自己的环境路径
ant jar -Dversion=2.6.0 -Declipse.home=/usr/local/eclipse -Dhadoop.home=/usr/local/hadoop-2.6.0
注:需要手动安装的eclipse,通过命令行一键安装的不行
# 生成的位置
Building jar: /home/hunter/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar
# 安装插件
1. 打开eclipse的用户最好是hadoop的管理员,也就是hadoop安装时设置的那个用户,否则会出现拒绝读写权限问题。
2. 复制编译好的jar到eclipse插件目录,重启eclipse
3. 配置 hadoop 安装目录
window ->preference -> hadoop Map/Reduce -> Hadoop installation directory
4. 配置Map/Reduce 视图
window ->Open Perspective -> other->Map/Reduce -> 点击“OK”
windows → show view → other->Map/Reduce Locations-> 点击“OK”
5. 控制台会多出一个"Map/Reduce Locations"的Tab页。在"Map/Reduce Locations"Tab页 点击图标<大象+>或者在空白的地方右键,
选择"New Hadoop location…",弹出对话框"New hadoop location…",配置如下内容:将ha1改为自己的hadoop用户。
MR Master -- Host:localhost Port:9001 DFS Master -- Host:localhost Port:9000
Location name :随便取个名字 比如 hadoop2.2.0
Map/Reduce(V2) Master :根据hdfs-site.xml中配置dfs.datanode.ipc.address的值填写
DFS Master: Name Node的IP和端口,根据core-site.xml中配置fs.defaultFS的值填写
1. 把Hive移动到/usr/local/cloud/目录下并解压
2. ln -s apache-hive-1.2.0-bin/ hive
3. 修改配置文件
3.1 修改文件名,去掉template
hive-default.xml.template
hive-env.sh.template
hive-exec-log4j.properties.template
hive-log4j.properties.template
3.2 /etc/profile
export HIVE_HOME=/usr/local/cloud/hive
export PATH=$PATH:$HIVE_HOME/bin
3.3 hive-env.sh
HADOOP_HOME=/usr/local/cloud/hadoop
export HIVE_CONF_DIR=/usr/local/cloud/hive/conf
4. 启动Hive:
直接运行hive
5. 测试
运行show tables; 有OK出现表示安装成功。
问题解答:
1. “Found class jline.Terminal, but interface was expected”
这个错误表示hive用的jline.jar与hadoop下的jline.jar版本不一致
将hive下的拷贝到hadoop中
# 安装JDK
1. 查看并卸载Linux自带的JDK
安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息:
java version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
安装jdk的时候会提示:
修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题
1、在64系统里执行32位程序如果出现/lib/ld-linux.so.2:
bad ELF interpreter: No such file or directory,安装下glic即可
sudo yum install glibc.i686
先查看 rpm -qa | grep java
显示如下信息:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
卸载:
rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
2. 安装JDK
解压jdk.tar.gz文件成目录,如jdk1.8.0_45
mkdir /usr/java
cp jdk1.8.0_45 /usr/java
chown -R shawn:shawn java
ln -s ./jdk1.8.0_45/ jdk
3. 配置JDK
export JAVA_HOME=/usr/java/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
update-alternatives --install /usr/bin/java java /usr/java/jdk/bin/java 60
update-alternatives --config java
#-----------------------------------------------------------------
# 安装SSH
$ ssh-keygen -t rsa -P ''
...
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
...
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost
如果登录始终需要输入密码,请运行下面命令
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#----------------------------------
# 安装Hadoop
1. 使用root用户,创建cloud目录,并解压hadoop
cd /usr/local
mkdir cloud
tar zxvf hadoop-2.6.0.tar.gz
ln –s hadoop-2.6.0 hadoop
2. 配置/etc/profile
#set hadoop env
export HADOOP_HOME=/usr/local/cloud/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3. 配置etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk
export HADOOP_HOME=/usr/local/cloud/hadoop
4. 配置etc/hadoop/core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/cloud/hadoop/tmp</value>
<description></description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
5. 配置etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/cloud/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/cloud/hadoop/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:/usr/local/cloud/hadoop/dfs/sname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value> file:/usr/local/cloud/hadoop/dfs/sname</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
注:SecondaryNameNode存放FSImage和EditsLog的目录分别由配置文件中的fs.checkpoint.dir项和fs.checkpoint.edits.dir项来设置,然后会分别对这两类目录进行检查和恢复
6. 配置etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
注:旧版的mapreduce在这里面是要配置以下内容的:
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.1.2:9001</value>
</property>
新框架中已改为Yarn-site.xml中的resouceManager及nodeManager具体配置项,新框架中历史job的查询已从Jobtracker剥离,归入单独的mapreduce.jobtracker.jobhistory相关配置,
所以这里不需要配置这个选项。在yarn-site.xml配置相关属性即可。
7. 配置etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
8. 创建相应目录
cd /usr/local/cloud/hadoop
mkdir –p ./dfs/name
mkdir –p ./dfs/data
mkdir –p ./dfs/sname
9. 格式Namenode
hdfs namenode -format
10. 启动Hadoop服务
start-dfs.sh
start-yarn.sh
hduser@ubuntu40:~$ jps
If everything is sucessful, you should see following services running
2583 DataNode
2970 ResourceManager
3461 Jps
3177 NodeManager
2361 NameNode
2840 SecondaryNameNode
11. 监控UI
http://localhost:50070/ http://localhost:8088/
#-----------------------------------------------------------------
# 编译hadoop2.6.0的eclipse插件
git clone https://github.com/winghc/hadoop2x-eclipse-plugin.git
cd src/contrib/eclipse-plugin
# eclipse.home 和 hadoop.home 设置成你自己的环境路径
ant jar -Dversion=2.6.0 -Declipse.home=/usr/local/eclipse -Dhadoop.home=/usr/local/hadoop-2.6.0
注:需要手动安装的eclipse,通过命令行一键安装的不行
# 生成的位置
Building jar: /home/hunter/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar
# 安装插件
1. 打开eclipse的用户最好是hadoop的管理员,也就是hadoop安装时设置的那个用户,否则会出现拒绝读写权限问题。
2. 复制编译好的jar到eclipse插件目录,重启eclipse
3. 配置 hadoop 安装目录
window ->preference -> hadoop Map/Reduce -> Hadoop installation directory
4. 配置Map/Reduce 视图
window ->Open Perspective -> other->Map/Reduce -> 点击“OK”
windows → show view → other->Map/Reduce Locations-> 点击“OK”
5. 控制台会多出一个"Map/Reduce Locations"的Tab页。在"Map/Reduce Locations"Tab页 点击图标<大象+>或者在空白的地方右键,
选择"New Hadoop location…",弹出对话框"New hadoop location…",配置如下内容:将ha1改为自己的hadoop用户。
MR Master -- Host:localhost Port:9001 DFS Master -- Host:localhost Port:9000
Location name :随便取个名字 比如 hadoop2.2.0
Map/Reduce(V2) Master :根据hdfs-site.xml中配置dfs.datanode.ipc.address的值填写
DFS Master: Name Node的IP和端口,根据core-site.xml中配置fs.defaultFS的值填写
1. 把Hive移动到/usr/local/cloud/目录下并解压
2. ln -s apache-hive-1.2.0-bin/ hive
3. 修改配置文件
3.1 修改文件名,去掉template
hive-default.xml.template
hive-env.sh.template
hive-exec-log4j.properties.template
hive-log4j.properties.template
3.2 /etc/profile
export HIVE_HOME=/usr/local/cloud/hive
export PATH=$PATH:$HIVE_HOME/bin
3.3 hive-env.sh
HADOOP_HOME=/usr/local/cloud/hadoop
export HIVE_CONF_DIR=/usr/local/cloud/hive/conf
4. 启动Hive:
直接运行hive
5. 测试
运行show tables; 有OK出现表示安装成功。
问题解答:
1. “Found class jline.Terminal, but interface was expected”
这个错误表示hive用的jline.jar与hadoop下的jline.jar版本不一致
将hive下的拷贝到hadoop中
相关文章推荐
- 运行中hadoop任务修改/kill
- Elasticsearch 2.3.3 安装 centos 7
- Apache Apex
- BSP-Apache HAMA-Graph运行(3)
- shell中保证数值的位宽,不足补零
- linux 下查询端口及杀死进程命令
- centos 下nginx 单ip多站点多域名配置 二级域名
- ECshop缓存机制
- Linux下安装mysql-python组件
- 「Jenkins+Git+Maven+Shell+Tomcat持续集成」经典教程
- Docker从入门到实践笔记一
- Linux基础命令
- Parallels 10(v10.40) ubuntu desktop 14.04.4 无法安装Parallels tools
- Linux中Samba详细安装
- 双系统centos的安装,win7的启动项消失的解决方法
- java利用Jsch实现在windows平台远程操作linux服务器
- shell脚本之批量添加用户
- Hadoop学习过程知识积累
- 服务器 centos7 最少安装后常用命令
- sizeof与strlen的注意事项