本篇内容主要讲解“hadoop在虚拟机rhl5上的安装方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“hadoop在虚拟机rhl5上的安装方法”吧!
#0.前期工作
虚拟机中安装redhat5,并配置主机名hostname=node1,ip=10.0.0.101,hosts列表等。
#1.使用ssh或ftp上传
由于本人使用的是mac,自带了scp命令,此处就使用了更为习惯的scp命令。
scp jdk-6u3-linux-i586-rpm.bin root@node1:/hadoop
scp hadoop-1.0.3.tar.gz root@node1:/hadoop
scp hive-0.9.0.tar.gz root@node1:/hadoop
scp MySQL-* hadoop@node1:/hadoop/mysql #MySQL-*包括以下两个文件
#MySQL-server-standard-5.0.27-0.rhel3.i386.rpm
#MySQL-client-standard-5.0.27-0.rhel3.i386.rpm
scp mysql-connector-java-5.1.22-bin.jar root@node1:/hadoop
注:上传之前先建立好相关目录。并给予hadoop所有权。详见步骤"#3安装hadoop"。
#2.安装jdk#
首先卸载redhat5自带的jdk1.4。
rpm -qa | grep gcj
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
rpm -e java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 --nodeps
然后在文件上传到的目录中执行 ./jdk-6u3-linux-i586.rpm 安装jdk1.6。
安装jdk后配置环境变量。为了方便,把之后所配置的环境变量都列在下面。
vi /etc/profile
#在末尾加上如下环境变量
export JAVA_HOME=/usr/java/jdk1.6.0_03
export CLASSPATH=.:$JAVA_HOME/lib
export HADOOP_HOME=/hadoop/hadoop-1.0.3
#去除启动时的Warning: $HADOOP_HOME is deprecated. 警告
export HADOOP_HOME_WARN_SUPPRESS=1
export HIVE_HOME=/hadoop/hive-0.9.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
保存后执行:
source /etc/profile
echo $JAVA_HOME
/usr/java/jdk1.6.0_03
#3.安装hadoop
在root权限下新建hadoop用户。
useradd hadoop
passwd hadoop #设置密码为hadoop
mkdir /hadoop
cp /root/day /hadoop #将上传的文件放到/hadoop目录下
chown hadoop:hadoop /hadoop -R #将/hadoop目录及其下所有文件权限给hadoop:hadoop用户及组
vi /etc/sudoers
#找到 root ALL=(ALL) ALL 所在行并在其下方增加如下一行
hadoop ALL=(ALL) ALL #将hadoop增加到sudo列表中
source /etc/sudoers
su hadoop #切换到hadoop用户
mark(此时最好建立ssh秘钥){
cd ~
ssh-keygen -t dsa
cat id_dsa.pub >> authorized_keys
如果hadoop用户ssh登陆到本机依然需要输入密码,则可能是秘钥文件权限有问题:
公钥文件authorized_keys的所有权必须是hadoop:hadoop,权限必须为644。
}
cd /hadoop
sudo tar -xvf hadoop-1.0.3.tar.gz #在/hadoop下解压文件
##检查解压后目录所有者权限,如果不是属于hadoop用户,则将权限给hadoop用户。
cd /hadoop/hadoop-1.0.3/conf
vi hadoop-env.sh
在文件中加上
export JAVA_HOME=/usr/java/jdk1.6.0_03
vi core-site.xml #配置如下
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/data/hadoop-${user.name}</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
vi mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
vi master
node1
vi slaves
node1
##此时可以将添加HADOOP_HOME环境变量到/etc/profile中。
hadoop namenode -format #格式化namenode
cd $HADOOP_HOME/bin
./start-all.sh
[hadoop@node1 bin]$ jps
15109 NameNode
15245 DataNode
15488 JobTracker
15660 Jps
15617 TaskTracker
15397 SecondaryNameNode
打开浏览器访问:
http://node1:50030
http://node1:50070
如果无法访问可以关掉防火墙:service iptables stop。【chkconfig iptables off】
此时hadoop搭建成功。如果要集群搭建,只需要建立好ssh、配置好ip,主机名,环境变量,配置好jdk,并将/hadoop复制到节点的机器中即可自动识别。当然如实是虚拟机,只需复制好虚拟机后更改mac地址,并配置好ip,主机名等基本信息即可。
#4.安装mysql
rpm -ivh MySQL-server-standard-5.0.27-0.rhel3.i386.rpm
rpm -ivh MySQL-client-standard-5.0.27-0.rhel3.i386.rpm
#检查服务是否启动:
sudo /sbin/service mysqld status
#如果没有启动则启动服务:
sudo /sbin/service mysqld start
#服务开机自启动:
sudo /sbin/chkconfig mysqld on
[hadoop@node1 hadoop]$ mysql #进入mysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'hive';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION;
mysql> flush privileges;
为了安装后续的hive,我们使用hive用户登入mysql,创建一个hive数据库:
create database hive;
#如果要更改mysql配置:
vi /etc/my.cnf
#如果/etc目录下没有my.cnf则可执行以下命令
cp /usr/share/mysql/my-mediu.cnf /etc/my.cnf
#5.安装hive
cd /hadoop
tar -xvf hive-0.9.0.tar.gz
cp mysql-connector-java-5.1.22-bin.jar hive-0.9.0/lib
cd hive-0.9.0/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j.properties.template hive-log4j.properties
vi hive-log4j.properties
找到参数项 log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
将这一项的值修改为: org.apache.hadoop.log.metrics.EventCounter。
如此则可以消除Hive警告:WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated。
vi hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.100:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>:
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
cd /hadoop/hive-0.9.0/bin
./hive
show tables;
###如果提示FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Access denied for user 'hive'@'node1' (using password: YES)。则应该是登陆mysql发生错误。检查hive用户的登陆权限,是否可以在本机登陆。
[hadoop@node1 bin]$mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'node1' IDENTIFIED BY 'hive' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
###如果显示:
OK
Time taken: 4.029 second
则hive安装成功。
## 启动hive server
hive --service hiveserver 10001 &
###测试
[hadoop@node1 bin]$ netstat -nap | grep 10001
tcp 0 0 :::10001 :::* LISTEN 22552/java
## 启动内置的Hive UI
hive --service hwi &
###测试
[hadoop@node1 bin]$ netstat -nap | grep 9999
tcp 0 0 :::9999 :::* LISTEN 22908/java
启动浏览器打开地址:http://node1:9999/hwi
下面是一个已在vmware上部署好的虚拟机文件,相关配置及用户密码在虚拟机快照简介里:
http://pan.baidu.com/s/1mg5eJRa
到此,相信大家对“hadoop在虚拟机rhl5上的安装方法”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!