Mac 安装 hadoop+hive+hbase+spark

一、 hadoop

1. 安装JDK和Hadoop

mac自带jdk,用homebrew安装hadoop,注意brew安装的文件都在/usr/local/Cellar/下

brew install hadoop

2. 配置ssh免密码登录

测试一下:ssh localhost

出现 ssh: connect to host localhost port 22: Connection refused

则到系统偏好设置,共享下,打开远程登录功能

3. 配置相关文件(伪分布形式)

(1) core-site.xml

注意,这里hadoop.tmp.dir对应了hadoop的文件系统路径,里面记录了namenode,datanode,mapred的相关信息,hdfs下的文件内容都在这里,默认情况下,它对应的是/tmp/{$user},这是个随时会清空的路径,每次重启也会自动清空,这将会影响hdfs内容的存储,必须修改路径;

如果不修改,对应的bug现象是:jps找不到datanode 或 datanode等;一般这时候需要格式化hdfs,bin/hadoop namenode -format,多次之后,出现 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Java.io.IOException:Incompatible namespaceIDs 

(2) hdfs-site.xml 

伪分布式不需要备份文件信息了

(3) mapred-site.xml

 

貌似参考了hadoop1.0版本的设置。。。需要配置yarn的请参考其他说明,如: 

 

http://www.cnblogs.com/micrari/p/5716851.html

4. 配置环境(~/.bash_profile)

 

5. 测试

格式化hdfs(参考): bin/hadoop namenode -format

启动hadoop: start-hadoop

bug:“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”

原因:hadoop的lib是32位的,系统64位,需要重新编译lib库,不管它也可以正常运行大部分功能

命令行检查: jps

 

至少要出现datanode,resourceManager,namenode

浏览器查看:

 

ResourceManager:http://localhost:50070 

 

JobTracker:http://localhost:8088 

 

Node imformation:http://localhost:8042 

 

DataNode:http://localhost:50075

6. bug

 

(1)hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop 

 

.ipc.RemoteException: java.io.IOException: … could only be replicated to 0 nodes, instead of 1 …

datanode启动异常

检查是不是hadoop.tmp.dir路径有问题

(2)It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon

单节点hadoop,端口号不是9000,参考5中端口号

参考:http://www.jianshu.com/p/d19ce17234b7

二、 hive

1、hive简介

hive能将hdfs上的数据看作是数据库表的形式来处理,为此,它需要为数据形成表模式,这些信息存储在metastore数据库中,也就是说,它依赖数据库的管理模式,所以是需要为节点配置数据库的。

hive的metastore的配置有三种模式:

(1) 内嵌metasore:每次只能有一个内嵌的Derby数据库可以访问某个磁盘的数据库文件,这是hive默认的配置形式

(2) 本地metastore:支持多用户同时访问,但是metastore服务会和hive服务运行在同一个进程

(3)远程metastore:metastore服务和hive服务运行在不同进程,数据库可以置于防火墙之后

2、 安装hive

brew:brew install hive

3、 配置环境(~/.bash_profile)

 

4、 配置metastore

这里采用本地metastore配置

(1) 安装mysql:brew install mysql

(2) 测试mysql:

mysql.server start

mysql_secure_installation

mysql -u root -p

(3) mysql下创建metastore和hive用户

 

这里创建了数据库metastore,本地用户hiveuser

(4) 下载mysql的jdbc:

 

 

(高版本会提示找不到扩展库)

 

5、 配置hive

(1) hive-default.xml

直接cp hive-deafult.xml.template hive-default.xml

(2) hive-site.xml

 

 

 

 

 

 

 

 

 

 

 

主要是配上javax.jdo.option.ConnectionURL,设置为刚刚创建的metastore,javax.jdo.option.ConnectionDriverName设置为jdbc的驱动,javax.jdo.option.ConnectionUserName设置为刚刚建立的用户hiveuser,hive.metastore.warehouse.dir设置hive内表对应的hdfs路径根目录

6、 测试

 

hadoop开启:hadoop-start 

 

hive开启: hive

 

7、 bug

(1) Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStore

没有关联上对应的metastore,这里可能是没有事先创建好db,mysql的服务又没有启动;也可能是忘记先开启hadoop;

(2)Version information not found 

hive-site.xml中没有hive.metastore.schema.verification为false

(3)metastore_db cannot create

 

“ERROR Datastore.Schema (Log4JLogger.java:error(125)) - Failed initialising database. 

 

Failed to create database ‘metastore_db’, see the next exception for details”

检查hive-site.xml路径;第一次启动,写权限不够,sudo hive即可(不确定第二条成不成立,不记得具体如何解决了)

参考:http://www.cnblogs.com/ToDoToTry/p/5349753.html

三、 hbase

1. 安装hbase

brew:brew install hbase

2. 配置参数

(1)hbase-env.sh

这里我主要打开了hbase自带的zookeeper,设置hadoop路径

(2)hbase-site.xml

 

 

这里主要是hbase.rootdir端口号要和hadoop的datanode保持一致,zookeeper采用系统默认的,hbase的端口号hbase.master.info.port改为60010

3. 配置环境(~/.bash_profile)

4. 测试

(1)shell下查看:hbase shell

(2)服务查看:start-hbase.sh,进入localhost:60010

5. bug

(1)hbase 控制台打不开

hbase 1.0 以后的版本,需要自己手动配置hbase端口,在文件 hbase-site.xml 中添加如下配置

 

四、 spark

1. 安装scala

brew:brew install scala

2. 下载spark

官网:http://spark.apache.org/downloads.html

3. 安装spark

把下载的包解压到 /usr/local/spark/

4. 配置spark

(1)

(2) spark-env.sh

5. 配置环境(~/.bash_profile)

6. 测试

 

开启spark:start-spark 

 

运行demo:

shell测试:spark-shell

7. bug

(1)Java.NET.BindException: Cannot assign requested address: Service ‘sparkDriver’ failed after 16 retries (starting from 0)! Consider explicitly setting the appropriate port for the service ‘sparkDriver’ (for example spark.ui.port for SparkUI) to an available port or increasing spark.port.maxRetries.

根据提示,这里是端口号没设置上,检查spark-env.sh,是否有设置如下两个参数

(2)Directory /usr/local/spark/spark-2.2.0-bin-hadoop2.7/metastore_db cannot be created.

该路径上创建db文件夹没有权限,用sudo spark-shell

(3)mac root@localhost’s password: localhost: Permission denied, please try again

如果忘记密码,则重设root密码:

sudo passwd root

否则可能远程登录服务没开启:

sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

或者直接在系统偏好设置的共享里面打开远程登录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值