hadoop+Kylin服务器搭建教程

栏目: 服务器 · 发布时间: 6年前

内容简介:公司准备使用Kylin进行数据分析,因此需要进行hadopp+Kylin服务器的搭建和使用。 本教程基于:讲解hadoop服务器的搭建流程hadoop的搭建可参考hadoop

公司准备使用Kylin进行数据分析,因此需要进行hadopp+Kylin服务器的搭建和使用。 本教程基于:

  • Hadoop 2.9.0
  • HBase 1.1.13
  • Hive 1.2.2
  • Kylin 2.2.0

讲解hadoop服务器的搭建流程

1.创建hadoop用户

//添加hadoop用户
sudo useradd -m hadoop -s /bin/bash
//设置用户密码
sudo passwd hadoop
//添加管理员权限
sudo adduser hadoop sudo

复制代码

切换至hadopp用户

2.搭建hadoop服务器

hadoop的搭建可参考hadoop

更新apt源

sudo apt-get update
复制代码

安装SSH、配置SSH无密码登陆

//安装SSH service
sudo apt-get install openssh-server

//登陆本机
ssh localhost
复制代码

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。 !

hadoop+Kylin服务器搭建教程

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

exit                                   # 退出刚才的 ssh localhost
cd ~/.ssh/                             # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa                      # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
复制代码

安装 JAVA 环境

此处安装jdk的Java环境\

  • 下载jdk压缩包

    下载地址:JDK下载地址

  • 解压压缩包并移动

sudo tar -zxf jdk-8u161-linux-x64.tar.gz #解压

sudo mv jdk1.8.0_161/ /usr/local/java #移动压缩包
复制代码
  • 配置环境变量
$sudo vim ~/.bashrc

//在.bashrc文件中添加环境变量
export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

//刷新变量文件
source ~/.bashrc

echo $JAVA_HOME     # 检验变量值
java -version
$JAVA_HOME/bin/java -version  # 与直接执行 java -version 一样

复制代码
  • 安装 Hadoop 2

    下载稳点版本的hadoop,hadoop下载地址

sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz    #解压
sudo mv hadoop-2.9.0 /usr/local/hadoop  # 将文件夹名改为hadoop
cd /usr/local/
sudo chown -R hadoop ./hadoop               # 修改文件权限
# 添加环境变量
# set hadoop enviroment
export HADOOP_HOME=/usr/local/hadoop
export PATH=${HADOOP_HOME}/bin:$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
复制代码

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cd /usr/local/hadoop
./bin/hadoop version
复制代码
  • 配置Hadoop伪分布模式

    Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),将当中的 修改为下面配置:

<configuration>
    <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/usr/local/hadoop/tmp</value>
         <description>Abase for other temporary directories.</description>
    </property>
    <property>
         <name>fs.defaultFS</name>
         <value>hdfs://IP:9000</value>
    </property>
 </configuration>
复制代码

同样的,修改配置文件 hdfs-site.xml:

<configuration>
   <property>
    	<name>dfs.replication</name>
    	<value>1</value>
   </property>
   <property>
    	<name>dfs.namenode.name.dir</name>
    	<value>file:/usr/local/hadoop/tmp/dfs/name</value>
   </property>
   <property>
    	<name>dfs.datanode.data.dir</name>
   	 <value>file:/usr/local/hadoop/tmp/dfs/data</value>
   </property>
</configuration>
复制代码

配置完成后,执行 NameNode 的格式化:

./bin/hdfs namenode -format
复制代码

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。

hadoop+Kylin服务器搭建教程

接着开启 NameNode 和 DataNode 守护进程

./sbin/start-dfs.sh
复制代码

Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found. 解决办法:修改/etc/hadoop/hadoop-env.sh中设JAVA_HOME。应当使用绝对路径。

export JAVA_HOME=$JAVA_HOME             //错误,不能这么改

