Hadoop完全分布式部署整合hive、sqoop

Hadoop完全分布式部署
一、 硬件描述
3台物理机,一台Master二台Slave(Slave01,Slave02)
二、 硬件环境准备
1.修改主机名
Vi /etc/sysconfig/network修改hostname为对应的
2.关闭selinux
Vi /etc/sysconfig/selinux 修改enforing 为disabled
3.关闭防火墙
Service iptables stop
4.修改本地host文件
Vi /etc/hosts每台机器都要配置
例子:
192.168.6.210  Master
192.168.6.211  Slave01
192.168.6.212  Slave02
以上每台机器都要修改
5.设置ssh免密登陆
设置master节点和两个slave节点之间的双向ssh免密通信,下面以master节点ssh免密登陆slave节点设置为例,进行ssh设置介绍(以下操作均在master机器上操作):
首先生成Master的rsa密钥: s s h − k e y g e n − t r s a 设 置 全 部 采 用 默 认 值 进 行 回 车 将 生 成 的 r s a 追 加 写 入 授 权 文 件 : ssh-keygen -t rsa 设置全部采用默认值进行回车 将生成的rsa追加写入授权文件: sshkeygentrsarsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
给授权文件权限: c h m o d 600   / . s s h / a u t h o r i z e d k e y s 进 行 本 机 s s h 测 试 : chmod 600 ~/.ssh/authorized_keys 进行本机ssh测试: chmod600 /.ssh/authorizedkeyssshssh master正常免密登陆后所有的ssh第一次都需要密码,此后都不需要密码
将master上的authorized_keys传到slave1
sudo scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
登陆到slave1操作:$ssh slave1输入密码登陆
c a t   / i d r s a . p u b > >   / . s s h / a u t h o r i z e d k e y s 修 改 a u t h o r i z e d k e y s 权 限 : cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 修改authorized_keys权限: cat /idrsa.pub>> /.ssh/authorizedkeysauthorizedkeyschmod 600 ~/.ssh/authorized_keys
退出slave1: e x i t 进 行 免 密 s s h 登 陆 测 试 : exit 进行免密ssh登陆测试: exitsshssh slave1
到此硬件环境准备好
三、 软件安装
1.java环境安装
执行命令rpm -ivh jdk-8u131-linux-x64.rpm
配置环境变量
vi /etc/profile
在该profile文件中最下面添加:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
2.Hadoop安装配置
2.1 Hadoop安装
首先在master节点进行hadoop安装配置,之后使用scp传到slave1和slave2。
下载Hadoop二进制文件到masterhadoop-2.8.4.tar.gz
解压文件
$tar –zxvf ~/hadoop-2.8.4.tar.gz
移动文件到自己规定的目录
$mv ~/hadoop-2.8.4 /opt/
2.2 Hadoop的maste节点配置
配置hadoop的配置文件core-site.xml  hdfs-site.xml  mapred-site.xml  yarn-site.xml  slaves(都在/opt/hadoop-2.8.4/etc/hadoop文件夹下)
$cd /opt/hadoop-2.8.4/etc/hadoop
$vim core-site.xml其他文件相同,以下为配置文件内容:
1.core-site.xml


  
    fs.default.name
    hdfs://master:9000
  
  
    hadoop.tmp.dir
    file:/home/hadoop/hadoop/tmp
  

2.hdfs-site.xml 

  
    dfs.replication
    2
  
  
    dfs.namenode.name.dir
    file:/home/hadoop/hadoop/tmp/dfs/name
  
  
    dfs.datanode.data.dir
    file:/home/hadoop/hadoop/tmp/dfs/data
  
  
    dfs.namenode.secondary.http-address
    master:9001
  

3.mapred-site.xml  

  
    mapreduce.framework.name
    yarn
  

4.yarn-site.xml

  
    yarn.resourcemanager.hostname
    master
  
	  
        mapreduce.jobhistory.address
        Master:10020
    
    
        mapreduce.jobhistory.webapp.address
        Master:19888
  
    yarn.nodemanager.aux-services
    mapreduce_shuffle
  
  
    yarn.log-aggregation-enable
    true
  
  
    yarn.log-aggregation.retain-seconds
    604800
  

5.slaves –对应slave机器的hostname
Slave01
Slave02
2.3 Hadoop的其他节点配置
此步骤的所有操作仍然是在master节点上操作,以master节点在slave1节点上配置为例
复制hadoop文件至slave01:$scp -r /opt/hadoop-2.8.4root@Slave01:/opt/
2.4 Hadoop环境变量配置
vi /etc/profile
添加行(每个节点都需要此步操作,以master节点为例):
#hadoop environment vars

export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

保存环境变量生效:source /etc/profile
2.5 Hadoop启动
格式化namenode: h a d o o p n a m e n o d e − f o r m a t 启 动 h a d o o p : hadoop namenode -format 启动hadoop: hadoopnamenodeformathadoopstart-all.sh
master节点查看启动情况:$jps

slave1节点查看启动情况:$jps

slave2节点查看启动情况:$jps

