Tez-On-Hive环境搭建手札
- 812 次检阅

下载文档在文章末,直接复制上来实在太难看了...算了睡觉了一些搭建的手札罢了


1. 服务器环境配置

所有配置均使用root用户操作完成

1.1. 资源准备

三台服务器,操作系统为:CentOS release 6.8

IP为别为:

10.0.109.99

10.0.109.100

10.0.109.101

1.2. 修改主机名

修改三台服务器主机名,修改/etc/sysconfig/network文件

master节点:jttda-master

slave节点1:jttda-slave1

slave节点2:jttda-slave2

每台服务器都修改/etc/hosts文件,添加如下域名映射

10.0.109.99 jttda-master

10.0.109.100 jttda-slave1

10.0.109.101 jttda-slave2

1.3. 安装JDK

1.3.1. 卸载openJDK

查看centos已安装的jdk

rpm –qa | grep gcj

rpm –qa | grep jdk

删除查询到的openJDK相关的安装包

rpm -e –nodeps ***

1.3.2. 安装oracle JDK

Oracle官网下载安装包jdk-8u152-linux-x64.tar.gz

将安装包解压到指定目录

tar –zxvf jdk-8u152-linux-x64.tar.gz –C /usr/local/

修改/etc/profile,添加如下配置

export JAVA_HOME=/usr/local/jdk1.8.0_152

export PATH=$PATH:$JAVA_HOME/bin

1.4. 配置无密码登陆

在master节点上面按照如下顺序执行:

ssh-keygen,一路回车到执行结束

ssh-copy-id root@jttda-slave1,输入yes,回车

ssh-copy-id root@jttda-slave2,输入yes,回车

1.5. 关闭防火墙

关闭防火墙

service iptables stop

设置开机不启动

chkconfig iptables off

1.6. NTP时间同步

设置提供ntp同步的服务器,修改各节点/etc/ntp.conf文件

开启ntp服务

service ntpd start

设置开机启动

chkconfig ntpd on

查看ntp同步状态

ntpstat

2. Hadoop安装配置

2.1. 获取安装包

如上图所示,选择所需版本,下载得到压缩包:hadoop-2.7.5.tar.gz

将压缩包解压到选定的目录:tar -zxvf hadoop-2.7.5.tar.gz -C /home/hadoop/install/

2.2. 设置环境变量

每个节点/etc/profile文件中添加如下内容

export HADOOP_HOME=/home/hadoop/install/hadoop-2.7.5

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2.3. 创建目录

在每台服务器本地创建目录:

mkdir -p /home/mmds/hadoopdata/dfs/data

mkdir -p /home/mmds/hadoopdata/dfs/name

mkdir -p /home/mmds/hadoopdata/tmp

2.4. 修改配置文件

进入$HADOOP_HOME/etc/hadoop目录

2.4.1. 修改slaves文件

添加DataNode主机名列表,每个主机名一行

jttda-slave1

jttda-slave2

2.4.2. 修改core-site.xml文件

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://jttda-master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/data/hadoop/tmp</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131702</value>

</property>

</configuration>

2.4.3. 修改hdfs-site.xml文件

<configuration>

<property>

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

<value>file:/data/hadoop/dfs/name</value>

</property>

<property>

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

<value>file:/data/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>jttda-master:9001</value>

</property>

<property>

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

<value>true</value>

</property>

<property>

<name>dfs.balance.bandwidthPerSec</name>

<value>10485760</value>

</property>

</configuration>

2.4.4. 修改mapred-site.xml文件

修改模版文件名

mv mapred-site.xml.template mapred-site.xml

<configuration>

<property>

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

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>jttda-master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>jttda-master:19888</value>

</property>

<property>

<name>mapreduce.map.memory.mb</name>

<value>2048</value>

</property>

<property>

<name>mapreduce.reduce.memory.mb</name>

<value>2048</value>

</property>

<property>

<name>mapreduce.map.java.opts</name>

<value>-Xmx1536M</value>

</property>

<property>