export JAVA_HOME=/usr/java/jdk1.6.0_45  //正确,应该这么改
复制代码

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

hadoop+Kylin服务器搭建教程
  • 启动YARN

YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,YARN 的更多介绍在此不展开,有兴趣的可查阅相关资料。

上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。

首先修改配置文件 mapred-site.xml,这边需要先进行重命名:

mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
gedit ./etc/hadoop/mapred-site.xml

//添加配置信息
<configuration>
        <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>
</configuration>

//接着修改配置文件 yarn-site.xml:
<configuration>
        <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
            </property>
</configuration>

复制代码

增加以上信息在 yarn-site.xml to enable log aggregation.

yarn是用管理job的调度,然后这个地方需要手动的去开启才可以看到。否则使用sqoop导入数据将会报错。

<property>    
    <name>yarn.log-aggregation-enable</name>    
    <value>true</value>    
</property>
复制代码

然后就可以启动 YARN 了(需要先执行过 ./sbin/start-dfs.sh):

./sbin/start-yarn.sh      # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver  # 开启历史服务器,才能在Web中查看任务运行情况
http://localhost:8088/cluster
复制代码

开启后通过 jps 查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程,如下图所示。

hadoop+Kylin服务器搭建教程

3.配置hive,参考Hive

安装mysql

1. sudo apt-get install mysql-server

2. sudo apt-get install mysql-client

3. sudo apt-get install libmysqlclient-dev

4.安装完成之后可以使用如下命令来检查是否安装成功:
sudo netstat -tap | grep mysql

5.登陆 mysql 数据库可以通过如下命令:
mysql -u root -p

复制代码

下载Hive

wget http://mirror.bit.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz 

 tar -zxvf apache-hive-2.1.1-bin.tar.gz 

sudo mv apache-hive-2.1.1-bin /usr/local/hive
复制代码

配置环境变量(同上)

export HIVE_HOME=/usr/local/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HCAT_HOME=$HIVE_HOME/hcatalog
export HIVE_CONF=$HIVE_HOME/conf
export PATH=${HIVE_HOME}/bin:$PATH
复制代码

在hive的目录下,新建warehouse、tmp、log文件夹。 修改配置文件hive/conf

cp hive-env.sh.template hive-env.sh 
cp hive-log4j2.properties.template hive-log4j2.properties 
cp hive-default.xml.template hive-site.xml
复制代码

修改hive-env.sh,查找一下字段并去掉前面的注释#,加上相应的路径

export HADOOP_HEAPSIZE=1024
HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf

复制代码

这儿采用mysql作为hive的元数据库 在自己的mysql中为hive新建一个用户 mysql数据库创建Hive用户

mysql>CREATE USER 'hive' IDENTIFIED BY 'hive';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql>flush privileges;
复制代码

修改hive-site.xml文件,添加相应的路径和mysql数据库,用户名,密码

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/usr/local/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
 </property>
 <property>
    <name>hive.querylog.location</name>
    <value>/usr/local/hive/log</value>
    <description>Location of Hive run time structured log file</description>
 </property>
 <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr/local/hive/tmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
 </property>
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </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>
 <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>
复制代码
  • 下载mysql-connector-java\

    地址: dev.mysql.com/downloads/c…

    解压得到mysql-connector-java-5.1.40.jar,拷贝到hive的lib目录下。

  • 登陆MySQL创建hive数据库

mysql> create database hive;
mysql> show databases
复制代码
  • 在进入hive目录下的bin目录,运行命令:./schematool -initSchema -dbType mysql 现在hive已经安装成功,输入hive命令,即可运行hive

如果此时出现这个错误Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

解决方案如下:

在hive 配置文件hive-site.xml 中找到${system:java.io.tmpdir},并把此都替换成具体目录,如/usr/local/hive/iotmp

Kylin用 HCatalog 读取Hive表的,而HCatalog用 property hive.metastore.uris 创建HiveMetaStoreClient 得到元信息。因此,我们还需修改hive-site.xml:

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://localhost:9083</value>
  <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
