Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录
Hadoop 2.6 的安装与配置(伪分布式)
- 下载并解压缩
- 配置 .bash_profile :
- export HADOOP_HOME=/Users/fan/Applications/hadoop-2.6.0
- export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- 配置 HDFS :
-
etc/hadoop/core-site.xml:<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>etc/hadoop/hdfs-site.xml:<configuration><property><name>dfs.replication</name><value>1</value></property></configuration>2. 配置 ssh 自动登录,以方便 namenode 管理 datanode 以及节点间的数据传输
- Mac: setting->share-> enable remote login, enable file share
- Others
-
Setup passphraseless ssh
Now check that you can ssh to the localhost without a passphrase:$ ssh localhostIf you cannot ssh to localhost without a passphrase, execute the following commands:$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys$ chmod 0600 ~/.ssh/authorized_keys
-
-
- 启动 HDFS:
- bin/hdfs namenode -format
- Start-dfs.sh
- 测试 HDFS 的 web UI 管理页面:
- 50070端口管理分布式 hdfs文件系统
- 配置 YARN:
-
Configure parameters as follows:etc/hadoop/mapred-site.xml:<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>etc/hadoop/yarn-site.xml:<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>
-
- 启动 YARN:
-
sbin/start-yarn.sh
-
- 测试 YARN 的 web UI 管理页面: localhost:8088/
Start-dfs.sh启动出现问题:
- 无法启动 namenode , 但无出错提示, 在启动 hive 时出现
Connecting to ResourceManager at /0.0.0.0:8032
java.net.ConnectException: Call From marta-komputer/127.0.1.1 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
原因是 namenode 启动失败,此时可以使用 查看 start-dfs.sh 的 log 文件: /Users/fan/Applications/hadoop-2.6.0/logs/hadoop-fan-namenode-MacBook.log ,追踪到以下具体问题:
hadoop/hdfs/name is in an inconsistent state: storage directory(hadoop/hdfs/data/) does not exist or is not accessible
解决方法:
- [CORRECT HDFS-SITE.XML]
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hduser/mydata/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser/mydata/hdfs/datanode</value>
</property>
- 运行 Hadoop namenode -format 格式化目标目录
- Start-dfs.sh 启动 hdfs
Hive 2.1.1 的安装与配置:
- 下载
- 配置.bash_profile文件 :
- Export HIVE_HOME=xxx
- Export PATH=$HIVE_HOME/bin:$PATH
- 复制 conf 目录下的 hive-default.xml-template.xml 重命名为: hive-site.xml
- 修改 hive-site.xml, 配置好 schematool -dbType mysql -initSchema 初始化元数据工具所对应的 metastore 配置
- 修改 hive-site.xml 表中的 mysql 相关driver连接配置:
- 如 driverName mysql user password 等, 参考: url
- 下载 mysql-connector.jar 放入 lib 目录下
- 启动,并修改 mysql 服务
- 运行: schematool -dbType mysql -initSchema
- 修改 hive-site.xml 中的相关配置: http://*.com/questions/27099898/java-net-urisyntaxexception-when-starting-hive
- <name>hive.exec.scratchdir</name><value>/tmp/hive-${user.name}</value><name>hive.exec.local.scratchdir</name><value>/tmp/${user.name}</value><name>hive.downloaded.resources.dir</name><value>/tmp/${user.name}_resources</value><name>hive.scratch.dir.permission</name><value>733</value>
- 启动 hive 测试
Spark2.1.0-hadoop2.6的安装使用:
- 下载
- 增加 export spark_classpath=mysql.connector.xxx.jar
- 复制 hive 的配置文件 hive-site.xml 放入到 spark 的目录下
- 启动 spark-shell 测试发现: aused by: MetaException(message:Hive Schema version 1.2.0 does not match metastore's schema version 2.1.0 Metastore is not upgraded or corrupt)
- 解决方法: 修改配置: https://docs.hortonworks.com/HDPDocuments/Ambari-2.2.2.0/bk_releasenotes_ambari_2.2.2.0/content/ambari_relnotes-2.2.2.0-known-issues.html
- 运行 spark-shell 成功.
即可使用
Hbase 在 Mac 系统中的安装 配置 与启动和使用
- 下载
- cp 到 ~/Application 目录
- 配置 hbase-env.sh 中的 Java Home : export JAVA_HOME=/Users/fan/.jenv/versions/1.8
- 配置hbase-site.xml 文件:
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- </property>
- <property>
- <name>>hbase.rootdir</name>
- <value>hdfs://localhost:9000/user/hbase</value>
- </property>
- 为 hbase 创建 hdfs 文件夹: hadoop fs -mkdir /user/hbase ;
- 配置环境变量 :
- export HBASE_HOME=/Users/fan/Applications/hbase-1.2.4
- export PATH=$HBASE_HOME/bin:$PATH
- 启动 hbase:
- zkServer.sh start
- Start-hbase.sh
- hbase-daemon.sh start thrift (方便 python 连接)
- Hbase shell (cli环境)
- 查看 web ui : http://localhost:16010/master-status
- Hbase cli : hbase shell
Zookeeper 的安装 配置 和 使用
- 配置: cp conf/zoo_sample.cfg conf/zoo.cfg
- 启动
- zkServer.sh start
- 停止:
- zkServer.sh stop
- 命令行管理:
- zkCli.sh
Kafka 的安装 配置 和 使用
- 下载
- 复制到 Applications 目录下
- 安装依赖的 zookeeper 并配置好。
- 设置环境变量:
- KAFKA_HOME=
- 启动kafka, 并测试 producer 和 consumer
-
启动Zookeeper服务:Kafka用到了Zookeeper,所有首先启动Zookper,下面简单的启用一个单实例的Zookkeeper服务。可以在命令的结尾加个&符号,这样就可以启动后离开控制台。
- > bin/zookeeper-server-start.sh config/zookeeper.properties &
- [2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
- ...
2. 现在启动Kafka:- > bin/kafka-server-start.sh config/server.properties
- [2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
- [2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
- .
3: 创建 topic创建一个叫做“test”的topic,它只有一个分区,一个副本。- > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
可以通过list命令查看创建的topic:- > bin/kafka-topics.sh --list --zookeeper localhost:2181
- test
除了手动创建topic,还可以配置broker让它自动创建topic.4:发送消息.Kafka 使用一个简单的命令行producer,从文件中或者从标准输入中读取消息并发送到服务端。默认的每条命令将发送一条消息。运行producer并在控制台中输一些消息,这些消息将被发送到服务端:- > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
- This is a messageThis is another message
ctrl+c可以退出发送。5: 启动consumerKafka also has a command line consumer that will dump out messages to standard output.Kafka也有一个命令行consumer可以读取消息并输出到标准输出:- > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
- This is a message
- This is another message
你在一个终端中运行consumer命令行,另一个终端中运行producer命令行,就可以在一个终端输入消息,另一个终端读取消息。这两个命令都有自己的可选参数,可以在运行的时候不加任何参数可以看到帮助信息。
-