Mac环境下搭建大数据开发环境

Mac下搭建大数据开发环境

环境比较浪费时间,结合自己搭建环境的经验,整理成文档。

安装JDK 和 SCALA

所有的前置条件是安装JDK,我用的是JDK8.x

java version “1.8.0_162”

Java(TM) SE Runtime Environment (build 1.8.0_162-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

Scala code runner version 2.12.4 – Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.

Spark V2.3.0

img

Spark安装比较简单,也没什么坑。网上一大堆,随意搞。

vmvare虚拟机

安装vmware fusion

虚拟下安装Hadoop & hive

1、hadoop伪分布式部署,版本 2.7.1, sbin/start-all.sh , sbin/stop-all.sh。jps验证其服务是否启动完全

2、hive用mysql(我用的是mariaDB,比安装Mysql省事)做元数据库,版本2.1.1 hive。hive-env.sh,hive-site.xml hdfs dfs -ls /user/hive/warehouse hive表都存到这个目录下

4、关闭防火墙 永久关闭: chkconfig iptables off 及时生效service iptables stop

5、mac 下 虚拟机vmware Fution

6、ssh -p 22 root@172.16.192.130 ssh链接虚拟机

core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/data/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://172.16.192.130:9000</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>false</value>
<description>Should native hadoop libraries, if present, be used. </description>
</property>
</configuration>

hdfs-site.xml

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

启动方式:

$HADOOP_HOME/sbin/start-all

3825 Jps

3089 DataNode

3252 SecondaryNameNode

2903 NameNode

3405 ResourceManager

3695 NodeManager

虚拟机下安装Mysql,当做Hive的元数据库

service mysql status 查看mysql是否启动

service mysql start 启动mysql服务

mysql用的mariaDB,yum安装,搜索“centOS 6 yum安装 mariaDB”。mySQL 启动:service mysql start,service mysql status

查看HIVE元数据:

mysql -uroot -p 访问mysql

use hive;

show tables;

虚拟机下安装Hbase

1、 进入hbase官网,下载hbase1.2.1,因为本地的hadoop版本是2.7.1,要注意hbase和hadoop的兼容性。

2、 下载之后,tar -zxvf hbase-1.2.1-bin.tar.gz

3、 修改hbase conf目录下hbase-site.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.2.100:9000/hbase</value>
注意别忘了端口号,URL要和hadoop core-site.xml保持一致
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/soft/zkdata</value>
</property>注意/soft/zkdata要有读写权限
</configuration>

4、 修改conf 下的 hbase-env.sh

export JAVA_HOME=/soft/jdk1.8.0_171

export HBASE_CLASSPATH=$HADOOP_HOME/conf

export HBASE_MANAGES_ZK=true 这个值默认是true的,作用是让HBase启动的时候同时也启动zookeeper.

5、 启动hbase ./start-hbase.sh,执行JPS会看到如下进程。

[root@localhost bin]# jps

20979 DataNode

21315 ResourceManager

22180 HRegionServer

21605 NodeManager

21158 SecondaryNameNode

21961 HQuorumPeer

23116 Jps

22060 HMaster

20845 NameNode

6、 启动Hbase shell, bin/hbase shell,执行命令测试下Hbase shell能否正常工作。

hbase(main):001:0> list “test”

TABLE

test

1 row(s) in 0.3870 seconds

=> [“test”]

遇到的雷

本地SPARK连HIVE,需要把虚拟机中 hive_home/conf/hive-site.xml 复制到spark_home/conf下一份,并且需要把mysql驱动放到$spark_home/jars中

需要把虚拟机中的MYSQL (hive元数据库)权限调成任何IP都能访问。GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’ IDENTIFIED BY ‘123456’; 执行flush privileges;刷新权限。

如果遇到这个错误。 Hive Schema version 1.2.0 does not match metastore’s schema version 2.1.0 Metastore is not upgraded or corrupt。 需要把hive-site.xml设置成hive.metastore.schema.verification = false

hive.exec.local.scratchdir,hive.querylog.location,hive.server2.logging.operation.log.location 都配置成 /tmp/root。之前放到apache-hive目录下,会报错。

ElasticSearch-hadoop 6.2.3 匹配es 6.x ;ElasticSearch-hadoop 5.2.3 匹配 es 5.x

mac 改成静态IP https://blog.csdn.net/zhishengqianjun/article/details/77046796

本地调用Hbase API的时候,需要执行以下三个步骤,不然就会找不到regionServer反复重试,照成阻塞。

1、 配置Linux的hostname :vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master

2、 配置Linux的hosts,映射ip的hostname的关系

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

193.168.2.100 master

3、配置访问windows的hosts,192.168.2.100 master

mac下安装ElasticSearch

特别简单,自行google

brew services restart elasticsearch

brew services restart kibana

elasticsearch –version 观察es版本

安装目录: /usr/local/Cellar/elasticsearch/6.2.4

brew info elasticsearch 可以查看elasticsearch的详情。很实用的命令。

Mac下vmware 静态IP

虚拟机默认是动态分配IP,一旦IP变更,大数据的环境会有问题。静态IP是必须要解决的问题。

https://blog.csdn.net/zhishengqianjun/article/details/77046796

照着这个帖子,一步一步来。稳稳的。

Idea中执行spark sql

img

需要把spark_home/conf下的hive-site.xml复制到resource目录下。

另外,如果pom中没有mysql jar包的话,需要加入。

将hdfs 文件关联到hive上

1、 首先在虚拟机hive上,创建好表结构

2、 登录线上的hive,找到hive对应的HDFS文件,copy一个part下来。

3、 传到虚拟机的hdfs上

4、执行ALTER TABLE xxx ADD PARTITION (dt=’2013-02-28’)
LOCATION ‘/wsy’; (如果是lzo压缩过的文件,执行lzop -dv 001008_0.lzo 解压缩,不然hive读的时候会乱码)

5、 大功告成。

# Hbase

评论