大数据环境构建【hadoop】【spark】【hive】

一.背景:

Hadoop环境:2.6.4

Python环境:3.5.X

Spark环境:2.2.0

Hive环境:1.2.2

JDK版本:1.8

二.集群环境:

关于Hadoop集群环境:我自己使用三台机器,一台本地电脑,两台虚拟机。

本地:192.168.60.194  hadoop00(Mac Os)  用户名:zhaoyan 密码:xxx

虚拟机1:192.168.60.69 hadoop01(Centos) 用户名:root 密码:xxx

虚拟机2:192.168.60.70 hadoop02(Centos) 用户名:root 密码:xxx

(这里有一个小坑,本地的用户名和虚拟机的用户名不一样,会造成ssh连接有点问题,后面SSH再说。)

首先修改机器的hosts文件,默认在/etc/hosts下。

三台机器都修改如下:

192.168.60.194 hadoop00

192.168.60.69 hadoop01

192.168.60.70 hadoop02

关于虚拟机和本地的通信使用的是SSH连接。

SSH免密码连接(设置好这个以后SSH连接就不需要每次都输入密码):在本地生成自己的公钥,然后把公钥复制到两台虚拟机的上。因为本地的的用户和虚拟机上的用户不一样,必须在本地的.ssh文件夹下的conf里配置:

Host hadoop01

    user root

Host hadoop02

user root

这样在ssh时就知道是连接远端的root用户

 

三.Hadoop

3.1 . Hadoop安装

安装:到官网上下载编译好的二进制包下载下来就行了。

修改.bash_profile文件,

export   HADOOP_HOME=/usr/local/Cellar/hadoop/2.6.4

export   PATH=$PATH:/usr/local/Cellar/hadoop/2.6.4/bin

 

 

3.2.Hadoop配置

hadoop的配置文件:hadoop配置文件一般下$HADOOP_HOME/etc/Hadoop,集群环境下需要修改如下几个文件:

1).hadoop-env.sh: export JAVA_HOME=本地的JAVA路径

2).hdfs-site.xml:

dfs.replication:副本个数,这里设置为3,刚好有三台机器(默认也是3)

dfs.permissions:权限检查,这里设置关闭,因为本地用户和虚拟机用户不一样,设置设置为false,关闭是解决用户的不同导致hadoop01和hadoop02不能连接到hadoop00的9000端口的问题。(因为在本机用zhaoyan用户启动的namenode,所有zhaoyan是超级用户,root不是)其实不管权限模式是开还是关,chmodchgrp  chown 总是 会检查权限。这些命令只有在权限检查背景下才有用,所以不会有兼容性问题。这样,这就能让管理员在打开常规的权限检查之前可以可靠地设置文件的所有者和权限。

dfs:webhdfs.enabled:在web端能否直接点击进入文件夹(http://localhost:50070端口下使用

   dfs.namenode.name.dir:namenode在本地存放的位置

  dfs.datanode.data.dir:datanode在本地存放的位置

  

 <property>

     <name>dfs.replication</name>

     <value>3</value>

 </property>

 <property>

   <name>dfs.permissions</name>

   <value>false</value>

 </property>

 <property>

   <name>dfs.webhdfs.enabled</name>

   <value>true</value>

 </property>

 <property>

   <name>dfs.namenode.name.dir</name>

   <value>file:///usr/local/Cellar/hadoop/hdfs/tmp/dfs/name</value>

  </property>

  <property>

   <name>dfs.datanode.data.dir</name>

   <value>file:///usr/local/Cellar/hadoop/hdfs/tmp/dfs/data</value>

  </property>

3).core-site.xml

fs.default.name: hadoop文件系统的位置,这里是放在hadoop00上面的9000端口

   <property>

      <name>fs.default.name</name>

     <value>hdfs://hadoop00:9000</value>

</property>

4).mapred-site.xml

 mapreduce.framework.name:mapreduce运行的环境,这里配置为用yarn来运行

     <property>

 <name>mapreduce.framework.name</name>

        <value>yarn</value>

 </property>

5).slaves

这里写上所有集群中使用到的机器即可

hadoop00

hadoop01

hadoop02

这里在本机上修改好了配置之后,将配置文件复制到虚拟机上即可。

3.3.Hadoop启动:

 1).在hadoop的home目录下的bin目录下使用hdfs namenode –format命令初始化文件系统

 2).在hadoop的home目录下的sbin下使用start-all.sh启动即可。或者使用start-dfs.sh加上start-yarn.sh这里会运行如下进程,可通过jps查看.就算是成功启动

hadoop00:  NameNode, DataNode, SecondaryNameNode, NodeManager, ResourceManager

hadoop01:  DataNode,NodeManager

hadoop02:  DataNode,NodeManager

因为是在hadoop00上启动的hadoop,所有hadoop00是master,hadoo01和hadoop02是slave。master上面会比slave上面多NameNode和SecondaryNameNode和ResourceManager.

 

 

