集群搭建笔记

--所有组建版本依照公司生产集群版本

首先创建一台新的虚拟机,进行基础设置和公有部分的搭建,之后克隆,再向主节点中添加专有的软件

# 基础设置
【固定IP】(NET模式) 
    <root>
<!-- (新版镜像不管)vi /etc/udev/rules.d/70-persistent-ipoib.rules
    主节点可以在这一步进入后不编辑,但是克隆出来的从节点需要
    删除eth0所在行,将 eth1修改为eth0,同时复制物理 ip地址(ATTR:{address}="...") -->
vi /etc/sysconfig/network-scripts//ifcfg-ens33
```
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2009a41c-ecf6-491d-8618-ffbc8216097a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.132.101
GATEWAY=192.168.132.2
NATMASK=255.255.255.0
DNS1=119.29.29.29
```
service network restart

修改时间自动同步
crontab -e
```     
    0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org 
```
/usr/sbin/ntpdate cn.pool.ntp.org
date
【防火墙】
```
查看防火墙状态
firewall-cmd --state

停止firewall
systemctl stop firewalld.service

禁止firewall开机启动
systemctl disable firewalld.service 

关闭selinux 
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
```
# 全局变量
网友们都说是在 /etc/profile 文件中加入相应的配置即可,但是在 /etc目录下还有一个目录名字是  profile.d 这个目录。
这是我在打开 /etc/profile文件查看时,在注释中发现的。里面推荐在这个目录下进行环境变量的配置,而不要修改 profile这个文件本身。
遂在profile.d目录下配置了java的环境变量, 

在profile.d目录下创建一个 java.sh 文件 里面如下配置即可:

JAVA_HOME=你的JAVA_HOME的具体目录

#如果你只是想要配置一下java的家目录的话是不需要添加这一行的,除非你无法随处使用java命令。

PATH=$PATH:$JAVA_HOME/bin

#如果紧紧只是配置一下java的家目录的话加入下面两行即可

export JAVA_HOME

export PATH

保存退出。
执行 source /etc/profile
即可立即生效。
在终端中输入 echo $JAVA_HOME 即可看到刚才配置的内容出现。

# 公有部分 : Hadoop,zookeeper,Hbase,Storm,Flume,kafka
**配置环境变量也可以这样————全局模式**
ROOT下,在/etc/profile.d目录下创建需要添加的环境变量文件
## JAVA    
例如java.sh
```
#java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

```

或者直接在/etc/profile这个文件末尾追加
```
export JAVA_HOME=/opt/modules/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

export HADOOP_HOME=/opt/modules/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

export KAFKA_HOME=/opt/modules/kafka_2.10-0.10.2.0
export PATH=$KAFKA_HOME/bin:$PATH

export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.6
export PATH=$ZOOKEEPER_HOME/bin:$PATH

export STORM_HOME=/opt/modules/storm-1.1.0
export PATH=$PATH:$STORM_HOME/bin:$PATH

export HBASE_HOME=/opt/modules/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin

export SCALA_HOME=/opt/modules/scala-2.11.0
export PATH=$PATH:$SCALA_HOME/bin

export SPARK_HOME=/opt/modules/spark-2.2.0
export PATH=$PATH:$SPARK_HOME/bin
```

##SCALA
解压 ,配置环境变量即可

## Hadoop安装
    <MASTER>
修改配置文件/opt/modules/hadoop-2.8.2/etc/hadoop目录下

1 配置hadoop-env.sh
    export JAVA_HOME=/opt/modules/jdk1.8.0_144

2 配置yarn-env.sh
    export JAVA_HOME=/opt/modules/jdk1.8.0_144

3 配置core-site.xml
```
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>

<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.8.2/tmp</value>
</property>
```

4 配置hdfs-site.xml
```
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>master:50090</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/opt/modules/hadoop-2.8.2/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/opt/modules/hadoop-2.8.2/hdfs/data</value>
    </property>
```

5 配置yarn-site.xml
```
     <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
     </property>
     <property>
           <name>yarn.resourcemanager.address</name>
           <value>master:8032</value>
     </property>
     <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>master:8030</value>
      </property>
     <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>master:8031</value>
     </property>
     <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>master:8033</value>
     </property>
     <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>master:8088</value>
     </property>
     <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
      </property>
      <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
      <value>2</value>
</property>
     
     
```

