ms133 发表于 2018-10-30 13:12:40

hadoop+hive+sqoop安装

  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>  export PATH=$JAVA_HOME/bin:$PATH
  然后
  hadoop0-NameNode:/soft #source /etc/profile
  配置完成后,需要重启终端,在终端中输入java -version,检测jdk是否安装成功,如果出现jdk相关版本,则成功。
  hadoop安装
  1.更改主机名、IP
  1.1IP设置:
  在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 所示:
  # 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>  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 目录,形成如下两个文件>
  然后将>  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 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:
  
  hadoop.tmp.dir
  /usr/local/hadoop/tmp
  
  
   fs.default.name
  hdfs://192.168.0.11:9000
  
  注:
  fs.default.name是NameNode的URI。hdfs://主机名:端口
  修改hdfs-site.xml:
  
  dfs.replication
  1
  
  修改mapred-site.xml:
  
  mapred.job.tracker
  192.168.0.11:9001
  
  配置完成后进行部署,把配置好的hadoop文件夹拷贝到hadoop1主机上。命令如下:
  # scp -r /usr/local/hadooproot@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
  fs.checkpoint.dir
  /data/work/hdfs/namesecondary   这里存储namenode的镜像
  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.
  
  修改conf/hdfs-site.xml
  
  dfs.http.address
  192.168.0.11:50070 这里修改namenode主机的IP
   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.
  
  重新启动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'>  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配置文件,如下:
  
  javax.jdo.option.ConnectionURL
  
  jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
  
  
  
  javax.jdo.option.ConnectionDriverName
  com.mysql.jdbc.Driver
  
  
  javax.jdo.option.ConnectionUserName
  hadoop
  
  
  javax.jdo.option.ConnectionPassword
  hadoop
  
  退出命令行终端后,重新启动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 xzfsqoop-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]
查看完整版本: hadoop+hive+sqoop安装