写点什么

mac 本地 hive2 安装

作者:飞哥
  • 2022 年 7 月 12 日
  • 本文字数:3904 字

    阅读完需:约 13 分钟

环境准备

需要的基础环境

maven 3.6.0jdk 1.8.0_131

开启 mac 的远程登录

若要远程登录这台电脑,请键入“ssh wangyue@192.168.40.132”。

ssh-keygen -t rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
复制代码

验证 ssh

ssh localhost
复制代码

mac 上 hadoop 安装

下载 hadoop jar 包

hadoop-2.7.2.tar.gz

新建目录:存放安装的 hadoop 应用

mkdir /Applications/bigsoft/hadoop-2.7.2

复制代码

新建目录;存放应用的数据文件

mkdir /users/wangyue/Data

复制代码

解压

tar -zxvf /Users/wangyue/Downloads/hadoop-2.6.0.tar -C /users/wangyue/App
复制代码

添加 Hadoop 环境变量

vim ~/.bash_profile # hadoopexport HADOOP_HOME=/Users/wangyue/App/hadoop-2.6.0export HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 退出编辑模式,使用 :wq 保存修改,然后运行 source 命令使文件中的修改立即生效: source ~/.bash_profile
复制代码

查看 hadoop 版本: hadoop version

修改 hadoop 的配置文件

需要修改的 Hadoop 配置文件都在/Users/wangyue/App/hadoop-2.6.0/etc/hadoop/下,包括:

hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml

下面开始进行配置:

查看 java_home

进入该路径 cd /usr/libexec

运行脚本

./java_home

输出的路径

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

修改 hadoop-env.sh 文件

设置 JAVA_HOME 的路径

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home

修改 core-site.xml 文件

默认情况下,Hadoop 将数据保存在/tmp 下,当重启系统时,/tmp 中的内容将被自动清空, 所以我们需要制定自己的一个 Hadoop 的目录,用来存放数据。另外需要配置 Hadoop 所使用的默认文件系统,以及 Namenode 进程所在的主机。

<property>     <name>fs.defaultFS</name>     <value>hdfs://localhost:9000</value></property><!--用来指定hadoop运行时产生文件的存放目录  自己创建--><property>     <name>hadoop.tmp.dir</name>     <value>file:///Applications/bigsoft/hadoop-2.7.2/Datadir/hadoop/tmp</value></property><property>     <name>fs.trash.interval</name>     <value>1440</value></property>
复制代码

配置文件系统 hdfs-site.xml

该文件指定与 HDFS 相关的配置信息。需要修改 HDFS 默认的块的副本属性,因为 HDFS 默认 情况下每个数据块保存 3 个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所 以需要将副本个数改为 1;否则 Hadoop 程序会报错。

vim hdfs-site.xml 修改配置文件

<property>     <name>dfs.replication</name>     <value>1</value></property><!--不是root用户也可以写文件到hdfs--><property>     <name>dfs.permissions</name>     <value>false</value>    <!--关闭防火墙--></property><!-- name node 存放 name table 的目录 --><property>     <name>dfs.namenode.name.dir</name>     <value>file:/Applications/bigsoft/hadoop-2.7.2/Datadir/hadoop/tmp/dfs/name</value></property><!-- data node 存放数据 block 的目录 --><property>     <name>dfs.datanode.data.dir</name>     <value>file:/Applications/bigsoft/hadoop-2.7.2/Datadir/hadoop/tmp/dfs/data</value></property>
复制代码

配置计算框架 mapred-site.xml

在该配置文件中指定与 MapReduce 作业相关的配置属性,需要指定 JobTracker 运行的主机 文件夹中并没有 mapred-site.xml 文件,但提供了模板 mapred-site.xml.template 将其重命名为 mapred-site.xml 即可

mv mapred-site.xml.template mapred-site.xmlvim mapred-site.xml
复制代码

修改配置文件

<property>      <!--指定mapreduce运行在yarn上-->      <name>mapreduce.framework.name</name>      <value>yarn</value></property>

复制代码

配置文件系统 yarn-site.xml

vim yarn-site.xml 修改配置文件

<!-- Site specific YARN configuration properties --><property><!-- mapreduce 执行 shuffle 时获取数据的方式 -->      <name>yarn.nodemanager.aux-services</name>      <value>mapreduce_shuffle</value></property><property>      <name>yarn.resourcemanager.address</name>      <value>localhost:18040</value></property><property>      <name>yarn.resourcemanager.scheduler.address</name>      <value>localhost:18030</value></property><property>       <name>yarn.resourcemanager.resource-tracker.address</name>       <value>localhost:18025</value></property><property>       <name>yarn.resourcemanager.admin.address</name>       <value>localhost:18141</value></property><property>       <name>yarn.resourcemanager.webapp.address</name>       <value>localhost:18088</value></property>
复制代码