6 配置mapred-site.xml
    复制并修改mapred-site-template.xml文件 : 
        cp mapred-site.xml.template ./mapred-site.xml
    之后对mapred-site.xml进行配置
```
 <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:10020</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:19888</value>
  </property>
```

7 配置slaves文件
    填入所有从节点名字,一个一行
slave1
slave2

8 创建数据目录
mkdir /opt/modules/hadoop-2.8.2/hdfs
mkdir /opt/modules/hadoop-2.8.2/hdfs/data
mkdir /opt/modules/hadoop-2.8.2/hdfs/name


## 免密配置
<master>
免密钥登录配置:
在终端生成密钥,命令如下(一路点击回车)
    ssh-keygen -t rsa
复制公钥文件
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys权限
    chmod 600 ~/.ssh/authorized_keys
    
## 配置主机列表
这里事先写好,克隆后的每台虚拟机Ip为当前主机ip末位+1,根据克隆后的首次开启顺序递加

vi /etc/hosts
192.168.163.xxx master
192.168.163.xxx slave1
192.168.163.xxx slave2

## Zookeeper安装
<MASTER>
2 使用复制命令生成配置文件
    cp zoo_sample.cfg zoo.cfg
3 编辑配置文件
    vim zoo.cfg
追加如下代码  -->  填入所有节点名
```
dataDir=/opt/modules/zookeeper-3.4.6/data
dataLogDir=/opt/modules/zookeeper-3.4.6/datalog

clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
```
4 创建data和datalog两个文件夹
```
    mkdir -p /opt/modules/zookeeper-3.4.6/data
    mkdir -p /opt/modules/zookeeper-3.4.6/datalog
```
5 进入data文件夹,创建myid文件,文件中只包含 一行,且内容为该节点对应的server.id中的 id 编号。
    cd /home/master/zookeeper-3.4.5/data
    vim myid
    x  -->  代表本节点在zoo.cfg文件中的编号1
例如,master1和slave1分别对应的myid 文件中的值是1和 3。所以在Master1 节点上配置1,slave1配置3
依次更改所有节点下myid文件的编号,这个先不管,克隆之后再修改myid
```
    开启 zkServer.sh start
    关闭 zkServer.sh stop
    查看 zkServer.sh status
```    
    
## Hbase安装
**注:在使用时若要连接HDFS/SQL,则需要从相关程序lib文件夹下导入相应jar包**
**mysql:mysql-connector-java-5.1.28.jar;HDFS:share/hadoop下common和hdfs文件夹内所有**
**注:由于Hbase是依赖于HDFS和Zookeeper的,因此在开启和关闭的时候都要**
**保证HDFS和Zookeeper处于开启的状态,不然会崩**
 <MASTER>

1 复制hdfs-site.xml配置文件
```复制$HADOOP_HOME/etc/hadoop/hdfs-site.xml到$HBASE_HOME/conf目录下,
这样以保证hdfs与hbase两边一致,这也是官网所推荐的方式。在官网中提到一个例子,例如hdfs中配置的副本数量为5,
而默认为3,如果没有将最新的hdfs-site.xml复制到$HBASE_HOME/conf目录下,则hbase将会按3份备份,从而两边不一致,
导致会出现异常。
```    
3 配置hbase-site.xml
```
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1,slave2</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/modules/zookeeper-3.4.6/data</value>
    <description>
    Property from ZooKeeper config zoo.cfg.
    The directory where the snapshot is stored.
    </description>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>
      The mode the cluster will be in. Possible values are
      false: standalone and pseudo-distributed setups with managed ZooKeeper
      true: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh)
    </description>
  </property>
```
4 配置regionservers
vi conf/regionservers
slave1
slave2

5 配置 hbase-env.sh 文件

编辑 $HBASE_HOME/conf/hbase-env.sh 配置环境变量,
由于本实验是使用单独配置的zookeeper,因此,将其中的 HBASE_MANAGES_ZK 设置为 false
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/opt/modules/jdk1.8.0_144
**注:由于Hbase是以来于HDFS和Zookeeper的,因此在开启和关闭的时候都要**
**保证HDFS和Zookeeper处于开启的状态,不然会崩**

