搭建大数据处理集群(Hadoop,Spark,Hbase)

来源:互联网 发布:阿里云奥运logo 编辑:程序博客网 时间:2024/05/29 17:04

搭建Hadoop集群

配置每台机器的 /etc/hosts保证每台机器之间可以互访。
120.94.158.190 master
120.94.158.191 secondMaster

1、创建hadoop用户
先创建hadoop组
sudo addgroup hadoop
然后再建一个hadoop用户加入到hadoop组,(前一个为组,后一个为用户)
sudo adduser -ingroup hadoop hadoop
然后输入密码,接下来一路ENTER
完成创建
配置用户的环境变量
找到用户目录,
cd /home/hadoop
在此目录下有一个 .bashrc 文件 ,在文件末尾后加入

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH

完成配置

2、创建用户目录
cd /home
sudo mkdir hadoop
更改用户所有者和用户所属组
sudo chown hadoop hadoop
sudo chgrp hadoop hadoop

3、配置ssh为无密码登录

   cd /home/hadoop   ssh-keygen -t rsa

一路回车,产生一个隐藏文件夹.ssh

cd .ssh

通过ls 可以查看生成的文件

 cp id_rsa.pub authorized_keys

现在测试一下
ssh localhost
或ssh master
第一次的时候会出现一些信息,我们输入yes来继续,这会把该服务器加到你的已知主机的列表中。

4、复制authorized_keys到其它节点上。
为了保证master节点可以无需密码自动登录其它节点,先在其它节点上执行
sudo hadoop
cd /home/hadoop
ssh-keygen -t rsa
一路回车。
然后回到master,复制authorized_keys到其它节点

scp authorized_keys secondMaster:/home/hadoop/.ssh/

这里会提示要输入密码,输入hadoop账号密码就可以了。
改动你的 authorized_keys文件的许可权限

chmod 644 authorized_keys

测试 ssh secondMaster
第一次需要输入密码,之后就不需要了。

5、集群配置
hadoop-env.sh,
yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

core-site.xml

<configuration>  <property>    <name>fs.defaultFS</name>    <value>hdfs://master:9000</value>  </property></configuration>

hdfs-site.xml

<configuration>  <property>    <name>dfs.namenode.secondary.http-address</name>    <value>master:9001</value>  </property>  <property>    <name>dfs.namenode.name.dir</name>    <value>file:/home/hadoop/name</value>  </property>  <property>    <name>dfs.datanode.data.dir</name>    <value>file:/home/hadoop/data</value>  </property>  <property>    <name>dfs.replication</name>    <value>2</value>  </property>  <property>    <name>dfs.webhdfs.enabled</name>    <value>true</value>  </property></configuration>

mapred-site.xml

<configuration>  <property>    <name>mapreduce.framework.name</name>    <value>yarn</value>  </property>  <property>    <name>mapreduce.jobhistory.address</name>    <value>master:10020</value>  </property>  <property>    <name>mapreduce.jobhistory.webapp.address</name>    <value>master:19888</value>  </property></configuration>

yarn-site.xml

<configuration>  <property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value>  </property>  <property>    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>    <value>org.apache.hadoop.mapred.ShuffleHandler</value>  </property>  <property>    <name>yarn.resourcemanager.address</name>    <value>master:8032</value>  </property>  <property>    <name>yarn.resourcemanager.scheduler.address</name>    <value>master:8030</value>  </property>  <property>    <name>yarn.resourcemanager.resource-tracker.address</name>    <value>master:8031</value>  </property>  <property>    <name>yarn.resourcemanager.admin.address</name>    <value>master:8033</value>  </property>  <property>    <name>yarn.resourcemanager.webapp.address</name>    <value>master:8088</value>  </property></configuration>

配置 slaves文件
secondMaster

切换到hadoop用户

su hadoop

创建目录

   mkdir tmp   mkdir name   mkdir data

把hadoop复制到其它节点上去。

   scp -r ./hadoop secondMaster:/home/hadoop

格式化分布式文件系统

   cd hadoop   ./bin/hdfs namenode -format

启动hadoop

./sbin/start-dfs.sh

此时,master主机上面运行的进程有:namenode,secondarynamenode
在node1 node2 node3主机上面运行的进程有:datanode

 ./sbin/start-yarn.sh

此时,master主机上面运行的进程有:namenode,secondarynamenode,resourcemanager
在node1 node2 node3主机上面运行的进程有:datanode,nodemanager

http://master:50070/dfshealth.html#tab-overview
http://master:8088/cluster/nodes

配置Spark集群

1、编辑配置文件spark-env.sh,在此脚本最后一行加入以下行

export SPARK_DIST_CLASSPATH=$(/home/hadoop/hadoop-2.6.1/bin/hadoop classpath)

其中,/home/hadoop/hadoop-2.6.1是Hadoop安装目录

2、接下来编辑conf/slaves文件,
直接在加入一行

secondMaster

然后把配置好的整个Spark复制到其他节点,如secondMaster

scp -r spark-1.6.0-bin-hadoop2.4/ secondMaster:/home/hadoop/

配置Hbase集群

1、配置hbase-site.xml

<configuration>  <property>    <name>hbase.zookeeper.quorum</name>    <value>master,secondMaster</value>    <description>The directory shared by RegionServers.    </description>  </property>  <property>    <name>hbase.zookeeper.property.dataDir</name>    <value>/home/hadoop/zookeeper</value>    <description>Property from ZooKeeper config zoo.cfg.    The directory where the snapshot is stored.    </description>  </property>  <property>    <name>hbase.rootdir</name>    <value>hdfs://master:9000/hbase</value>    <description>The directory shared by RegionServers.    </description>  </property>  <property>    <name>hbase.cluster.distributed</name>    <value>true</value>    <description>The mode the cluster will be in. Possible values are      false: standalone and pseudo-distributed setups with managed ZooKeeper      true: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh)    </description>  </property></configuration>

2、配置hbase-env.sh中的JAVA_HOME和HBASE_HEAPSIZE
先找到各自的位置,然后添加在下面即可

# export JAVA_HOME=/usr/java/jdk1.6.0/export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64# export HBASE_HEAPSIZE=1Gexport HBASE_HEAPSIZE=4G

3、配置regionservers文件
添加相应的regionservers,在这里,添加如下

secondMaster

4、创建zookeeper目录

su hadoopcd mkdir zookeeper
0 0
原创粉丝点击