专注于快乐的事情

虚拟环境下spark相关软件的安装配置

机器配置

假设已经成功配置了三台虚拟机器,分别为:master,node1,node2。
安装的都为centos7。

安装JDK开发插件

在master机器中

安装
yum install -y java-1.8.0-openjdk-devel

通过rpm -qa | grep openjdk查看OpenJDK版本

查看OpenJDK路径
whereis java

编辑 /etc/profile,添加的代码如下

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

使配置生效
source /etc/profile

设定 ssh key

在master机器中

sudo su -
vim ~/.ssh/id_rsa.pub

复制其中的内容
自己的机器也需要进行复制
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在node1和node2机器中

vim ~/.ssh/authorized_keys

将上面复制的文件,放在其中。

在master机器中:
执行ssh node1,如果能够登录,则设置成功。

配置hdfs

启动hdfs

Hadoop 2.7.7

hdfs namenode -format

$HADOOP_PREFIX/sbin/start-dfs.sh
$HADOOP_PREFIX/sbin/stop-dfs.sh

成功会启动3个进程

4228 NameNode
4327 DataNode
4488 SecondaryNameNode

测试是否成功

使用 hdfs dfsadmin -report或者访问浏览器进行访问。
http://10.168.1.100:50070

启动yard

$HADOOP_PREFIX/sbin/start-yarn.sh

这时会多启动进程
4816 NodeManager
4713 ResourceManager

netstat -nlop

配置spark

启动spark

进入到master机器,执行
$SPARK_HOME/sbin/start-all.sh

访问
http://10.168.1.100:8080/

启动进程如下
5175 Master
5244 Worker

配置hive

启动hive

MySQL作为元数据管理,初始化配置
$HIVE_HOME/bin/schematool -dbType mysql -initSchema

启动metastore

nohup hive --service metastore &

启动hiveserve2

nohup hive --service hiveserver2 &

使用beeline

beeline
然后执行
! connect jdbc:hive2://10.168.1.100:10000 hive hive

可能出现的错误

为了避免出现User: root is not allowed to impersonate hive

需要在hadoop的配置文件core-site.xml中添加如下属性:

<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>

将core-site.xml同步到其他机器
scp -r core-site.xml root@node2:/usr/local/hadoop/etc/hadoop/

重新启动hdfs

启动hive客户端

hive

测试

安装pyspark

pyspark测试

pyspark --master spark://10.168.1.100:7077

提交spark程序进行测试

spark-submit --master spark://10.168.1.100:7077 test.py 5

如果PYSPARK_DRIVER_PYTHON有问题,需要重新设置 export PYSPARK_DRIVER_PYTHON=python3

配置zookper

解压安装

  1. 下载zookeeper-3.4.13.tar.gz,
    解压在/root/zookeeper/zookeeper-3.4.13

配置zoo.cfg文件

vim /root/zookeeper/zookeeper-3.4.13/conf/zoo.cfg
设置文件目录和日志目录; server.0/1/2表示分别在三台机器上分别安装zookeeper服务

dataLogDir=/root/zookeeper/log
server.0=master:8880:7770
server.1=node1:8881:7771
server.2=node2:8882:7772

其他配置:
dataDir:ZooKeeper 会在内存中保存系统快照,并定期写入该路径指定的文件夹中。

master节点配置好的文件分发到slave节点
scp -r /root/zookeeper root@node1:/root/
scp -r /root/zookeeper root@node2:/root/

myid文件

myid文件位于zoo.cfg中dataDir配置的目录下

  1. 在三台机器上新增myid文件 ,分别创建文件输入0 1 2 . 存放的标识本台服务器的文件
    是整个zk集群用来发现彼此的一个重要标识.
    具体操作:
    在master机器上执行echo "0" > /root/zookeeper/data/myid
    在node-1机器上echo "1" > /root/zookeeper/data/myid
    在node-2机器上echo "2" > /root/zookeeper/data/myid

启动

分别在3个系统中启动, zkServer.sh start
jps命令查看,输出启动进程如下:
366 QuorumPeerMain

zkServer.sh status命令可查看状况,会有一个leader,两个follower

其他操作

配置hbase

安装

  1. 解压hbase安装包
    tar -zxvf hbase-1.2.6-bin.tar.gz

  2. 修改 hbase-site.xml 配置
    进入 /root/hbase/hbase-1.2.6/conf 路径
    hbase.rootdir 是hbase数据在hdfs上存储路径
    hbase.cluster.distributed 分布式存储
    hbase.zookeeper.quorum 使用zookeeper管理



    hbase.rootdir
    hdfs://master:9000/hbase


    hbase.cluster.distributed
    true


    hbase.zookeeper.quorum
    master,node1,node2

  3. 修改 hbase-env.sh 配置
    进入 /root/hbase/hbase-1.2.6/conf 路径
    export JAVA_HOME=/usr/local/jdk1.8.0_161
    export HADOOP_PREFIX=/usr/local/hadoop
    export HBASE_CLASSPATH=${HADOOP_PREFIX}/etc/hadoop
    export HBASE_MANAGES_ZK=false

  4. 修改regionservers 配置
    进入 /root/hbase/hbase-1.2.6/conf 路径
    vim regionservers
    node-1
    node-2

  5. 将master配置拷贝到slave
    scp -r /root/hbase root@node1:/root/
    scp -r /root/hbase root@node2:/root/

  6. 配置hbase环境变量
    vim /etc/profile
    source /etc/profile

