在此之前,接触了hadoop,在本地安装遇到了好多坑,这里简单讲一下安装过程和常见错误。
一、安装环境
环境:centos6.5虚拟机
ip:192.168.217.133
用户:root
安装了 mysq数据库
二、安装JDK
需要安装JAVA环境,所以首先安装JDK,这里用到的是jdk-9.0.1版本。
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 找到对应下载即可
1、查看主机是否安装了jdk
[root@Master ~]# rpm -qa |grep java
如果安装了,可以用rpm -e 删除重新下载使用。
2、安装jdk
rpm -ivh jdk-9.0.1_linux-x64_bin.rpm
3、修改/etc/profile环境,(前提查看jdk的安装路径,一般在/usr/java/ 底下。)
vim /etc/profile
添加如下:
export JAVA_HOME=/usr/java/jdk-9.0.1
export PATH=$PATH:$JAVA_HOME/bin
保存退出
使用 sourch /etc/profile 使配置生效。
4、查看安装成功
[root@Master conf]# java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
如果出现如上所示则jdk安装成功。
三、安装hadoop
这里使用的是hadoop-1.2.1.tar.gz版本
下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
1、下载
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
2、解压进目录/opt/ (目录随意,也可自建)
tar -zxf hadoop-1.2.1.tar.gz -C /opt/
3、配置hadoop
cd /opt/hadoop-1.2.1/conf
主要配置4个文件:mapred-site.xml、core-site.xml、 hdfs-site.xml、hadoop-env.sh
vim mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>Master:9001</value>
</property>
</configuration>
vim core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/name</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>-
<name>dfs.data.dir</name>
<value>/hadoop/data</value>
</property>
</configuration>
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk-9.0.1/ 只添加这一行 JAVA路径。
4、修改/etc/profile环境
export HADOOP_HOME=/opt/hadoop-1.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
保存退出
source /etc/profile 使文件生效。
5、测试是否安装成功
[root@Master conf]# hadoop fs -ls /
Warning: $HADOOP_HOME is deprecated.
drwxr-xr-x - root supergroup 0 2017-10-19 11:00 /hadoop
出现如上表示成功。
6、启动hadoop
使用jps查看
[root@Master ~]# jps
2391 Jps
没有进程。
进入hadoop执行目录
# cd /opt/hadoop-1.2.1/bin
# start-all.sh 执行即可
执行过程中会提示你输入主机密码还几次,输入即可,如果不想输入,给主机设置ssh免密登录,不会的话网上一大堆这里就不多说了。
7、检测启动状态
使用jps命令查看
[root@Master bin]# jps
2642 TaskTracker
4132 Jps
2423 SecondaryNameNode
2266 DataNode
2155 NameNode
2507 JobTracker
出现如上进程说明安装成功。
四、安装hive
下载地址:http://archive.apache.org/dist/hive/hive-0.9.0/hive-0.9.0-bin.tar.gz
1、下载软件
wget http://archive.apache.org/dist/hive/hive-0.9.0/hive-0.9.0-bin.tar.gz
解压进OPT目录
tar -zxf hive-0.9.0-bin.tar.gz -C /opt/
2、进入conf目录修改配置内容
cd /opt/hive-0.9.0-bin/conf
hive-env.sh文件只有模板,所以首先我们复制一份模板使用
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
添加如下一行hadoop家目录
HADOOP_HOME=/opt/hadoop-1.2.1
vim hive-site.xml
添加如下配置:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
</configuration>
3、修改/etc/profile环境
export HIVE_HOME=/opt/hive-0.9.0-bin
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH ##这是JDK、Hadoop、Hive三个的结合,只要这一条即可。
保存退出
source /etc/profile 使文件生效。
4、启动hive
[root@Master ~]# hive
hive>
进入成功。
以下部分讲一下hive启动的几个失败点:
1、Caused by: java.net.ConnectException: Connection refused (Connection refused)
这种情况是连接失败,mysql服务没有启动,启动即可。
2、Caused by: org.datanucleus.exceptions.NucleusException: The java type java.lang.Integer (jdbc-type="", sql-type="") cant be mapped for this datastore. No mapping is available.
错误与linux框的语言设置有关,在/etc/profile文件中添加如下一行:
export LANG=C 启动即可.
3、Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "BONECP" plugin to create a ConnectionPool gave an error : The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver
这种错误属于缺少连接数据库的JAR包,下载:mysql-connector-java-5.1.44-bin.jar
下载地址:https://dev.mysql.com/downloads/connector/j/
把下载的jar包,放入/opt/hive-0.9.0-bin/lib 底下即可成功启动。
4、Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
出现这种错误是mysql密码错误,改成正确密码即可,(本机的mysql用户名和密码都是root)
5、如果出现没有权限的问题,进入数据库:
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6、Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported i
出现原因:NameNode挂了,或者是两个NN都是standBy状态。
解决办法:重启namenode,让其恢复到正常状态。
其他的启动错误基本都很简单,查看报错基本都可解决,大家有什么不能解决的错误,提出来一起看一下,谢谢浏览。
|
|