<name>mapreduce.reduce.java.opts</name>

<value>-Xmx1536M</value>

</property>

<property>

<name>mapred.tasktracker.map.tasks.maximum</name>

<value>8</value>

</property>

<property>

<name>mapred.tasktracker.reduce.tasks.maximum</name>

<value>12</value>

</property>

</configuration>

2.4.5. 修改yarn-site.xml文件

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>jttda-master</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>51200</value>

</property>

<property>

<name>yarn.scheduler.minimum-allocation-mb</name>

<value>2048</value>

</property>

<property>

<name>yarn.scheduler.maximum-allocation-mb</name>

<value>10240</value>

</property>

</configuration>

2.4.6. 修改hadoop-env.sh文件

修改如下两个配置项

export JAVA_HOME=/usr/local/jdk1.8.0_152

export HADOOP_HEAPSIZE=2048

2.4.7. 修改yarn-env.sh文件

修改如下两个配置项

export JAVA_HOME=/usr/local/jdk1.8.0_152

export YARN_HEAPSIZE=2048

配置完成:

/usr/local/hadoop-2.7.5整个目录复制到各节点机器上,放在/usr/local/目录下

scp –r /home/hadoop/install/hadoop-2.7.5 jttda-slave50:/home/hadoop/install/hadoop-2.7.5

2.5. 启动Hadoop 

在jttda-master服务器上,进入$HADOOP_HOME目录

格式化NameNode:hdfs namenode -format

启动NameNode和DataNode守护进程:sbin/start-dfs.sh

启动ResourceManager和NodeManager守护进程:sbin/start-yarn.sh

2.6. 验证Hadoop 

执行jps命令,有如下进程,说明Hadoop启动正常

# jps

59024 Jps

153505 ResourceManager

152951 NameNode

156206 RunJar

153247 SecondaryNameNode

3. Hive安装配置

3.1. 获取安装包

如上图所示,选择所需版本,下载得到压缩包:apache-hive-2.2.0-bin.tar.gz

将压缩包解压到选定的目录:

tar -zxvf apache-hive-2.2.0-bin.tar.gz -C /home/hadoop/install/

3.2. 设置环境变量

master节点jttda-master/etc/profile文件中添加如下内容

export HIVE_HOME=/usr/local/apache-hive-2.2.0-bin

export PATH=$HIVE_HOME/bin:$PATH

3.3. 创建metastore库

使用Oracle Database 11g作为hive的metastore数据库,创建对应用户并授权

CREATE USER hive IDENTIFIED BY hive;

GRANT SELECT_CATALOG_ROLE TO hive;

GRANT CONNECT, RESOURCE TO hive;

在oracle官网下载JDBC驱动:ojdbc6.jar,将其放到$HIVE_HOME/lib目录下

3.4. 创建目录

在hdfs 中创建下面的目录 ,并且授权

hdfs dfs -mkdir -p /user/hive/warehouse

hdfs dfs -mkdir -p /user/hive/tmp

hdfs dfs -chmod -R 777 /user/hive/warehouse

hdfs dfs -chmod -R 777 /user/hive/tmp

创建本地目录,进入$HIVE_HOME目录

mkdir log

mkdir execlog

mkdir tmp

3.5. 修改配置文件

进入$HIVE_HOME/conf目录,复制默认配置文件并改名

cp hive-env.sh.template hive-env.sh

cp hive-default.xml.template hive-site.xml

cp hive-log4j2.properties.template hive-log4j2.properties

cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

3.5.1. 修改hive-env.sh文件

修改以下配置项

export JAVA_HOME=/usr/local/jdk1.8.0_152

export HADOOP_HOME=/usr/local/hadoop-2.7.5

export HIVE_HOME=/usr/local/apache-hive-2.2.0-bin

export HIVE_CONF_DIR=/usr/local/apache-hive-2.2.0-bin/conf

3.5.2. 修改hive-site.xml文件

<configuration>

<property>

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

<value>/user/hive/tmp</value>

</property>