启动hbase

先需要启动hdfs和zookeeper
start-dfs.sh
zkServer.sh start
start-hbase.sh
访问hbase的web监控 http://10.168.1.100:16010/master-status

启动客户端

配置kafka

安装

  1. 解压
    tar -zxvf kafka_2.11-1.1.1.tgz

  2. 修改配置
    cd /root/kafka/kafka_2.11-1.1.1/config
    vim server.properties,修改如下:

    broker.id=0
    log.dirs=/root/kafka/kafkalogs/
    zookeeper.connect=10.168.1.100:2181
    
  3. 将master配置拷贝到slave
    scp -r /root/kafka root@node1:/root/
    scp -r /root/kafka root@node2:/root/

  4. 配置slave节点

    cd /root/kafka/kafka_2.11-1.0.0/config
    vim server.properties
    修改node-1为broker.id=1
    node-2为broker.id=2

启动kafka

在每台机器上都要启动

cd /root/kafka/kafka_2.11-1.1.1/bin
./kafka-server-start.sh /root/kafka/kafka_2.11-1.1.1/config/server.properties 2>&1 &

jps命令参看,如下

26887 Kafka

测试

创建一个topic

创建3个分区,每个分区都分配3个副本
./kafka-topics.sh --create --zookeeper master:2181 --replication-factor 3 --partitions 3 --topic test-topic

列出所有的topic

./kafka-topics.sh --list --zookeeper master:2181

参看topic的分区情况

kafka-topics.sh --zookeeper master:2181 --describe --topic test-topic-1

启动kafka生产者

在master启动
./kafka-console-producer.sh --broker-list master:9092 --topic kafka_test
输入一些数据。

启动kafka消费者

在node2上启动
./kafka-console-consumer.sh --bootstrap-server master:9092 --topic kafka_test --from-beginning

会发现数据显示出来了。

查询topic内容

./kafka-console-consumer.sh --bootstrap-server master:9092 --topic my-topic --from-beginning

查询topic的在分区上的消息数量

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list master:9092 --topic test-topic

测试

kafka-producer-perf-test.sh --topic test-topic --num-records 500000 --record-size 200 --throughput -1 --producer-props bootstrap.servers=master:9092,node1:9092,node2:9092

安装监控界面

http://www.kafkatool.com/download.html
参看

配置sqoop

下载安装

  1. 下载
    http://mirrors.hust.edu.cn/apache/sqoop/1.4.7
  2. 解压
    tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

  3. 复制mysql连接jar
    将 mysql-connector-java-5.1.44-bin.jar包放到/root/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib

配置

进入sqoop下的conf配置文件目录, 复制 sqoop-env-template.sh 为 sqoop-env.sh
cp sqoop-env-template.sh sqoop-env.sh

编辑 sqoop-env.sh文件,vim sqoop-env.sh
给HADOOP_COMMON_HOME添加hadoop安装路径,注意去掉#号
HADOOP_MAPRED_HOME也添加hadoop为安装路径。

测试

sqoop help

配置airflow

先升级pip
pip3 install --upgrade pip

export SLUGIFY_USES_TEXT_UNIDECODE=yes
pip3 install apache-airflow
pip3 install tenacity==4.12.0

airflow initdb
airflow webserver -p 9080

问题

安装Flume

安装配置

wget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz
tar –zxvf apache-flume-1.8.0-bin.tar.gz
解压缩到
/root/flume/apache-flume-1.8.0-bin

配置环境变量:

export FLUME_HOME=/root/flume/apache-flume-1.8.0-bin
export FLUME_CONF_DIR=$FLUME_HOME/con

测试flume-ng version

配置flume-env.sh

cd conf
cp flume-env.sh.template flume-env.sh
vim flume-env.sh

cp flume-conf.properties.template flume-conf.properties

问题

日志
/usr/local/hadoop/logs/hadoop-root-datanode-10.168.1.100.out
tail -n 300 hadoop-root-datanode-10.168.1.100.log

d to add storage directory [DISK]file:/var/hadoop/hadoop-datanode/
org.apache.hadoop.hdfs.server.common.IncorrectVersionException: Unexpected version of storage directory /var/hadoop/hadoop-datanode. Reported: -57. Expecting = -56.

参考

大数据常见错误解决方案
Hbase1.3.1集群
版本
Kafka(二)CentOS7.5搭建Kafka2.11-1.1.0集群与简单测试
Apache Airflow 安装
Hive官方使用手册——新Hive CLI(Beeline CLI)

评论系统未开启,无法评论!