Hadoop环境搭建
来源:互联网 发布:石油大亨mac版 编辑:程序博客网 时间:2024/06/11 02:11
包含hadoop、hive、hbase、zookeeper、storm、spark、Kafka、flume、sqoop
一、服务器基本配置
服务器系统版本:CentOS release 6.4 (Final)
JDK版本:java version “1.7.0_60*
二、 集群信息
三、 各组件版本信息
四、安装步骤
4.1 环境基本配置
addusr hadusr #创建用户passwd hadusr #修改密码mkdir hdfs hdfs_tmp #创建文件夹chown -R hadusr:hadusr hdfs hdfs_tmp #设置文件夹宿主vi /etc/sysconfig/network #修改主机名 重启后生效vi /etc/hosts #配置IP 主机名映射
4.2 配置集群无密登陆
#生成秘钥A、ssh-keygen -t rsa #收集所有机器上.ssh下生成的id_rsa.pub(公钥文件), #并将所有的公钥文追加至authorized_keys文件B、cat id_rsa.pub >> authorized_keys#将公钥分发至所有机器(以hdp04为例) C、scp -r ~/.ssh/authorized_keys hdp04:/home/hadusr/.ssh/D、然后赋权:chmod 600 authorized_keys #给公钥文件赋权
4.3 hadoop安装配置
a、配置core-site.xml文件
<property> <name>hadoop.tmp.dir</name> <value>/hdfs/hadoop_tmp</value> <description> Abase for other temporary directories. </description></property><property> <name>fs.defaultFS</name> <value>hdfs://hdp01:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>4096</value> </property>
配置b、java环境变量
vi hadoop-env.sh 和 yarn-env.sh#在开头添加如下JAVA环境变量(一定要添加切勿少了)export JAVA_HOME=/soft/jdk1.7.0_79
c、配置hdfs-site.xml文件
<property> <name>dfs.namenode.name.dir</name> <value>file:///hdfs_tmp/hadoop_name</value></property><property> <name>dfs.datanode.data.dir</name> <value>file:///hdfs_tmp/hadoop_data</value><property> <name>dfs.replication</name> <value>3</value></property><property> <name>dfs.nameservices</name> <value>hadoop-cluster1</value></property><property> <name>dfs.namenode.secondary.http-address</name> <value>hdp01:50090</value></property><property> <name>dfs.webhdfs.enabled</name> <value>true</value></property>
d、配置mapred-site.xml文件
<property> <name>mapreduce.framework.name</name> <value>yarn</value> <final>true</final></property><property> <name>mapreduce.jobtracker.http.address</name> <value>hdp01:50030</value></property><property> <name>mapreduce.jobhistory.address</name> <value>hdp01:10020</value></property><property> <name>mapreduce.jobhistory.webapp.address</name> <value>hdp01:19888</value></property><property> <name>mapred.job.tracker</name> <value>http://hdp01:9001</value></property>
e、配置yarn-site.xml文件
<property> <name>yarn.resourcemanager.hostname</name> <value>hdp01</value></property><property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value></property><property> <name>yarn.resourcemanager.address</name> <value>hdp01:8032</value></property><property> <name>yarn.resourcemanager.scheduler.address</name> <value>hdp01:8030</value></property><property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hdp01:8031</value></property><property> <name>yarn.resourcemanager.admin.address</name> <value>hdp01:8033</value></property><property> <name>yarn.resourcemanager.webapp.address</name> <value>hdp01:8088</value></property>
f、配置slaves
vi slaves 将slaves节点的机器配置在该文件
g、格式化集群
将以上配置好的hadoop分发至集群其它机器上
h、格式化集群
hadoop namenode -format
i、配置环境变量后启动
start-all.sh
j、查看集群状态
hdfs dfsadmin –report
4.4 zookeeper安装
a、下载zookeeper-3.3.6.tar.gz压缩包,并解压
b、2、 Zookeeper配置
进入zookeeper安装目录conf文件夹,复制zoo_sample.cfg并命名为zoo.cfg,配置好该文件即可,具体内容如下:# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.dataDir=/hadoop_install/zookeeper-3.3.6/data# the port at which the clients will connectclientPort=2222server.1=Hadoop-Main-Server:2888:3888server.2=Hadoop-DataNode-01:2888:3888server.3=Hadoop-DataNode-02:2888:3888server.4=Hadoop-DataNode-03:2888:3888
c、参数说明
initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒 syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒 server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。 注意:除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就有一个数据就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。
d、将配置好的zookeeper拷贝至所有节点
e、启动停止命令
通过zkServer.sh [start][stop][status]可启动、停止、查看zookeeper状态
4.5 storm安装
4.5.1 ZMQ(消息队列)安装
下载zeromq-2.2.0.tar.gz解压:tar -zxvf zeromq-2.2.0.tar.gz -C /soft/安装:./configure
安装遇到以下问题以及解决方法,不同环境可能遇到不同问题,针对性解决即可执行 ./configure遇到如下错误
解决办法如下
如上图,依然报错,继续解决安装:util-linux-2.21.1.tar.gz解压后 ./configure依然报错,使用 ./configure --without-ncurses && make即可最后:make install解决
继续安装zeromq-2.2.0.tar.gz./configuremakemake install
安装成功,结束。
4.5.2 编译安装JZMQ(是java调用c++的一个桥梁)
下载jzmq-master.zip(master)#安装解压工具yum install unzip#解压unzip master安装:cd jzmq-master./autogen.sh
出现以下错误:
安装 pkg-config
依然报错:下载 wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz解压安装./configure
依然出现如下错误
使用如下方式安装:./configure --with-internal-glibmakemake install安装成功
继续安装jmzq./ autogen.sh (发现缺少libtool yum install libtoolOK,搞定
4.5.3 下载安装storm
storm相关配置 /conf/storm.yamla、storm.zookeeper.servers:storm集群使用的Zookeeper集群地址,其格式如下:
b、storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如上图:c、java.library.path:Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为"/usr/local/lib:/opt/local/lib:/usr/lib",一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。d、 nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件e、supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如上图配置:f、 zookeeper默认端口是2181 若为默认端口,该文件不需重配置端口g、drpc.servers 内存分配配置
h、主节点配置nimbus.host: "hdp02"
以上所有步骤均在集群的每台机器上进行安装配置
4.5.3 storm集群启动
#客户端关闭 可正常运行#主节点nohup storm nimbus &#界面nohup storm ui &#子节点nohup storm supervisor &#结束storm进程storm kill SocketProcess
4.5.4 storm程序包提交
开发完成打jar包后:#配置为可执行shellStorm_syslog_warn.sh#shell具体内容storm jar /hdfs/test/xf9-log-handle-0.0.1-SNAPSHOT.jar com.xf9.log.topo.LogTopo xf9-syslog_warning
http://hdp02:8080/index.html即可查看集群状态
以上,说明storm安装完成并正常启动
4.6 spark安装
安装spark-2.1.0-bin-hadoop2.6版本spark安装比较简单,进行相关配置即可a、conf/spark-env.shexport SPARK_MASTER_IP=hdp01export SPARK_MASTER_PORT=7077export JAVA_HOME=/usr/java/jdk1.7.0_60export SCALA_HOME=/hdfs/scala-2.11.8export SPARK_WORKER_MEMORY=2gexport HADOOP_CONF_DIR=/hdfs/hadoop-2.6.0/etc/hadoopb、vi slaves配置子节点 hdp02 hdp03 hdp04c、将配置好的软件包分发至其它机器即可d、为了便于使用,配置好用户环境变量即可e、集群启动 /sbin/start-all.sh即可启动集群f、在bin目录下可启动spark-shell pyspark spark-sql等组件
后续继续分享spark的简单开发使用案例。
4.7 kafka安装
kafka下载解压后,分布在集群对应机器上即可,下面简单列下基本使用方法:
*服务启动(需要在集群机器上均启动)#按此方法启动可保证服务在后台正常运行kafka-server-start.sh -daemon /soft/kafka_2.10-0.8.2.1/config/server.properties >/dev/null 2>&1 &*创建一个topic##创建一个名称为my-topic的Topic,5个分区,并且复制因子为3kafka-topics.sh --create --zookeeper hdp02:2181,hdp03:2181,hdp04:2181 --replication-factor 3 --partitions 5 --topic my-test*查看topic#查看名为my-test的topickafka-topics.sh --describe --zookeeper hdp02:2181,hdp03:2181,hdp04:2181 --topic my-test#查看所有topickafka-topics.sh --describe --zookeeper hdp02:2181,hdp03:2181,hdp04:2181 --list#具体参数说明Partition: 分区Leader : 负责读写指定分区的节点Replicas : 复制该分区log的节点列表Isr : "in-sync" replicas,当前活跃的副本列表(是一个子集), 并且可能成为Leader
模拟生产-消费过程模拟生产-消费过程在一个终端启动生产程序:kafka-console-producer.sh --broker-list hdp02:9092,hdp03:9092,hdp04:9092 --topic my-test在另一个终端自动消费程序:kafka-console-consumer.sh --zookeeper hdp02:2181,hdp03:2181,hdp04:2181 --from-beginning --topic my-test此时可以在Producer终端上输入字符串消息行,然后回车,就可以在Consumer终端上看到消费者消费的消息内容。
4.8 hive安装
下载解压后配置hive环境变量
vi /conf/hive-env.sh#添加如下内容export HADOOP_HOME=/hdfs/hadoop-2.6.0export HIVE_CONF_DIR=/hdfs/apache-hive-1.2.0-bin/conf#配置hive元数据存储信息,默认的存储为自带的derby数据库,只允许单用户访问#配置数据库连接信息<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.168.1:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property>#驱动配置<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property>#配置连接mysql数据库的用户名和密码<property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property>以上配置完后,执行bin/hive命令即可启动show databases; #查看数据库use db; #指定使用的数据库show tables; #查看数据库里面的表#将hive配置成服务端,客户端单独启动模式vi hive-site.xml <property> <name>hive.metastore.uris</name> <value>thrift://192.168.168.1:9083</value> <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property>在后台启动服务端nohup hive --service metastore 2>&1 &再启动 /bin/hive 即可使用
4.9 hbase安装
1、下载hbase-0.94.8.tar.gz
2、tar –zxvf hbase-0.94.8.tar.gz解压该文件
3、相关配置
a、/conf下hbase-env.sh文件配置在文件结尾增加以下环境变量export HBASE_MANAGES_ZK=false #true标识用自带的zookeeper,false标识使用单独安装的export JAVA_HOME=/usr/java/jdk1.7.0_21export HADOOP_HOME=/hadoop_install/hadoop-1.0.4export HBASE_HOME=/hadoop_install/hbase-0.94.8export HBASE_MANAGES_ZK=trueexport HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"b、/conf下 hbase-site.xml文件配置</configuration><property> <name>hbase.rootdir</name> <value>hdfs://hdp01:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.master</name> <value>hdfs://hdp01:60000</value> </property><property> <name>hbase.zookeeper.quorum</name> <value>hdp02,hdp03,hdp04</value> </property><property> <name>zookeeper.session.timeout</name> <value>60000</value> </property><property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> </configuration>参数说明:1、hbase.rootdir中需指明Hbase的数据存储位置,该主机名及端口必须 与namenode相同2、hbase.cluster.distributed true说明为完全分布式3、hbase.master 指明Hbase的主机4、hbase.zookeeper.quorum配置参与zookeeper选举的机器,最好配置奇数个5、hbase.zookeeper.property.clientPort配置zookeeper的通信 端口,需与zookeeper中的clientport一致。c、/conf下 regionservers配置 在该文件填写所有datanoded、配置完成后,将hbase-0.94.8文件拷贝至集群所有节点
4.10 flume安装
下载解压后即可,如果与mysql配合需下载mysql对应驱动包
简单配置:
配置java环境变量
vi /conf/flume-env.sh
JAVA_HOME=/usr/java/jdk1.7.0_60
4.11 sqoop安装
下载sqoop-1.4.6后解压
基本配置:
vi /conf/sqoop-env.sh
export HADOOP_COMMON_HOME=/hdfs/hadoop-2.6.0
export HADOOP_HOME=/hdfs/hadoop-2.6.0
export HIVE_HOME=/hdfs/apache-hive-1.2.0-bin
export HADOOP_MAPRED_HOME=/hdfs/hadoop-2.6.0
export HIVE_HOME=/hdfs/apache-hive-1.2.0-bin
export ZOOCFGDIR=/hdfs/zookeeper-3.4.6
4.12 hbase与hive集成
通过hbase与hive集成后,在hive创建的表以及相关数据可通过hbase进行相关操作,具体整合方法如下:
(里面有可能涉及到jar包拷贝,由于之前集成时没有记录,现在记不清楚了,以下列出一些关键点)
主要进行一些jar配置,hive-hbase-handler-1.2.0.jar版本不兼容会影响hive与hbase通信,可下载源码后将habse自带jar包考入后,从新打包然后考入hive里面即可。<property> <name>hive.aux.jars.path</name> <value>file:///hdfs/apache-hive-1.2.0-bin/lib/hive-hbase-handler-1.2.0.jar,file:///hdfs/hbase-1.2.4/lib/hbase-server-1.2.4.jar,file:///hdfs/zookeeper-3.4.6/zookeeper-3.4.6.jar,file:///hdfs/hbase-1.2.4/lib/protobuf-java-2.5.0.jar,file:///hdfs/apache-hive-1.2.0-bin/lib/hbase-client-1.2.4.jar</value></property>在hive中创建一个hbase可识别的表:CREATE TABLE hbase_table_1(key int, value string)STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")TBLPROPERTIES ("hbase.table.name" = "xyz");
- 【hadoop】hadoop环境快速搭建
- Hadoop - Hadoop开发环境搭建
- Hadoop环境搭建
- hadoop开发环境搭建
- linux搭建hadoop环境
- nutch+hadoop环境搭建
- Hadoop环境搭建-集群
- eclipse hadoop 环境搭建
- linux搭建hadoop环境
- hadoop环境搭建步骤
- MyEclipse 搭建 hadoop 环境
- Hadoop 环境搭建
- windows搭建hadoop环境
- Hadoop环境搭建
- hadoop集群环境搭建
- Hadoop环境搭建
- hadoop环境搭建问题
- hadoop单机环境搭建
- 一个关于javaweb项目名处出现红叉,而项目下的目录和文件没有红叉的问题
- DPDK 收发包处理流程(二)(网卡初始化)
- Ubuntu编译openjdk
- 60,000毫秒内对Linux的性能诊断
- 二叉树面试题总汇
- Hadoop环境搭建
- K
- C++:指针、引用和CONST
- Android面试题目之常见的选择题
- 安卓Binder解析
- HTML5本地存储来注册登录
- 解决Tomcat端口被占用
- luogu1020【1999提高】导弹拦截(dp)
- numpy的array和matrix