开启
```主节点输入即可
start-hbase.sh
```
关闭
```主节点输入即可
stop-hbase.sh
```    

## Storm安装 
**注:在使用时若要连接HDFS/SQL,则需要从相关程序lib文件夹下导入相应jar包**
**mysql:mysql-connector-java-5.1.28.jar;HDFS:share/hadoop下common和hdfs文件夹内所有**

**注:由于Hbase是以来于HDFS和Zookeeper的,因此在开启和关闭的时候都要**
**保证HDFS和Zookeeper处于开启的状态,不然会崩**

<MASTER>
1 解压安装
unzip apache-storm-0.9.3.zip -d ~    [-d 后可以指定路径]

2 修改storm.yaml,追加如下代码
```
 storm.zookeeper.servers:
      - "master"
      - "slave1"
      - "slave2"

 nimbus.host: "master"
 storm.zookeeper.port: 2181
 storm.local.dir: "/opt/modules/storm-1.1.0/data"
 ui.port: 8080
 supervisor.slots.ports:
      - 6700
      - 6701
      - 6702
      - 6703
```
3 开启:
在master节点,启动如下服务到后台
```
storm nimbus >/dev/null 2>&1 &
storm ui>/dev/null 2>&1 &
```
在slave1和slave2节点,分别启动如下服务到后台
    storm supervisor >/dev/null 2>&1 &
访问Storm WEBUI
    http://master:8080
4 关闭:
    只能通过jps查看进程号,然后通过kill -9命令关闭
    
5 向STORM提交JAR包并运行
```
storm jar /home/master/wc.jar wordcount.MainTopology wordcount
```
6 关闭任务
```
storm kill task_name
```

## SPARK
11 把缓存的文件spark-env.sh.template改为spark识别的文件spark-env.sh[slave文件同理]
vi spark-env.sh
```
export JAVA_HOME=/opt/modules/jdk1.8.0_144
export SCALA_HOME=/opt/modules/scala-2.11.0
export HADOOP_HOME=/opt/modules/hadoop-2.8.2
export HADOOP_CONF_DIR=/opt/modules/hadoop-2.8.2/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1

export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
<!-- 从spark1.4以后,所有spark的编译都是没有将hadoop的classpath编译进去的,
所以必须在spark-env.sh中指定hadoop中的所有jar包。 -->
```
变量说明 
- JAVA_HOME:Java安装目录 
- SCALA_HOME:Scala安装目录 
- HADOOP_HOME:hadoop安装目录 
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录 
- SPARK_MASTER_IP:spark集群的Master节点的ip地址 
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小 
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目 
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目

2 vi slaves
```
slave1
slave2
```

3 修改UI端口
spark master web ui 默认端口为8080,当系统有其它程序也在使用该接口时,启动master时也不会报错,
spark自己会改用其它端口,自动端口号加1,但为了可以控制到指定的端口,我们可以自行设置,修改方法:
1、cd SPARK_HOME/sbin
2、vi start-master.sh
3、mster启动脚本中,该命令用来控制WEBUI的默认端口:
```
if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then

  SPARK_MASTER_WEBUI_PORT=8080

fi
```
4、修改上面的端口为其它可用端口就行
注:如果使用默认端口无法正常登陆WEB时,可查看mster的监听端口号来确定当前使用的端口

4.5 2.2.0版本不带LOG的JAR包,需要手动导入
slf4j-api.jar和slf4j-log4j12.jar这两个jar包。【低于1.7.2版本】
分别到    /opt/modules/spark-2.2.0/jars        /opt/modules/hadoop-2.8.2/etc/hadoop


5 运行 
./sbin/start-all.sh
成功打开之后使用jps在SparkMaster、parkWorker1和SparkWorker2节点上分别可以看到新开启的Master和Worker进程。
成功打开Spark集群之后可以进入Spark的WebUI界面,可以通过8090端口访问

6 打开Spark-shell
```
spark-shell
```
同时,因为shell在运行,我们也可以通过
SparkMaster_IP:4040
访问WebUI查看当前执行的任务。