<property>

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

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

</property>

<property>

<name>hive.querylog.location</name>

<value>/usr/local/apache-hive-2.2.0-bin/tmp/${user.name}</value>

</property>

<property>

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

<value>jdbc:oracle:thin:@10.0.109.8:1521:sjzx8</value>

</property>

<property>

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

<value>oracle.jdbc.driver.OracleDriver</value>

</property>

<property>

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

<value>hive</value>

</property>

<property>

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

<value>hive</value>

</property>

</configuration>

并在hive-site.xml

所有${system:java.io.tmpdir}替换为/usr/local/apache-hive-2.2.0-bin/tmp/

所有{system:user.name}替换为{user.name}

3.5.3. 修改hive-log4j2.properties文件

property.hive.log.dir = /usr/local/apache-hive-2.2.0-bin/log/${sys:user.name}

3.5.4. 修改hive-exec-log4j2.properties文件

property.hive.log.dir = /usr/local/apache-hive-2.2.0-bin/execlog/${sys:user.name}

3.5.5. 修改core-site.xml文件

进入$HADOOP_HOME/etc/hadoop目录给beeline登录时的用户root配置权限,增加如下的配置项

<configuration>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>root</value>

</property>

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>*</value>

</property>

</configuration>

3.6. 启动Hive

3.6.1. 初始化

schematool -dbType mysql -initSchema

3.6.2. CLI启动Hive

在命令行输入命令:hive

3.6.3. 使用beeline

启动hiveserver2:nohup hive --service hiveserver2 >/dev/null 2>&1 &

查看hiveserver2启动状态:netstat -nptl | grep 10000

启动beeline

在命令行输入命令:beeline

连接Hive:!connect jdbc:hive2://localhost:10000 root root

4. Tez安装配置

4.1. 获取安装包

如上图所示,选择所需版本,下载得到压缩包:apache-tez-0.9.0-bin.tar.gz

将压缩包解压到选定的目录:

tar –zxvf apache- tez-0.9.0-bin.tar.gz –C /usr/local/

4.2. 上传运行包

apache-tez-0.9.0-bin/share下有个tez.tar.gz压缩包,把它上传到hdfs上面

hadoop fs -mkdir -p /user/tez

hadoop fs -put tez.tar.gz /user/tez

4.3. 修改配置文件

进入$HADOOP_HOME/etc/hadoop目录

4.3.1. 新建tez-site.xml文件

<configuration>

<property>

<name>tez.lib.uris</name>

<value>/user/tez/tez.tar.gz</value>

</property>

</configuration>

4.3.2. 修改mapred-site.xml文件

<configuration>

<property>

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

<value>yarn-tez</value>

</property>

</configuration

4.3.3. 修改hadoop-env.sh文件

export TEZ_HOME=/usr/local/apache-tez-0.9.0-bin

for jar in `ls $TEZ_HOME |grep jar`; do

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar

done

for jar in `ls $TEZ_HOME/lib`; do

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar

done

4.4. 测试Tez

在hdfs上创建/tinput/toutput目录

准备测试文件

echo "Hello World Hello Tez" > file01  

echo "Hello World Goodbye Tez" > file02

将测试文件file01和file02上传到hdfs上的/tinput目录

hdfs dfs -mkdir /tinput

hdfs dfs -put file0* /tinput

执行如下命令测试tez是否配置成功,进去$TEZ_HOME目录

hadoop jar tez-examples-0.9.0.jar orderedwordcount /tinput /toutput

5. 测试用例

6. 备注

将$HIVE_HOME/lib/log4j-slf4j-impl-2.6.2.jar和$TEZ_HOME/lib/slf4j-log4j12-1.7.10.jar删除,否则会与$HADOOP_HOME/LIB/slf4j-log4j12-1.7.10.jar重复


算了直接弄上来太难看了,弄成了文档-->

下载地址1:七牛下载

下载地址2:Tez-On-Hive环境搭建文档

分享到:

这篇文章还没有评论

发表评论