记录一下hive环境(Mac m1)的配置过程,以防忘记。可能遇到的问题
1.安装hadoop
1).首先,安装hadoop:
brew install Hadoop
arch -x86_64 brew install Hadoop # for M1
m1安装brew可以用一下两种命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果第一种不行请试下面这种:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
配置ssh免密码登录,用dsa密钥认证来生成一对公钥和私钥:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
将生成的公钥加认证的公钥文件:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
接下来测试一下是否配置成功
ssh localhost
如果遇到了connection refused
错误打开 系统偏好设置-》共享-》点击远程登录
。
2)配置hadoop文件
文件路径/usr/local/Cellar/hadoop/3.3.1/libexec/etc/hadoop/
。
①.core-site.xml
文件配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
②.hdfs-site.xml
文件配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>
③.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>
3)运行Hadoop样例程序
首先,进入文件夹:
cd /usr/local/Cellar/hadoop/3.3.1/libexec
然后格式化文件系统
bin/hdfs namenode -format
启动NameNode和DataNode的进程
sbin/start-dfs.sh
启动ResourceManager和NodeManager的进程
sbin/start-yarn.sh
访问localhost:50070
和localhost:8088
看是否能正常访问。
# 创建hdfs目录:
bin/hdfs dfs -mkdir -p /usr/***/input
#拷贝一些文件到input目录:
bin/hdfs dfs -put etc/hadoop input
#运行样例: (hadoop版本号根据自己的hadoop版本修改版本号)
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
2.安装hive
1).完成了上面的hadoop,接下来安装hive.
brew install hive
arch -x86_64 brew install hive # for m1
添加环境变量
vim ~/.bash_profile
export HIVE_HOME=/usr/local/Cellar/hive/3.1.2_3
export PATH=$HIVE_HOME/bin:$PATH
source ~/.bash_profile
Hive默认用derby(因为是单连接只能做测试用)作为元数据库。所以这里我们用mysql来存储元数据。
2)安装mysql
mysql官网下载选择Mysql Community Server
选择macOS 11 (x86, 64-bit), DMG Archive
下载。
安装过程中选择Use Legacy Password Encryption
如下图:
之后输入密码就行。
3).下载MySQL驱动包
到
驱动官网下载驱动选择Platform Independent->zip格式的就行
将.jar
文件放到/usr/local/Cellar/hive/3.1.2_3/libexec/lib/
目录下
4).创建数据库
输入命令:
mysql -u root -p #输入密码进入
mysql> create database metastore; # 创建数据库
4).配置 hive-site.xml
在将文件/usr/local/Cellar/hive/3.1.2_3/libexec/conf/hive-default.xml.template
复制一份改名为hive-site.xml
对里面的进行参数配置:
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!--mysql用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--mysql密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>******</value>
</property>
<!-- hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果
,默认是/tmp/<user.name>/hive,可以自己创建文件夹,我们实际一般会按组区分,然后组内自建一个tmp目录存>储 -->
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/data/hive/warehouse</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/hive</value>
</property>
</configuration>
5).初始化metastore数据库
cd /usr/local/Cellar/hive/3.1.2_3/libexec/bin
schematool -initSchema -dbType mysql
6).启动metastore服务
./hive --service metastore &
#之后再终端输入hive就行
3.可能遇到的问题
1).WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform
:
在/usr/local/Cellar/hadoop/3.3.1/libexec/etc/hadoop/log4j.properties
加入
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
2).Error during job, obtaining debugging information... FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exe
:
在hive-site.xml
文件添加配置:
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
</property>