验证
```
./bin/run-example SparkPi
```
关闭
    到$SPARK_HOME/sbin下
    ./stop-all.sh
## Flume安装  --[
**连接Kafka时候,要在flume的lib目录下导入
flumeng-kafka-plugin.jar 连接包**
<MASTER>
1 解压安装
tar  -zxvf  jdk-7u55-linux-x64.gz -C ~
tar  -zxvf  apache-flume-1.5.0-src.tar.gz -C ~

2 将apache-flume-1.5.0-src文件夹中的内容全部复制到apache-flume-1.5.0-bin文件中
```
cp -ri apache-flume-1.5.0-src/* apache-flume-1.5.0-bin
```

3 环境变量稍后一起配置

4 配置文件设置
复制创建flume-env.sh文件并进行修改,主要是JAVA_HOME变量设置
```
cp flume-env.sh.template ./flume-env.sh
```
追加
export JAVA_HOME=/usr/java/jdk1.7.0_71

5 验证是否安装成功
bin/flume-ng version
若出现版本信息则代表成功了

**FLUME若要连接Kafka,需要在lib下导入flumeng-kafka-plugin.jar**

## flink安装
( 配置 JAVA_HOME)
解压缩系统文件后,需要通过编辑conf / flink-conf.yaml为集群配置Flink 。

将jobmanager.rpc.addressKeys设置为指向主节点。您还应该通过设置jobmanager.heap.mb和taskmanager.heap.mb键来定义允许JVM在每个节点上分配的最大主内存量。
jobmanager.rpc.address: 192.168.132.101

这些值以MB为单位。如果某些工作节点有更多主内存要分配给Flink系统,则可以通过FLINK_TM_HEAP在这些特定节点上设置环境变量来覆盖默认值。

最后,您必须提供集群中所有节点的列表,这些节点将用作工作节点。因此,与HDFS配置类似,编辑文件conf / slaves并输入每个工作节点的IP /主机名。每个工作节点稍后将运行TaskManager。
vi slaves
slave1
slave2

启动&停止
在主节点上并在Flink目录中:
bin/start-cluster.sh
要停止Flink,还有一个stop-cluster.sh脚本。

将JobManager / TaskManager实例添加到群集
您可以使用bin/jobmanager.sh和bin/taskmanager.sh脚本将JobManager和TaskManager实例添加到正在运行的集群中。

添加JobManager
bin/jobmanager.sh ((start|start-foreground) cluster)|stop|stop-all
添加TaskManager
bin/taskmanager.sh start|start-foreground|stop|stop-all
确保在要启动/停止相应实例的主机上调用这些脚本。


## kafka安装
2 配置Kafka
    vi config/server.properties
```
broker.id=0   #每个节点依次增一
listeners=PLAINTEXT://192.168.132.101:9092   # ip为每个节点的IP
zookeeper.connect=master:2181,slave1:2181,slave2:2181
log.dirs=/opt/modules/kafka_2.10-0.10.2.0/log
```

>kafka shell cmd
```
bin/kafka-server-start.sh -daemon config/server.properties

kafka-server-stop.sh

kafka-topics.sh --zookeeper localhost:2181 --list

kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic test

kafka-console-producer.sh --broker-list master:9092 --topic test

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
```


**打包到集群上运行的时候,需要将google的和curator相关4个jar文件都拷贝到storm的依赖包下**
guava-18.0.jar
curator-recipes-1.2.6.jar    curator-framework-1.3.1.jar    curator-client-1.2.6.jar

# 克隆主机,进行如下配置

1 所有节点修改主机名
vi /etc/sysconfig/network
HOSTNAME=xxx #主机名
确认修改命令  hostname xxx
检查是否修改成功
hostname

2 所有从节点下激活环境变量
source /etc/profile

3 ifconfig  查看ip是否与hosts中相匹配,
之后验证hosts列表是否配置成功的命令:
    ping master1
    ping slave1

5 验证免密登陆
ssh slave2

6 修改 zookeeper-3.4.5/data 下的myid文件

7 切换至主节点,
    格式化文件系统
hdfs namenode -format
    启动集群:
start-all.sh                      
    或者  >>>  hadoop-daemon.sh start/stop 进程名(全小写)
    查看进程  jps