看到以上结果证明hadoop配置成功
2.6启动history-server
Hadoop启动jobhistoryserver来实现web查看作业的历史运行情况,由于在启动hdfs和Yarn进程之后,jobhistoryserver进程并没有启动,需要手动启动,
启动的方法是:
mr-jobhistory-daemon.sh start historyserver
3.Hive安装(本地数据库存放元数据模式)
3.1.下载和解压安装包
apache-hive-2.3.3-bin.tar.gz
tar xvf apache-hive-2.3.2-bin.tar.gz
3.2.启动hdfs,为hive创建文件夹并授权,用于数据存储
hdfs dfs -mkdir -p /user/hive/{warehouse,tmp,log}
hdfs dfs -chmod -R 777 /user/hive/{warehouse,tmp,log}
3.3.修改hive相关配置文件
hive所有配置文件位于conf目录下
1)、修改hive-env.sh
export HADOOP_HOME=/opt/hadoop-2.8.4
export HIVE_CONF_DIR=/opt/apache-hive-2.3.3/conf
2)、修改hive-site.xml

hive.exec.scratchdir
/user/hive/tmp


hive.metastore.warehouse.dir
/user/hive/warehouse


hive.querylog.location
/user/hive/log


javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hmetastore?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
root


javax.jdo.option.ConnectionPassword
123456

创建hive tmp文件目录:

mkdir /opt/apache-hive-2.3.3/tmp

并修改hive-site.xml:
把该文件中所有的{system:java.io.tmpdir} 改为 /part1/apache-hive-2.3.2-bin/tmp
把该文件中所有的{system:user.name} 改为 {user.name}
3.4配置hive环境变量
root用户执行:vim /etc/profile
export HIVE_HOME=/opt/apache-hive-2.3.3
export HIVE_CONF= H I V E H O M E / c o n f e x p o r t H C A T H O M E = HIVE_HOME/conf export HCAT_HOME= HIVEHOME/confexportHCATHOME=HIVE_HOME/hcatalog
export PATH= H I V E H O M E / b i n : HIVE_HOME/bin: HIVEHOME/bin:PATH

使修改生效:source /etc/profile
3.5.下载mysql驱动,并将驱动放到/opt/apache-hive-2.3.3/lib
3.6.初始化hive
schematool -dbType mysql –initSchema
3.7.启动hive server2以便通过hive jdbc来访问hive
启动方法有两种:
1)、./bin hive --service hiveserver2 &
2)、./bin hiveserver2 &
hiveserver默认端口10000。
修改默认端口,更改hive-site.xml的配置属性:hive.server2.thrift.port
4.安装sqoop-1.4.7
4.1 下载解压sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
解压后复制到/opt/sqoop
mv sqoop-1.4.7.bin__hadoop-2.6.0/ /opt/sqoop
下载oracle的jdbc驱动ojdbc6.jar到/opt/sqoop/lib
4.2 配置环境变量
vi /etc/profile 设置以下内容
#sqoop
export SQOOP_HOME=/opt/sqoop
export PATH= P A T H : PATH: PATH:SQOOP_HOME/bin
配置后执行source /etc/profile生效
4.3复制/opt/sqoop/conf/sqoop-env-template.sh为sqoop-env.sh
进入/opt/sqoop/conf目录
cp sqoop-env-template.sh sqoop-env.sh
添加相关配置

vi sqoop-env.sh
#Setpath to where bin/Hadoop is available
export HADOOP_COMMON_HOME=/opt/hadoop-2.8.4
#Setpath to where hadoop-*-core.jar isavailable
export HADOOP_MAPRED_HOME=/opt /hadoop-2.8.4
#setthe path to where bin/Hbase isavailable
#export HBASE_HOME=/opt/cdh5/hbase //未安装可以不配置
#Setthe path to where bin/Hive is available
export HIVE_HOME= /opt/apache-hive-2.3.3
#Setthe path for where zookeper config diris
#export ZOOCFGDIR= /opt/zookeeper //未安装可以不配置

4.4.测试sqoop
sqoop version
安装成功显示sqoop版本
将java jdbc ojdbc6.jar 驱动放到 S Q O O P H O M E / l i b 下 s q o o p l i s t − t a b l e s − − c o n n e c t j d b c : o r a c l e : t h i n : @ 192.168.6.61 : 1521 : h i s − − u s e r n a m e c h r i p − − p a s s w o r d r q f 运 行 该 命 令 显 示 c h r i p 所 有 数 据 表 到 此 s q o o p 安 装 完 成 注 意 : h i v e + s q o o p j a c k s o n 因 版 本 不 一 致 导 致 j a v a . l a n g . N o S u c h M e t h o d E r r o r : c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . O b j e c t M a p p e r . 将 SQOOP_HOME/lib 下 sqoop list-tables --connect jdbc:oracle:thin:@192.168.6.61:1521:his --username chrip --password rqf 运行该命令 显示chrip所有数据表 到此sqoop安装完成 注意: hive+sqoop jackson因版本不一致导致java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper. 将 SQOOPHOME/libsqooplisttablesconnectjdbc:oracle:thin:@192.168.6.61:1521:hisusernamechrippasswordrqfchripsqoophive+sqoopjacksonjava.lang.NoSuchMethodError:com.fasterxml.jackson.databind.ObjectMapper.SQOOP_HOME/lib/jackson*.jar 文件bak,再把$HIVE_HOME/lib/jackson*.jar 拷贝至 $SQOOP_HOME/lib 目录中

mr-jobhistory-daemon.sh start historyserver
启动jobhistory

你可能感兴趣的:(Hadoop完全分布式部署整合hive、sqoop)