设为首页 收藏本站
查看: 911|回复: 0

[经验分享] hadoop+hive+sqoop安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-23 09:32:46 | 显示全部楼层 |阅读模式
1.        软件部署步骤
1.1.        Hadoop安装部署
1.1.1安装前的准备
hadoop-1.0.4.tar.gz
jdk-6u35-linux-x64-rpm.bin
2台suse Linux主机
hadoop0-NameNode 192.168.0.11
hadoop1-DataNode 192.168.0.13

1.1.2安装部署
首先安装JDK
chmod +x jdk-6u35-linux-x64-rpm.bin
./jdk-6u35-linux-x64-rpm.bin
在/etc/profile的最后添加JDK环境变量,如下:  
export JAVA_HOME=/usr/java/jdk1.6.0_35
export JRE_HOME=/usr/java/jdk1.6.0_35/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
然后
hadoop0-NameNode:/soft #source /etc/profile
配置完成后,需要重启终端,在终端中输入java -version,检测jdk是否安装成功,如果出现jdk相关版本,则成功。

hadoop安装
1.        更改主机名、IP
1.1        IP设置:
在192.168.0.11上
命令:# vi /etc/hosts
192.168.0.11    hadoop0-NameNode.test.com hadoop0-NameNode
192.168.0.13    hadoop1-DataNode.test.com hadoop1-DataNode

1.2        更改主机名:
vi /etc/hostname   在里面添加
hadoop0-NameNode

hadoop0-NameNode:/soft #hostname -F /etc/hostname
192.168.0.13上
命令:# vi /etc/hosts
192.168.0.13    hadoop1-DataNode.test.com hadoop1-DataNode

1.2        更改主机名:
vi /etc/hostname   在里面添加
hadoop1-DataNode

hadoop1-DataNode:/soft #hostname -F /etc/hostname