主节点应有:4
    ResourceManager
    Jps 
    NameNode
    SecondaryName
从节点:3
    NodeManager 
    DataNode 
    Jps

Web UI查看集群是否成功启动:
 浏览器在地址栏中输入http://master:50070/ 检查namenode 和 datanode是否正常。
 浏览器在地址栏中输入http://master:18088/ 检查yarn是否正常。

运行PI实例检查集群是否成功
cd
hadoop jar /opt/modules/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10

8 修改kafka/conf下的server.properties中
broker.id和listeners=PLAINTEXT后的IP地址


 # 主节点专有:Azkaban,MySQL,Hive,Sqoop,eclipse

## Mysql
<root>
查看是否安装过MySQL
    ```yum list installed mysql*
    ```
或    rpm -qa | grep mysql*

安装前先删除Mysql相关的文件和包
     ```yum -y remove mysql-libs*
```
安装mysql客户端:
    ```yum install mysql
    ```
安装mysql 服务器端:
```
    yum install mysql-server yum
    yum install mysql-devel
    ```
启动&&停止 数据库字符集设置?
    vi /etc/my.cnf
    在最后加入
default-character-set=utf8

启动mysql服务:
    /etc/init.d/mysqld start
开机启动:
    chkconfig --add mysqld
    chkconfig mysqld on
查看开机启动设置是否成功
    chkconfig --list | grep mysql* 
    应为:mysqld       0:off    1:off    2:on    3:on    4:on    5:on    6:off

登录 创建root管理员:
    mysqladmin -u root password 123456
    
## HIVE
**注:在使用时若要连接HDFS/SQL,则需要从相关程序lib文件夹下导入相应jar包**
**mysql:mysql-connector-java-5.1.28.jar;HDFS:share/hadoop下common和hdfs文件夹内所有**

以ROOT身份进入数据库
创建hadoop用户
    mysql>grant all on *.* to hive@'%' identified by 'hive'; 
    mysql>grant all on *.* to hive@'localhost' identified by 'hive'; 
    mysql>grant all on *.* to hive@'master' identified by 'hive';     'master1'是当前节点的网络名
    mysql>flush privileges;
创建数据库
    create database hivemeta;
退出

<master>
1 解压到家目录
    tar -zxvf hive-2.3.4
    
6.1 复制初始化文件并重命名
目录切换到 $hive/conf

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

6.2 修改 hive-env.sh 文件
```
export JAVA_HOME
export HADOOP_HOME
export HIVE_HOME
export HIVE_CONF_DIR=$HIVE_HOME/conf
```

6.3 在hdfs中创建目录,并授权,用于存储文件
启动hadoop

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/log

hdfs dfs -chmod -R 777 /user

6.4 修改hive-site.xml


<property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
</property>

【在hive-site.xml文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置。】
<property>
    <name>hive.cli.print.header</name>
    <value>true</value>
</property>

<property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
</property>


<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
</property>

<property>
    <name>hive.querylog.location</name>
    <value>/user/hive/log</value>
</property>

<name>hive.exec.local.scratchdir</name>
<value>/opt/modules/apache-hive-2.3.4-bin/tmp/Hive_jobs</value>

<name>hive.server2.logging.operation.log.location</name>
<value>/opt/modules/apache-hive-2.3.4-bin/tmp/operation_logs</value>


<name>hive.downloaded.resources.dir</name>
<value>/opt/modules/hive-3.0.0/tmp/resources</value>


<-- 记得在HIVE下创建tmp,以及tmp下的resources,operation_logs,Hive_jobs三个文件夹 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hivemeta?characterEncoding=UTF-8</value>
            #master1:3306    网络             hivemeta 数据库名
</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>
</configuration>


4 修改hive的log日志存放位置
    (1)修改/opt/module/hive/conf/hive-log4j.properties.template文件名称为hive-log4j.properties
    (2)在hive-log4j.properties文件中修改log存放位置
        hive.log.dir=/opt/module/hive-3.0.0/logs

3 添加JAVA连接包到依赖库中:
    cp mysql-connector-java-5.1.28.jar ~/apache-hive-1.2.1-bin/lib/

7 初始化 hive
schematool -dbType mysql -initSchema 
发现包冲突 