Hadoop namenode 格式化

hdfs namenode -format
复制代码

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

启动 Hadoop 集群

/Users/wangyue/App/hadoop-2.6.0/sbin./start-all.sh
复制代码

执行命令后,提示出入 yes/no 时,输入 yes 启动所有的 hadoop 服务,包括 hdfs 和 yarn

具体进程包含为下

63617 DataNode63810 ResourceManager63547 NameNode63916 Jps63885 NodeManager58621 RemoteMavenServer63711 SecondaryNameNode
复制代码

同时启动中可能会出现问题、继续向下看,下方会有描述。

查看进程是否启动

1、在 Hadoop 的终端执行 jps 命令,在打印结果中会看到 5 个进程,分别是 namenode、 secondarynamenode、datanode、resourcemanager、nodemanage。 如果出现 了这 5 个进程表示主节点进程启动成功。

2、Web UI 查看集群是否成功启动,浏览器中打开 http://localhost:50070/,以及 http://localhost:18088/;检查 namenode 和 datanode 是否正常,检查 Yarn 是否正常。

解除 save 模式

bin/hadoop dfsadmin -safemode leave//在bin下执行//若配置环境变量,使用以下命令
复制代码

用户可以通过 dfsadmin -safemode value 来操作安全模式,参数 value 的说明如下:

enter - 进入安全模式leave - 强制NameNode离开安全模式get - 返回安全模式是否开启的信息wait - 等待,一直到安全模式结束
复制代码

问题:

1,启动start-all.sh 输密码需要配置 ssh localhost

2,提交 wordcount 失败报错为

/bin/bash: /Library/Internet: No such file or directory
复制代码

需要检查 java_home 安装是否正确,一般是 mac 下需要注意自带的和自己安装的不同。

配置 hive

前提是先将 hive 源码编译完成

需要进行 hive 配置,包括 hadoop 的位置,hive 元数据初始化

配置 hadoop

切换到刚才编译成功后的 target 目录下的 hive 的目录下,我的是 target/apache-hive-2.3.7-bin/apache-hive-2.3.7-bin,找到配置文件目录 conf

对文件 hive-env.sh 进行编辑,找到 HADOOP_HOME,对其更改成我们安装的 Hadoop 目录,我编译的是 hive-2.3.7,安装的 Hadoop 是 2.6.0,所以,这里列的目录,大家都要相应的改成自己的。

HADOOP_HOME=/Users/wangyue/App/hadoop-2.6.0

保存并退出。

初始化 hive 元数据信息

安装 myql

因为我的是 mac,所以安装比较简单

mysql -u root -p 123456
复制代码

将 mysql-connector-java.jar 复制的 hive/lib 下

进入到 conf 下,修改 hive-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--Autogenerated by Cloudera Manager--><configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?useUnicode=true&amp;characterEncoding=utf-8&amp;allowPublicKeyRetrieval=true&amp;useSSL=false&amp;autoReconnect=false</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- 指定 metastore 的地址和端口 --> <property> <name>hive.metastore.uris</name> <value>thrift://localhost:9083</value> </property> <property> <name>hive.metastore.client.socket.timeout</name> <value>3600</value> </property></configuration>
复制代码

然后进入到 bin 目录

执行

./schematool -dbType mysql -initSchema
复制代码

到此,hive 的配置也已完成。

启动 hive,需要使用 metastore 的启动

nohup hive --service metastore &
复制代码

启动 hive debug 监控

切换到 target/apache-hive-2.3.7-bin/apache-hive-2.3.7-bin 目录下,运行以下命令

bin/hive --debug -hiveconf hive.root.logger=DEBUG,console
复制代码

启动成功后,如下:

/Users/wangyue/Desktop/yf_file/work/soft/apache-hive-2.3.7-src/packaging/target/apache-hive-2.3.7-bin/apache-hive-2.3.7-bin(base) wangyuedeMacBook-Pro:apache-hive-2.3.7-bin wangyue$ ./bin/hive --debug -hivconf hive.root.logger=DEBUG,consoleListening for transport dt_socket at address: 8000
复制代码

这时在运行 hive sql ,便可以在 idea 中看到调试信息

发布于: 19 分钟前阅读数: 4
用户头像

飞哥

关注

公众号:飞哥小记,喜欢自问的程序媛 2019.11.05 加入

还未添加个人简介

评论

发布
暂无评论
mac 本地hive2 安装_大数据_飞哥_InfoQ写作社区