复制代码

开启metastore 服务:

nohup hive --service metastore -p 9083 &
复制代码

4.Hbase部署

  • 下载文档版本的Hbanse,下载地址
  • 解压并配置相关环境变量
tar -zxvf hbase-1.2.6-bin.tar.gz
sudo mv hbase-1.2.6 /usr/local/hbase
sudo vim ~/.bashrc
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HIVE_HOME/bin:$HBASE_HOME/bin
复制代码

伪分布部署:

伪分布模式需要用到hadoop文件系统 ,所以配置会比单机模式麻烦很多 并且需要版本匹配;

  1. 修改conf/hbase-env.sh
# 添加java环境变量和hbase_classpath(指向hadoop的配置文件目录)
export JAVA_HOME=/usr/local/java

#通过hadoop的配置文件找到hadoop集群
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop

#使用HBASE自带的zookeeper管理集群
export HBASE_MANAGES_ZK=true
复制代码
  1. 编辑hbase-site.xml
<configuration>
    <property>
		<name>hbase.rootdir</name>
		<value>hdfs://hadoopIp:9000/hbase</value>
	</property>
	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<value>/usr/local/hbase/zookeeper</value>
	</property>
	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>hadoopIp</value>
	</property>
</configuration>
复制代码

进入bin目录以root权限开启HBase服务:

# 注意在开启hbase服务之前,一定要运行一下sudo chown -R hadoop ./hbase
./start-hbase.sh
#访问http://172.60.20.12:16010/master-status 地址即可查看Hbase的配置信息
复制代码

5.部署Kylin

  • 软件下载地址
  • sudo tar -zxf apache-kylin-2.1.0-bin-hbase1x.tar.gz sudo mv apache-kylin-2.1.0-bin-hbase1x /usr/local/kylin

配置~/.bashrc文件,添加如下环境变量,并生效。

export KYLIN_HOME=/usr/local/kylin

export hive_dependency=$HIVE_HOME/conf:$HIVE_HOME/lib/*:$HCAT_HOME/share/hcatalog/hive-hcatalog-core-1.2.2.jar

PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin

PATH=$PATH:$HBASE_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin:$HCAT_HOME/bin

PATH=$PATH:$CATALINA_HOME/bin:$KYLIN_HOME/bin

export PATH

复制代码

修改kylin.properties配置文件

#修改

kylin.server.cluster-servers=192.168.1.201:7070

#添加配置

kylin.job.jar=/usr/local/apps/kylin/lib/kylin-job-2.1.0.jar

kylin.coprocessor.local.jar=/usr/local/apps/kylin/lib/kylin-coprocessor-2.1.0.jar

kylin.job.yarn.app.rest.check.status.url=http://192.168.1.202:8088/ws/v1/cluster/apps/${job_id}?anonymous=true
复制代码

注意:kylin 本身有bug,安装成功之后会关联不到hive/lib需要修改kylin.sh 文件。 查找HBASE_CLASSPATH_PREFIX行,并修改为

export HBASE_CLASSPATH_PREFIX=${KYLIN_HOME}/conf:${KYLIN_HOME}/lib/*:${KYLIN_HOME}/ext/*:${hive_dependency}:${HBASE_CLASSPATH_PREFIX}
复制代码

设置完毕之后即可通过kylin.sh start命令启动项目,访问http://XXX.XX.XX.XX:7070/kylin 进入Web管理界面。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Agile Web Application Development with Yii 1.1 and PHP5

Agile Web Application Development with Yii 1.1 and PHP5

Jeffrey Winesett / Packt Publishing / 2010-08-27

In order to understand the framework in the context of a real-world application, we need to build something that will more closely resemble the types of applications web developers actually have to bu......一起来看看 《Agile Web Application Development with Yii 1.1 and PHP5》 这本书的介绍吧!

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具