删掉 冲突目录下的jar 包 (同名冲突仍以删除一个即可)
然后删掉hivemeta数据库,重新运行初始化命令 
    
启动HIVE
    hive
    
## Azkaban

1.解压安装
    tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C ~/
    unzip azkaban-web-2.5.0.zip -d ~
    unzip azkaban-executor-2.5.0.zip -d ~
2.进入MySQL的root用户
    grant all on *.* to azkaban@'%' identified by'azkaban';
    grant all on *.* to azkaban@'master1' identified by'azkaban';
    grant all on *.* to azkaban@'localhost' identified by'azkaban';
    flush privileges;
    退出sql
    
3.配置sql
    mysql -uazkaban -pazkaban
    create database azkaban;
    use azkaban;
    source /home/master/azkaban-2.5.0/create-all-sql-2.5.0.sql
    source /home/master/azkaban-2.5.0/azkaban-2.5.0/create-all-sql-2.5.0.sql
4.配置WebServer
    复制驱动包
    cp azkaban-sql-script-2.5.0.tar.gz /home/master/azkaban-web-2.5.0/extlib/
    配置jetty
    keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    密码 : tomcat
    cp ./keystore ~/azkaban-web-2.5.0/
    
5. 修改Web目录下conf/Azkaban.properties
    vim azkaban-web-2.5.0/conf/azkaban.properties
    
        default.timezone.id=Asia/Shanghai
        
        database.type=mysql
        mysql.port=3306
        mysql.host=master1
        mysql.database=azkaban
        mysql.user=azkaban
        mysql.password=azkaban
        mysql.numconnections=100
        
        jetty.password=tomcat
        jetty.keypassword=tomcat
        jetty.truststore=keystore
        jetty.trustpassword=tomcat

6.修改Execute目录下conf/Azkaban.properties
    vim azkaban-executor-2.5.0/conf/azkaban.properties 
        default.timezone.id=Asia/Shanghai
        database.type=mysql
        mysql.port=3306
        mysql.host=master1
        mysql.database=azkaban
        mysql.user=azkaban
        mysql.password=azkaban
        mysql.numconnections=100


7.修改Web目录下conf/Azkaban-users.xml
    vim azkaban-web-2.5.0/conf/azkaban-users.xml
    
        <azkaban-users>
        <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
        <user username="metrics" password="metrics" roles="metrics"/>

        <user username="admin" password="admin" roles="admin,metrics"/>

        <role name="admin" permissions="ADMIN" />
        <role name="metrics" permissions="METRICS"/>
        </azkaban-users>
    保存退出到conf/下,改权限
        chmod 777 ./*
    再到web的bin下,添加权限
        chmod 777 ./*
    再到execuate的bin下,添加权限
        chmod 777 ./*
        
    ######    在web/executor家目录下执行
开启
        bin/azkaban-web-start.sh
        bin/azkaban-executor-start.sh
关闭
        bin/azkaban-web-shutdown.sh 
        
            注意:登陆URL必须是
                https://master1:8443
                HTTP不行,必须是HTTPS
                
3269 SecondaryNameNode
4912 Jps
4582 AzkabanExecutorServer
3413 ResourceManager
4532 AzkabanWebServer
3078 NameNode

## Sqoop

1)条件:Hadoop已经安装成功,并且正常启动
2)解压安装
tar -zxvf sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz
3)配置Sqoop
a.配置MySQL连接器
将MySQL的连接器Connector拷贝到sqoop的依赖库中
cp apache-hive-1.2.1-bin/lib/mysql-connector-java-5.1.28.jar ~/sqoop-1.4.5.bin__hadoop-2.0.4-alpha/lib/

b.配置环境变量
cp sqoop-env-template.sh sqoop-env.sh 
```
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/master/hadoop-2.5.2

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/master/hadoop-2.5.2

#set the path to where bin/hbase is available
export HBASE_HOME=/home/master/hbase-0.98.9-hadoop2

#Set the path to where bin/hive is available
export HIVE_HOME=/home/master/apache-hive-1.2.1-bin

#Set the path for where zookeper config dir is
export ZOOCFGDIR=/home/master/zookeeper-3.4.5

```
4)启动并验证sqoop
bin/sqoop help

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值