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
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 | <configuration> |
hdfs-site.xml
1 | <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 | <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
需要把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、 大功告成。