Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录

Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录
 
 
Hadoop 2.6 的安装与配置(伪分布式)
  1. 下载并解压缩
  2. 配置 .bash_profile :
    1. export HADOOP_HOME=/Users/fan/Applications/hadoop-2.6.0
    2. export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
  3. 配置 HDFS :
    1. 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 以及节点间的数据传输
      1. Mac:  setting->share-> enable remote login, enable file share
      2. Others
        1. Setup passphraseless ssh

          Now check that you can ssh to the localhost without a passphrase:
            $ ssh localhost
           
          If 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
           
  4. 启动 HDFS:
    1. bin/hdfs namenode -format
    2. Start-dfs.sh
  5. 测试 HDFS 的 web UI 管理页面:
    1. 50070端口管理分布式 hdfs文件系统
  6. 配置 YARN:
    1. 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>
       
  7. 启动 YARN:
    1. sbin/start-yarn.sh
       
  8. 测试 YARN 的 web UI 管理页面: localhost:8088/
 
Start-dfs.sh启动出现问题:
  1. 无法启动 namenode , 但无出错提示, 在启动 hive 时出现
  2. 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
 
解决方法: 
 
  1. [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>
  1. 运行 Hadoop namenode -format 格式化目标目录
  2. Start-dfs.sh 启动 hdfs
 
 
 
 
 
Hive 2.1.1 的安装与配置:
 
  1. 下载
  2. 配置.bash_profile文件 :
    1. Export HIVE_HOME=xxx
    2. Export PATH=$HIVE_HOME/bin:$PATH
  3. 复制 conf 目录下的 hive-default.xml-template.xml 重命名为: hive-site.xml
  4. 修改 hive-site.xml,  配置好 schematool -dbType mysql -initSchema 初始化元数据工具所对应的 metastore 配置
    1. 修改 hive-site.xml 表中的 mysql 相关driver连接配置:
      1. 如  driverName   mysql user  password 等,  参考: url
      2. 下载 mysql-connector.jar 放入 lib 目录下
    2. 启动,并修改 mysql 服务
  5. 运行:  schematool -dbType mysql -initSchema
  6. 修改 hive-site.xml 中的相关配置:  http://*.com/questions/27099898/java-net-urisyntaxexception-when-starting-hive
    1. <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>
  7. 启动 hive 测试
 
 
Spark2.1.0-hadoop2.6的安装使用:
 
  1. 下载
  2. 增加 export  spark_classpath=mysql.connector.xxx.jar
  3. 复制 hive 的配置文件 hive-site.xml 放入到 spark 的目录下
  4. 启动 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)
  5. 解决方法:   修改配置: 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
  6. 运行 spark-shell  成功.
即可使用    
 
 
 
Hbase 在 Mac 系统中的安装 配置 与启动和使用
 
  1. 下载
  2. cp 到 ~/Application 目录
  3. 配置 hbase-env.sh 中的 Java Home :  export JAVA_HOME=/Users/fan/.jenv/versions/1.8
  4. 配置hbase-site.xml 文件:
    1. <property>
    2. <name>hbase.cluster.distributed</name>
    3. <value>true</value>
    4. </property>
    5. <property>
    6. <name>>hbase.rootdir</name>
    7. <value>hdfs://localhost:9000/user/hbase</value>
    8. </property>
  5. 为 hbase 创建 hdfs 文件夹: hadoop fs -mkdir /user/hbase ;
  6. 配置环境变量 :
    1. export HBASE_HOME=/Users/fan/Applications/hbase-1.2.4
    2. export PATH=$HBASE_HOME/bin:$PATH
  7. 启动 hbase:
    1. zkServer.sh start
    2. Start-hbase.sh
    3. hbase-daemon.sh start thrift (方便 python 连接)
    4. Hbase shell   (cli环境)
  8. 查看 web ui :  http://localhost:16010/master-status
  9. Hbase cli :  hbase shell
 
Zookeeper 的安装 配置 和 使用
 
  1. 配置: cp  conf/zoo_sample.cfg  conf/zoo.cfg
  2. 启动
    1. zkServer.sh start
  3. 停止:
    1. zkServer.sh stop
  4. 命令行管理:
    1. zkCli.sh
 
 
 
Kafka 的安装 配置 和 使用
 
  1. 下载
  2. 复制到 Applications 目录下
  3. 安装依赖的 zookeeper 并配置好。
  4. 设置环境变量:
    1. KAFKA_HOME=
  5. 启动kafka, 并测试 producer 和 consumer
    1. 启动Zookeeper服务:
      Kafka用到了Zookeeper,所有首先启动Zookper,下面简单的启用一个单实例的Zookkeeper服务。可以在命令的结尾加个&符号,这样就可以启动后离开控制台。
      1. > bin/zookeeper-server-start.sh config/zookeeper.properties &
      2. [2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
      3. ...
      2. 现在启动Kafka:
      1. > bin/kafka-server-start.sh config/server.properties
      2. [2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
      3. [2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
      4. .
      3: 创建 topic
       
      创建一个叫做“test”的topic,它只有一个分区,一个副本。
      1. > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
      可以通过list命令查看创建的topic:
      1. > bin/kafka-topics.sh --list --zookeeper localhost:2181
      2. test
       
      除了手动创建topic,还可以配置broker让它自动创建topic.
       
      4:发送消息.
       
      Kafka 使用一个简单的命令行producer,从文件中或者从标准输入中读取消息并发送到服务端。默认的每条命令将发送一条消息。
       
      运行producer并在控制台中输一些消息,这些消息将被发送到服务端:
      1. > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
      2. This is a messageThis is another message
      ctrl+c可以退出发送。
       
      5: 启动consumer
       
      Kafka also has a command line consumer that will dump out messages to standard output.
      Kafka也有一个命令行consumer可以读取消息并输出到标准输出:
      1. > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
      2. This is a message
      3. This is another message
      你在一个终端中运行consumer命令行,另一个终端中运行producer命令行,就可以在一个终端输入消息,另一个终端读取消息。
      这两个命令都有自己的可选参数,可以在运行的时候不加任何参数可以看到帮助信息。
       
 
上一篇:gen_grant_exec.sql


下一篇:Eclipse远程提交hadoop集群任务