2.        SSH设置
如代码清单 1 所示:
[iyunv@hadoop0 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a8:97:55:d3:95:d6:fe:f5:08:ca:4c:6e:24:62:b4:22 root@hadoop0
Ssh-keygen -t rsa命令将为 hadoop0-NameNode 上的当前用户 root 生成密钥对,密钥对的保存路径使用缺省的 /root/.ssh/id_rsa, 要求输入passphrase 的时候,直接回车。这样生成的证书以及公钥将存储在 /root/.ssh 目录,形成如下两个文件 id_rsa,id_rsa.pub。
然后将 id_rsa.pub文件的内容复制到hadoop0-NameNode(包括本机)、hadoop1-DataNode的/root/.ssh/authorized_keys文件的尾部。若机器上不存在这个/root/.ssh/authorized_keys文件,可以自行创建一个。
2.2         SSH连接测试
从 hadoop0-NameNode 分别向 hadoop0-NameNode, hadoop1-DataNode发起 SSH 连接请求,确保不需要输入密码就能 SSH 连接成功。
命令:
hadoop0-NameNode:/soft #ssh hadoop0-NameNode
hadoop0-NameNode:/soft #ssh hadoop1-DataNode
注意第一次 SSH 连接时会出现如下提示信息:
The authenticity of host [homer06] can't be established. The key fingerprint is:
74:32:91:f2:9c:dc:2e:80:48:73:d4:53:ab:e4:d3:1a
Are you sure you want to continue connecting (yes/no)?
输入 yes, 这样 OpenSSH 会把连接过来的这台主机的信息自动加到 /root/.ssh/know_hosts 文件中去,第二次再连接时,就不会有这样的提示信息。
以后就不需要输入密码就可以建立ssh连接了,配置成功。

3.        安装部署hadoop
在hadoop0主机上部署hadoop软件,解压到/usr/local/hadoop-1.0.4,更名为hadoop
3.1         修改环境变量
在/usr/local/hadoop/conf目录下的hadoop-env.sh中设置JAVA_HOME的环境变量,如下:
export JAVA_HOME =/usr/java/jdk1.6.0_35
export HADOOP_HOME=/usr/local/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
3.2        修改/usr/local/hadoop/conf/masters文件
  打开masters文件,该文件用来指定NameNode,内容如下:
hadoop0-NameNode:/usr/local/hadoop/conf # cat masters
hadoop0-NameNode
3.3         修改/usr/local/hadoop/conf/slaves文件
  打开slaves文件,该文件用来指定所有的DataNode,一行指定一个主机名。即本文中的hadoop0-NameNode、hadoop1-DataNode,如下:
hadoop0-NameNode:/usr/local/hadoop/conf # cat slaves
hadoop0-NameNode
hadoop1-DataNode
3.4         修改core-site.xml、hdfs-site.xml和mapred-site.xml
在/usr/local/hadoop/src/core、/usr/local/hadoop/src/hdfs、/usr/local/hadoop/src/mapred目录中分别找到core-default.xml,hdfs-default.xml,
mapred-default.xml三文件,然后copy到/usr/local/hadoop/conf目录下,这三个文件包含Hadoop的所有配置项,然后把这个分别改名为core-site.xml,hdfs-site.xml,mapred-site.xml,我们根据需要修改如下:
修改core-site.xml:
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/tmp</value>
</property>
<property>
  <name> fs.default.name</name>
  <value>hdfs://192.168.0.11:9000</value>
</property>
注:
fs.default.name是NameNode的URI。hdfs://主机名:端口
修改hdfs-site.xml:
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>



修改mapred-site.xml:
<property>
  <name>mapred.job.tracker</name>
  <value>192.168.0.11:9001</value>
</property>

配置完成后进行部署,把配置好的hadoop文件夹拷贝到hadoop1主机上。命令如下:
[iyunv@hadoop0:~]# scp -r /usr/local/hadoop  root@192.168.0.13: /usr/local/
需要注意,如在hadoop1-DataNode上某些配置路径和hadoop0-NameNode主机上不一致,则需要修改成对应的hadoop1-DataNode主机上的路径。
例如:hadoop1-DataNode的Java安装路径不一样,要修改conf/hadoop-env.sh。建议尽量使用相同的路径安装部署。
至此,hadoop部署完毕。

4.        测试:
重启终端,格式化namenode:
进入hadoop目录下的bin目录,输入
./hadoop namenode -format对hadoop进行格式化。
启动hadoop:在hadoop的bin目录下,输入
./start-all.sh  
如果启动成功,可以用jps命令查看namenode,datanode,jobtracker,tasktracker,secondarynamenode
五个节点都启动,则正常启动了。
停止hadoop,在hadoop的bin目录下,输入
./stop-all.sh

附:secondarynamenode配置
假设增加一台机器为192.168.0.12
首先修改namenode和secondarynamenode两台机器的master文件,把secondarynamenode的主机名添加上去(一行一个)
然后登录secondarynamenode修改conf/core-site.xml
<name>fs.checkpoint.dir</name>
<value>/data/work/hdfs/namesecondary</value>   这里存储namenode的镜像
<description>Determines where on the local filesystem the DFS secondary name node should store the temporary images to merge. If this is a comma-delimited list of directories then the image is replicated in all of the directories for redundancy. </description>
</property>
修改conf/hdfs-site.xml
<property>
<name>dfs.http.address</name>
<value>192.168.0.11:50070</value> 这里修改namenode主机的IP
<description> The address and the base port where the dfs namenode web ui will listen on. If the port is 0 then the server will start on a free port. </description>
</property>
重新启动hadoop,你在secondarynamenode上用jps会看到secondarynamenode进程


1.2         Hive安装部署
1.2.1        解压hive安装包
tar xzf hive-0.9.0
把hive安装包解压到/usr/local/hive目录下
1.2.2        环境变量配置
进入hive的conf目录下,创建hive-env.sh,在里面添加
#!/bin/bash
HIVE_HOME=/usr/local/hive
HADOOP_HOME=/usr/local/hadoop

将conf/hive-default.xml.template复制两份,分别命名为hive-default.xml(用于保留默认配置)和hive-site.xml(用于个性化配置,可覆盖默认配置)。
配置mysql来存储hive的元数据,首先得确保安装了mysql,输入如下命令检查:
rpm -qa|grep mysql
命令执行后如果出现相关文件,先卸载掉,命令如下:
rpm -e 出现的文件名
1.2.3        安装MySQL数据库
将libmysqlclient15-5.0.67-13.20.1.x86_64.rpm
mysql-5.0.67-13.20.1.x86_64.rpm
mysql-client-5.0.67-13.20.1.x86_64.rpm这三个文件拷贝到/usr/local/mysql路径下,输入以下命令安装:
rpm -ivh ./*.rpm
安装完成后按照提示输入以下命令:       
/usr/bin/mysqladmin -u root password ''
/usr/bin/mysqladmin -u root -h localhost password ''
此时mysql是不需要密码登录的,输入mysql命令后设置mysql的用户名和密码:
create user 'hadoop'@'localhost' IDENTIFIED BY 'hadoop';
grant all privileges on *.* to 'hadoop'@'localhost' with grant option;
然后输入exit;命令退出mysql,重新登录则需要用户名和密码:
Mysql -uhadoop -phadoop;

下载mysql-connector-java
wget 'http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz'
tar xvf mysql-connector-java-5.1.22.tar.gz
拷贝mysql-connector-java-5.1.10-bin.jar到/usr/local/hive/lib目录下。
cp mysql-connector-java-5.1.22/mysql-connector-java-5.1.22-bin.jar  /usr/local/hive/lib/

修改/usr/local/hive/conf/hive-site.xml配置文件,如下:
<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>
           jdbc:mysql://localhost: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>hadoop</value>
        </property>
        <property>
           <name>javax.jdo.option.ConnectionPassword</name>
           <value>hadoop</value>
        </property>
退出命令行终端后,重新启动hadoop,进入hive/bin,输入
./hive
进入hive命令的控制台。输入
show tables;
第一次会比较慢,成功显示OK,则说明hive配置成功。
1.3         SQOOP安装部署
sqoop安装部署说明
将sqoop-1.4.2.bin_hadoop-1.0.0.tar.gz拷贝到/usr/local/sqoop目录下,执行命令解压sqoop包:
tar xzf  sqoop-1.4.2.bin_hadoop-1.0.0.tar.gz
sqoop-1.4.2.bin_hadoop-1.0.0依赖hadoop-core-1.0.3.jar,所以将hadoop安装目录/usr/local/hadoop目录下的hadoop-core-1.0.3.jar拷贝到sqoop的lib目录下。
sqoop导入oracle数据运行过程中依赖ojdbc14.jar,将其复制到sqoop的lib目录下。
ojdbc14.jar在$ORACLE_HOME/jdbc/下
修改sqoop文件
修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper
检查(没有则不需注释),如下:
#if [ ! -d "${HBASE_HOME}" ]; then
# echo “Error: $HBASE_HOME does not exist!”
# echo ‘Please set $HBASE_HOME to the root of your HBase installation.’
# exit 1
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo “Error: $ZOOKEEPER_HOME does not exist!”
# echo ‘Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.’
# exit 1
#fi
修改完成后,则sqoop配置完成。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-26523-1-1.html 上篇帖子: hadoop 原生MapReduce 实现数据连接 下篇帖子: hadoop插件sqoop使用案例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表