可以通过访问http://hadoop00:50070来访问文件系统

也可以通过http://hadoop00:8088来访问yarn

四.Spark

4.1.Spark安装

安装:到官网上下载编译好的二进制包下载下来就行了。

修改~.bash_profile文件:

export   PATH=$PATH:/usr/local/Cellar/spark/2.2.0/bin

export   SPARK_HOME=/usr/local/Cellar/spark/2.2.0

4.2 . Spark配置

1).spark-env.sh

exportSCALA_HOME=/usr/local/Cellar/scala/2.12.4 

exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

export SPARK_WORKER_MEMORY=1g  //work节点运行的内存大小

export HADOOP_HOME=$HADOOP_HOME exportSTANDALONE_SPARK_MASTER_HOST=hadoop00 

export SPARK_MASTER_IP=$STANDALONE_SPARK_MASTER_HOST

export SPARK_LAUNCH_WITH_SCALA=0

exportSPARK_LIBRARY_PATH=${SPARK_HOME}/jars 

exportSCALA_LIBRARY_PATH=${SCALA_HOME}/lib  

exportSPARK_MASTER_WEBUI_PORT=18080  

if [ -n"$HADOOP_HOME"  ]; then

  export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:${HADOOP_HOME}/lib/native

fi

exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

 

 

2).slaves

hadoop00

hadoop01

hadoop02

 

这里在本机上修改好了配置之后,将配置文件复制到虚拟机上即可。

 

4.2 . Spark启动

1)在hadoop00上的SPARK_HOME目录下的sbin目录中:

start-master.sh –h hadoop00

start-slave.sh spark://hadoop00:7077

2)在hadoop01上的SPARK_HOME目录下的sbin目录中:

start-slave.shspark://hadoop00:7077

3)在hadoop02上的SPARK_HOME目录下的sbin目录中:

start-slave.shspark://hadoop00:7077

启动完成之后增加的进程.

hadoop00:Master Worker

hadoop01:Worker

hadoop02:Worker

 

也可以通过Web页面进行访问:http://hadoop00:10080(默认为8080,在启动中对端口进行了修改)

五.Hive:

5.1.Hive安装

安装:到官网上下载编译好的二进制包下载下来就行了。

修改~.bash_profile文件:

export   HIVE_HOME=/usr/local/Cellar/hive/1.2.2

export   PATH=$PATH:/usr/local/Cellar/hive/1.2.2/bin

5.2.创建元数据库

mysql>create database metastore;

mysql>create user 'hive'@'localhost'identified by 'pwd';

mysql>grant select,insert,update,delete,alter,create,index,referenceson metastore.* to'hive'@'localhost';

mysql>flush privileges;

 

 

5.3.Hive配置

1).hive-env.sh

HADOOP_HOME=/usr/local/Cellar/hadoop/2.6.4

export   HIVE_CONF_DIR=/usr/local/Cellar/hive/1.2.2/conf

export   HIVE_AUX_JARS_PATH=/usr/local/Cellar/hive/1.2.2/lib

2).hive-site.xml 

hive.metastore.warehouse.dir:hive数据在HDFS中的目录

hive.exec.scratchdir:hive在HDFS中的临时目录

hive.exec.local.scratchdir:hive的本地临时目录

hive.downloaded.resources.dir:hive下载的本地临时目录

javax.jdo.option.ConnectionURL:元数据连接的URL,这里我们使用mysql

javax.jdo.option.ConnectionDriverName:连接的驱动,这里我们使用mysql,需要把mysql的connect的jar包拷贝到hive的lib目录下

javax.jdo.option.ConnectionUserName:mysql的用户名hive

javax.jdo.option.ConnectionPassword:mysql密码

 

 

  <property>

   <name>hive.exec.scratchdir</name>

<value>/tmp/hive</value>

  </property>

  <property>

   <name>hive.exec.local.scratchdir</name>

    <value>/tmp/hive</value>

  </property>

  <property>

   <name>hive.metastore.warehouse.dir</name>

   <value>/user/hive/warehouse</value>

  </property>

  <property>

   <name>hive.downloaded.resources.dir</name>

    <value>/tmp/hive</value>

  </property>

  <property>

   <name>javax.jdo.option.ConnectionURL</name>

   <value>jdbc:mysql://localhost:3306/metastore</value>

  </property>

  <property>

   <name>javax.jdo.option.ConnectionDriverName</name>

   <value>com.mysql.jdbc.Driver</value>

  </property>

  <property>

   <name>javax.jdo.option.ConnectionUserName</name>

    <value>hive</value>

  </property>

  <property>

   <name>javax.jdo.option.ConnectionPassword</name>

    <value>pwd</value>

  </property>

 

5.4.初始化库

在HIVE_HOME的bin目录下执行schematool –initSchema –dbType mysql,执行之后我们可以看到在mysql的metastore库中会生成一系列表,就表示成功了。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值